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 import asyncio
from fastapi import APIRouter, Depends, HTTPException, Request from fastapi import APIRouter, Depends, HTTPException, Request
from fastapi.responses import JSONResponse
from sse_starlette import EventSourceResponse from sse_starlette import EventSourceResponse
from sys import maxsize from sys import maxsize
@@ -29,13 +30,19 @@ from endpoints.OAI.utils.embeddings import get_embeddings
api_name = "OAI" api_name = "OAI"
router = APIRouter() router = APIRouter()
host = None
port = None
urls = { urls = {
"Completions": "http://{host}:{port}/v1/completions", "Completions": "http://{host}:{port}/v1/completions",
"Chat completions": "http://{host}:{port}/v1/chat/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 return router
@@ -166,3 +173,28 @@ async def embeddings(request: Request, data: EmbeddingsRequest) -> EmbeddingsRes
) )
return response 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()) selected_server = router_mapping.get(server.lower())
if selected_server: 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") logger.info(f"Starting {selected_server.api_name} API")
for path, url in selected_server.urls.items(): for path, url in selected_server.urls.items():