Files
AILab/bbit_ai/app/routers/Knowledge.py
T
2025-09-18 17:18:18 +08:00

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))