Files
ai-admin-server/app/controller/add_api_route.py
T

46 lines
1.6 KiB
Python

import json
from app.tools.tool_project_analysis import tool_project_analysis
from fastapi import FastAPI
from fastapi import Query
from starlette.requests import Request
from app.tools.tool_project_report import tool_project_report
from app.tools.tool_retrieve_documents import tool_retrieve_documents
def add_api_route(app: FastAPI):
# 用于dify自定义插件授权认证接口
@app.post('/api/account')
async def api_account(
request: Request
):
print("request.state", request.state)
return request.state.user
# 项目成本分析报告
@app.get('/api/project/analysis')
async def project_analysis(project_name=Query(..., description="项目名称")):
tool_result_string = await tool_project_analysis.ainvoke({"project_name": project_name})
tool_result_data = json.loads(tool_result_string)
return tool_result_data[0]
# 项目日报总结
@app.get('/api/project/report')
async def project_analysis(
project_name=Query(..., description="项目名称"),
start_time=Query(default=None, description="开始时间(可选参数)格式为YYYY-MM-DD"),
end_time=Query(default=None, description="结束时间(可选参数)格式为YYYY-MM-DD"),
):
tool_result_string = await tool_project_report.ainvoke({
"project_name": project_name,
"start_time": start_time,
"end_time": end_time,
})
return json.loads(tool_result_string)
# 检索企业内部文档工具
@app.get('/api/document/retrieve')
async def document_retrieve(question=Query(..., description="用户的问题")):
return await tool_retrieve_documents.ainvoke({"question": question})