77 lines
2.8 KiB
Python
77 lines
2.8 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 uuid
|
|
import threading
|
|
from fastapi import APIRouter, Depends
|
|
from uuid import UUID
|
|
from config.security import get_user_id_from_token
|
|
botRouter = 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.AIProfilesRequest import AIProfilesRequest
|
|
import json
|
|
|
|
@botRouter.get("/aiListForService")
|
|
def getAiList(user_id: UUID = Depends(get_user_id_from_token)):
|
|
if not user_id:
|
|
return {"error": "userId is required"}
|
|
return BaseResponse(data=pg.get_all_ai_bot(user_id,"service"))
|
|
@botRouter.get("/aiListForReport")
|
|
def getAiList(user_id: UUID = Depends(get_user_id_from_token)):
|
|
if not user_id:
|
|
return {"error": "userId is required"}
|
|
return BaseResponse(data=pg.get_all_ai_bot(user_id,"report"))
|
|
|
|
@botRouter.get("/aiListForBot")
|
|
def getAiList(user_id: UUID = Depends(get_user_id_from_token)):
|
|
if not user_id:
|
|
return {"error": "userId is required"}
|
|
return BaseResponse(data=pg.get_all_ai_bot(user_id,"bot"))
|
|
|
|
# 保存智能体
|
|
@botRouter.post("/saveBot")
|
|
def saveReportBot(bot: AIProfilesRequest,user_id: UUID = Depends(get_user_id_from_token)):
|
|
if not user_id:
|
|
return {"error": "userId is required"}
|
|
print(bot)
|
|
ai_personality = {
|
|
"名字":bot.name,
|
|
"性格":bot.role,
|
|
"业务":bot.service,
|
|
}
|
|
ai_personality_json = json.dumps(ai_personality, ensure_ascii=False)
|
|
available_report_tables_json = json.dumps(bot.available_report_tables, ensure_ascii=False)
|
|
available_kn_bases_json = json.dumps(bot.available_kn_bases, ensure_ascii=False)
|
|
|
|
if bot.id:
|
|
pg.update_bot(
|
|
id = bot.id,
|
|
title =bot.title,
|
|
description = bot.description,
|
|
welcome_words = bot.welcome_words,
|
|
ai_personality = ai_personality_json,
|
|
available_kn_bases = available_kn_bases_json,
|
|
available_report_tables = available_report_tables_json,
|
|
available_module = bot.available_module,
|
|
user_id = user_id
|
|
)
|
|
else:
|
|
pg.insert_bot(
|
|
title =bot.title,
|
|
description = bot.description,
|
|
welcome_words = bot.welcome_words,
|
|
ai_personality = ai_personality_json,
|
|
available_kn_bases = available_kn_bases_json,
|
|
available_module = bot.available_module,
|
|
available_report_tables = available_report_tables_json,
|
|
user_id = user_id
|
|
)
|
|
return BaseResponse(data= None)
|