49 lines
2.1 KiB
Python
49 lines
2.1 KiB
Python
from models.ChatRequest import ChatRequest
|
|
from models.ChatWithReportRequest import ChatWithReportRequest
|
|
from models.BaseResponse import BaseResponse
|
|
import uuid
|
|
import db.postgres as pg
|
|
import db.sqlserver as sqlserver
|
|
import db.milvus as milvus
|
|
import uuid
|
|
import threading
|
|
from fastapi import APIRouter, Depends
|
|
from uuid import UUID
|
|
from config.security import get_user_id_from_token
|
|
knowledgeRouter = APIRouter()
|
|
from llm.chatLLM import get_chat_response
|
|
from llm.titleChain import get_title
|
|
from llm.sqlLLM import get_sql_description_response,get_chat_sql_response,get_chat_sql_improve_response
|
|
from models.SaveReportRequest import SaveReportRequest
|
|
from models.KnowledgeAddRequest import KnowledgeAddRequest
|
|
from models.KnowledgeBaseAddRequest import KnowledgeBaseAddRequest
|
|
# 获取知识库列表
|
|
@knowledgeRouter.get("/knowledgeBaseListForService")
|
|
def knowledge_base_list(user_id: UUID = Depends(get_user_id_from_token)):
|
|
if not user_id:
|
|
return {"error": "userId is required"}
|
|
return BaseResponse(data=pg.get_available_knowledge_bases('service'))
|
|
|
|
# 新增知识库
|
|
@knowledgeRouter.post("/addKnowledgeBase")
|
|
def add_knowledge_base(data: KnowledgeBaseAddRequest, user_id: UUID = Depends(get_user_id_from_token)):
|
|
if not user_id:
|
|
return {"error": "userId is required"}
|
|
return BaseResponse(data=pg.add_knowledge_base(data.name, data.description, user_id))
|
|
|
|
# 获取知识列表
|
|
@knowledgeRouter.get("/knowledgeList")
|
|
def knowledge_list(knowledgeBaseId: str, user_id: UUID = Depends(get_user_id_from_token)):
|
|
if not user_id:
|
|
return {"error": "userId is required"}
|
|
if not knowledgeBaseId:
|
|
return {"error": "knowledgeBaseId is required"}
|
|
return BaseResponse(data=milvus.get_knowledge_by_base_id(knowledgeBaseId))
|
|
|
|
# 新增知识
|
|
@knowledgeRouter.post("/addKnowledge")
|
|
def add_knowledge(data: KnowledgeAddRequest, user_id: UUID = Depends(get_user_id_from_token)):
|
|
if not user_id:
|
|
return {"error": "userId is required"}
|
|
return BaseResponse(data=milvus.add_knowledge(data.text, data.is_active, data.knowledge_base_id, user_id))
|