| | |
| | | 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() |
| | | |
| | |
| | | |
| | | @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: |
| | |
| | | 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) |
| | | |
| | | |
| | | |