import json
|
import uuid
|
from typing import List
|
|
from fastapi import Depends, APIRouter, File, UploadFile
|
from sqlalchemy.orm import Session
|
from werkzeug.http import HTTP_STATUS_CODES
|
|
from app.api import get_current_user, get_api_key, Response
|
from app.config.const import dialog_chat, advanced_chat, base_chat, agent_chat, workflow_chat, basic_chat, \
|
smart_message_error, http_400, http_500, http_200, complex_mindmap_chat
|
from app.models import UserModel
|
from app.models.base_model import get_db
|
from app.models.v2.chat import RetrievalRequest, ComplexChatDao
|
from app.models.v2.mindmap import MindmapRequest
|
from app.models.v2.session_model import ChatData
|
from app.service.v2.mindmap import service_chat_mindmap, service_message_mindmap_parse
|
|
mind_map_router = APIRouter()
|
|
|
@mind_map_router.post("/create", response_model=Response)
|
async def api_chat_mindmap(mindmap: MindmapRequest, current_user: UserModel = Depends(get_current_user), db: Session = Depends(get_db)): # current_user: UserModel = Depends(get_current_user)
|
complex_chat = await ComplexChatDao(db).get_complex_chat_by_mode(complex_mindmap_chat)
|
if complex_chat:
|
data = await service_chat_mindmap(db, mindmap.messageId, mindmap.query, complex_chat.id,current_user.id)
|
if not data:
|
return Response(code=500, msg="create failure", data={})
|
else:
|
return Response(code=500, msg="网络异常!failure", data={})
|
return Response(code=200, msg="create success", data=data)
|
|
|
@mind_map_router.get("/{messageId}/parse", response_model=Response)
|
async def api_chat_mindmap(messageId: str, current_user: UserModel = Depends(get_current_user), db: Session = Depends(get_db)): # current_user: UserModel = Depends(get_current_user)
|
|
data = await service_message_mindmap_parse(db, messageId, current_user.id)
|
if not data:
|
return Response(code=500, msg="create failure", data={})
|
return Response(code=200, msg="create success", data=data)
|