mirror of
https://github.com/theroyallab/tabbyAPI.git
synced 2026-04-23 07:49:04 +00:00
feat: add serviceinfo URI
This commit is contained in:
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|||||||
@@ -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():
|
||||||
|
|||||||
Reference in New Issue
Block a user