feat(core): APP use new SDK component (#1050)

This commit is contained in:
Fangyin Cheng
2024-01-10 10:39:04 +08:00
committed by GitHub
parent e11b72c724
commit fa8b5b190c
242 changed files with 2768 additions and 2163 deletions

View File

@@ -1,3 +1,4 @@
import uuid
from functools import cache
from typing import List, Optional
@@ -10,7 +11,7 @@ from dbgpt.util import PaginationResult
from ..config import APP_NAME, SERVE_APP_NAME, SERVE_SERVICE_COMPONENT_NAME, ServeConfig
from ..service.service import Service
from .schemas import ServeRequest, ServerResponse
from .schemas import MessageVo, ServeRequest, ServerResponse
router = APIRouter()
@@ -94,40 +95,6 @@ async def test_auth():
return {"status": "ok"}
@router.post(
"/", response_model=Result[ServerResponse], dependencies=[Depends(check_api_key)]
)
async def create(
request: ServeRequest, service: Service = Depends(get_service)
) -> Result[ServerResponse]:
"""Create a new Conversation entity
Args:
request (ServeRequest): The request
service (Service): The service
Returns:
ServerResponse: The response
"""
return Result.succ(service.create(request))
@router.put(
"/", response_model=Result[ServerResponse], dependencies=[Depends(check_api_key)]
)
async def update(
request: ServeRequest, service: Service = Depends(get_service)
) -> Result[ServerResponse]:
"""Update a Conversation entity
Args:
request (ServeRequest): The request
service (Service): The service
Returns:
ServerResponse: The response
"""
return Result.succ(service.update(request))
@router.post(
"/query",
response_model=Result[ServerResponse],
@@ -147,6 +114,45 @@ async def query(
return Result.succ(service.get(request))
@router.post(
"/new",
response_model=Result[ServerResponse],
dependencies=[Depends(check_api_key)],
)
async def dialogue_new(
chat_mode: str = "chat_normal",
user_name: str = None,
# TODO remove user id
user_id: str = None,
sys_code: str = None,
):
user_name = user_name or user_id
unique_id = uuid.uuid1()
res = ServerResponse(
user_input="",
conv_uid=str(unique_id),
chat_mode=chat_mode,
user_name=user_name,
sys_code=sys_code,
)
return Result.succ(res)
@router.post(
"/delete",
dependencies=[Depends(check_api_key)],
)
async def delete(con_uid: str, service: Service = Depends(get_service)):
"""Delete a Conversation entity
Args:
con_uid (str): The conversation UID
service (Service): The service
"""
service.delete(ServeRequest(conv_uid=con_uid))
return Result.succ(None)
@router.post(
"/query_page",
response_model=Result[PaginationResult[ServerResponse]],
@@ -155,7 +161,7 @@ async def query(
async def query_page(
request: ServeRequest,
page: Optional[int] = Query(default=1, description="current page"),
page_size: Optional[int] = Query(default=20, description="page size"),
page_size: Optional[int] = Query(default=10, description="page size"),
service: Service = Depends(get_service),
) -> Result[PaginationResult[ServerResponse]]:
"""Query Conversation entities
@@ -171,6 +177,37 @@ async def query_page(
return Result.succ(service.get_list_by_page(request, page, page_size))
@router.get(
"/list",
response_model=Result[List[ServerResponse]],
dependencies=[Depends(check_api_key)],
)
async def list_latest_conv(
user_name: str = None,
user_id: str = None,
sys_code: str = None,
page: Optional[int] = Query(default=1, description="current page"),
page_size: Optional[int] = Query(default=10, description="page size"),
service: Service = Depends(get_service),
) -> Result[List[ServerResponse]]:
"""Return latest conversations"""
request = ServeRequest(
user_name=user_name or user_id,
sys_code=sys_code,
)
return Result.succ(service.get_list_by_page(request, page, page_size).items)
@router.get(
"/messages/history",
response_model=Result[List[MessageVo]],
dependencies=[Depends(check_api_key)],
)
async def get_history_messages(con_uid: str, service: Service = Depends(get_service)):
"""Get the history messages of a conversation"""
return Result.succ(service.get_history_messages(ServeRequest(conv_uid=con_uid)))
def init_endpoints(system_app: SystemApp) -> None:
"""Initialize the endpoints"""
global global_system_app