feat: add serviceinfo URI

This commit is contained in:
AlpinDale 2024-11-04 12:35:08 +00:00
parent b8700fbbc3
commit 1c9bc2d1af
2 changed files with 34 additions and 2 deletions

View file

@ -1,5 +1,6 @@
import asyncio
from fastapi import APIRouter, Depends, HTTPException, Request
from fastapi.responses import JSONResponse
from sse_starlette import EventSourceResponse
from sys import maxsize
@ -29,13 +30,19 @@ from endpoints.OAI.utils.embeddings import get_embeddings
api_name = "OAI"
router = APIRouter()
host = None
port = None
urls = {
"Completions": "http://{host}:{port}/v1/completions",
"Chat completions": "http://{host}:{port}/v1/chat/completions",
}
def setup():
def setup(server_host: str = None, server_port: int = None):
global host, port
host = server_host
port = server_port
return router
@ -166,3 +173,28 @@ async def embeddings(request: Request, data: EmbeddingsRequest) -> EmbeddingsRes
)
return response
@router.get("/.well-known/serviceinfo")
async def service_info():
return JSONResponse(content={
"version": 0.1,
"software": {
"name": "TabbyAPI",
"repository": "https://github.com/theroyallab/tabbyAPI",
"homepage": "https://github.com/theroyallab/tabbyAPI",
},
"api": {
"openai": {
"name": "OpenAI API",
"base_url": f"http://{host}:{port}/v1",
"documentation": "https://theroyallab.github.io/tabbyAPI",
"version": 1
},
"koboldai": {
"name": "KoboldAI API",
"base_url": f"http://{host}:{port}/api",
"documentation": "https://theroyallab.github.io/tabbyAPI",
"version": 1
}
}
})

View file

@ -52,7 +52,7 @@ def setup_app(host: Optional[str] = None, port: Optional[int] = None):
selected_server = router_mapping.get(server.lower())
if selected_server:
app.include_router(selected_server.setup())
app.include_router(selected_server.setup(host, port))
logger.info(f"Starting {selected_server.api_name} API")
for path, url in selected_server.urls.items():