zhaoqingang
2025-04-11 fb4beedd7ee92777711a854c1c264db460a38d49
app/api/v2/chat.py
@@ -6,15 +6,16 @@
from sqlalchemy.orm import Session
from starlette.responses import StreamingResponse, Response
from app.api import get_current_user, get_api_key
from app.config.const import smart_message_error, http_400, http_500, http_200, complex_dialog_chat
from app.config.const import smart_message_error, http_400, http_500, http_200, complex_dialog_chat, \
    complex_knowledge_chat_deep, complex_knowledge_chat
from app.models import UserModel
from app.models.base_model import get_db
from app.models.v2.chat import RetrievalRequest, ChatDataRequest, ComplexChatDao
from app.models.v2.chat import RetrievalRequest, ChatDataRequest, ComplexChatDao, SetModelRequest
from app.models.v2.session_model import ChatData
from app.service.v2.chat import service_chat_dialog, get_chat_info, service_chat_basic, \
    service_chat_workflow, service_chat_parameters, service_chat_sessions, service_chat_upload, \
    service_chat_sessions_list, service_chat_session_log, service_chunk_retrieval, service_complex_chat, \
    service_complex_upload
    service_complex_upload, service_complex_model, service_get_complex_model
chat_router_v2 = APIRouter()
@@ -134,6 +135,9 @@
@chat_router_v2.post("/complex/chat/completions")
async def api_complex_chat_completions(chat: ChatDataRequest, current_user: UserModel = Depends(get_current_user), db: Session = Depends(get_db)): #  current_user: UserModel = Depends(get_current_user)
    # chat_mode = chat.chatMode
    if chat.isDeep == 2 and chat.chatMode == complex_knowledge_chat:
        chat.chatMode = complex_knowledge_chat_deep
    complex_chat = await ComplexChatDao(db).get_complex_chat_by_mode(chat.chatMode)
    if complex_chat:
        if not chat.sessionId:
@@ -162,3 +166,22 @@
    return Response(data, media_type="application/json", status_code=status_code)
@chat_router_v2.put("/complex/model")
async def api_complex_model(chatModel:SetModelRequest, current_user: UserModel = Depends(get_current_user), db: Session = Depends(get_db)): #  current_user: UserModel = Depends(get_current_user)
    status_code = http_200
    data = await service_complex_model(db, chatModel.chatType, chatModel.modelType, chatModel.modelName, chatModel.modelProvider)
    if data:
        status_code = http_500
    return Response(data, media_type="application/json", status_code=status_code)
@chat_router_v2.get("/complex/model")
async def api_get_complex_model(current_user: UserModel = Depends(get_current_user), db: Session = Depends(get_db)): #  current_user: UserModel = Depends(get_current_user)
    status_code = http_200
    data = await service_get_complex_model(db)
    if not data:
        status_code = http_500
    return Response(data, media_type="application/json", status_code=status_code)