feat: implement api/config endpoint

This commit is contained in:
hetao
2025-06-11 13:51:58 +08:00
parent c187ae511d
commit 8e68c13951
4 changed files with 91 additions and 20 deletions

View File

@@ -38,6 +38,8 @@ from src.server.rag_request import (
RAGResourceRequest,
RAGResourcesResponse,
)
from src.server.config_request import ConfigResponse
from src.llms.llm import get_configured_llms
from src.tools import VolcengineTTS
logger = logging.getLogger(__name__)
@@ -405,3 +407,12 @@ async def rag_resources(request: Annotated[RAGResourceRequest, Query()]):
if retriever:
return RAGResourcesResponse(resources=retriever.list_resources(request.query))
return RAGResourcesResponse(resources=[])
@app.get("/api/config", response_model=ConfigResponse)
async def config():
"""Get the config of the server."""
return ConfigResponse(
rag_config=RAGConfigResponse(provider=SELECTED_RAG_PROVIDER),
configured_llms=get_configured_llms(),
)

View File

@@ -0,0 +1,13 @@
# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
# SPDX-License-Identifier: MIT
from pydantic import BaseModel, Field
from src.server.rag_request import RAGConfigResponse
class ConfigResponse(BaseModel):
"""Response model for server config."""
rag_config: RAGConfigResponse = Field(..., description="The config of the RAG")
configured_llms: dict[str, list[str]] = Field(..., description="The configured LLM")