zhaoqingang
2025-03-04 370120fd4154ce6c5f69d16a4a343a016cf2e816
完善问题
6个文件已修改
1 文件已重命名
88 ■■■■ 已修改文件
app/api/agent.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/api/v2/chat.py 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/config/env_conf/config.yaml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/config/env_conf/config116.yaml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/models/v2/chat.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/v2/chat.py 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.py 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/api/agent.py
@@ -45,10 +45,10 @@
    if agent_type == AgentType.RAGFLOW:
        ragflow_service = RagflowService(base_url=settings.fwr_base_url)
        try:
            result = await get_session_history(db, current_user.id, agent_id, page, limit)
            if not result:
            token = await get_ragflow_token(db, current_user.id)
            result = await ragflow_service.get_chat_sessions(token, agent_id)
            if not result:
                result = await get_session_history(db, current_user.id, agent_id, page, limit)
        except Exception as e:
            print(e)
            raise HTTPException(status_code=500, detail=str(e))
app/api/v2/chat.py
@@ -136,13 +136,8 @@
@chat_router_v2.post("/multi/retrieval")
async def retrieve_chunks(request_data: RetrievalRequest, api_key: str = Depends(get_api_key)):
    records = await service_chunk_retrieval(request_data.query, request_data.retrieval_setting.top_k, request_data.retrieval_setting.score_threshold, api_key)
    return {"records": records}
@chat_router_v2.post("/retrieval")
async def retrieve_chunks(request_data: RetrievalRequest, api_key: str = Depends(get_api_key)):
    records = await service_base_chunk_retrieval(request_data.query,request_data.knowledge_id, request_data.retrieval_setting.top_k, request_data.retrieval_setting.score_threshold, api_key)
    records = await service_chunk_retrieval(request_data.query, request_data.knowledge_id, request_data.retrieval_setting.top_k, request_data.retrieval_setting.score_threshold, api_key)
    return {"records": records}
app/config/env_conf/config.yaml
@@ -1,10 +1,10 @@
secret_key: your-secret-key
sgb_base_url: http://192.168.20.119:13001
sgb_websocket_url: ws://192.168.20.119:13001
fwr_base_url: http://192.168.20.119:11080
database_url: mysql+pymysql://root:rag_gateway@192.168.20.116:23306/rag_gateway
fwr_base_url: http://192.168.20.116:11080
database_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:5455/rag_basic
sgb_db_url: mysql+pymysql://root:1234@192.168.20.119:13306/bisheng
fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:15455/rag_flow
fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.116:15455/rag_flow
PUBLIC_KEY: |
  -----BEGIN PUBLIC KEY-----
  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArq9XTUSeYr2+N1h3Afl/z8Dse/2yD0ZGrKwx+EEEcdsBLca9Ynmx3nIB5obmLlSfmskLpBo0UACBmB5rEjBp2Q2f3AG3Hjd4B+gNCG6BDaawuDlgANIhGnaTLrIqWrrcm4EMzJOnAOI1fgzJRsOOUEfaS318Eq9OVO3apEyCCt0lOQK6PuksduOjVxtltDav+guVAA068NrPYmRNabVKRNLJpL8w4D44sfth5RvZ3q9t+6RTArpEtc5sh5ChzvqPOzKGMXW83C95TxmXqpbK6olN4RevSfVjEAgCydH6HN6OhtOQEcnrU97r9H0iZOWwbw3pVrZiUkuRD1R56Wzs2wIDAQAB
@@ -15,11 +15,12 @@
PASSWORD_KEY: VKinqB-8XMrwCLLrcf_PyHyo12_4PVKvWzaHjNFions=
basic_base_url: http://192.168.20.231:8000
basic_paper_url: http://192.168.20.231:8000
dify_base_url: http://192.168.20.116
dify_base_url: http://192.168.20.119:13002
dify_api_token: app-YmOAMDsPpDDlqryMHnc9TzTO
postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.116:15433/kong
postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.119:5432/kong
dify_workflow_clean: app-OpF0drPu0XcgqcekQpT4FA8a
dify_workflow_report: app-0MAkdFWqh9zxwmU69O0BFU1s
dify_database_url: postgresql+psycopg2://postgres:difyai123456@192.168.20.116:15432/dify
dify_database_url: postgresql+psycopg2://postgres:difyai123456@192.168.20.119:15432/dify
app/config/env_conf/config116.yaml
File was renamed from app/config/env_conf/config119.yaml
@@ -1,10 +1,10 @@
secret_key: your-secret-key
sgb_base_url: http://192.168.20.119:13001
sgb_websocket_url: ws://192.168.20.119:13001
fwr_base_url: http://192.168.20.116:11080
database_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:5455/rag_basic
fwr_base_url: http://192.168.20.119:11080
database_url: mysql+pymysql://root:rag_gateway@192.168.20.116:23306/rag_gateway
sgb_db_url: mysql+pymysql://root:1234@192.168.20.119:13306/bisheng
fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.116:15455/rag_flow
fwr_db_url: mysql+pymysql://root:infini_rag_flow@192.168.20.119:15455/rag_flow
PUBLIC_KEY: |
  -----BEGIN PUBLIC KEY-----
  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArq9XTUSeYr2+N1h3Afl/z8Dse/2yD0ZGrKwx+EEEcdsBLca9Ynmx3nIB5obmLlSfmskLpBo0UACBmB5rEjBp2Q2f3AG3Hjd4B+gNCG6BDaawuDlgANIhGnaTLrIqWrrcm4EMzJOnAOI1fgzJRsOOUEfaS318Eq9OVO3apEyCCt0lOQK6PuksduOjVxtltDav+guVAA068NrPYmRNabVKRNLJpL8w4D44sfth5RvZ3q9t+6RTArpEtc5sh5ChzvqPOzKGMXW83C95TxmXqpbK6olN4RevSfVjEAgCydH6HN6OhtOQEcnrU97r9H0iZOWwbw3pVrZiUkuRD1R56Wzs2wIDAQAB
@@ -15,12 +15,11 @@
PASSWORD_KEY: VKinqB-8XMrwCLLrcf_PyHyo12_4PVKvWzaHjNFions=
basic_base_url: http://192.168.20.231:8000
basic_paper_url: http://192.168.20.231:8000
dify_base_url: http://192.168.20.119:13002
dify_base_url: http://192.168.20.116
dify_api_token: app-YmOAMDsPpDDlqryMHnc9TzTO
postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.119:5432/kong
postgresql_database_url: postgresql+asyncpg://kong:kongpass@192.168.20.116:15433/kong
dify_workflow_clean: app-OpF0drPu0XcgqcekQpT4FA8a
dify_workflow_report: app-0MAkdFWqh9zxwmU69O0BFU1s
dify_database_url: postgresql+psycopg2://postgres:difyai123456@192.168.20.119:15432/dify
dify_database_url: postgresql+psycopg2://postgres:difyai123456@192.168.20.116:15432/dify
app/models/v2/chat.py
@@ -11,3 +11,6 @@
    knowledge_id: str
    query: str
    retrieval_setting: RetrievalSetting
app/service/v2/chat.py
@@ -348,14 +348,20 @@
    return await get_str_token(text)
async def service_chunk_retrieval(query, top_k, similarity_threshold, api_key):
async def service_chunk_retrieval(query, knowledge_id, top_k, similarity_threshold, api_key):
    print(query)
    try:
        request_data = json.loads(query)
        payload = {
            "question": request_data.get("query", ""),
            "dataset_ids": request_data.get("dataset_ids", []),
            "page_size": top_k,
            "similarity_threshold": similarity_threshold
        }
    except json.JSONDecodeError as e:
        fixed_json = query.replace("'", '"')
        print("Fixed JSON:", fixed_json)
        try:
        request_data = json.loads(fixed_json)
    payload = {
        "question": request_data.get("query", ""),
@@ -363,13 +369,18 @@
        "page_size": top_k,
        "similarity_threshold": similarity_threshold
    }
        except Exception:
            payload = {
                "question":query,
                "dataset_ids":[knowledge_id],
                "page_size": top_k,
                "similarity_threshold": similarity_threshold
            }
    url = settings.fwr_base_url + RG_ORIGINAL_URL
    # url = "http://192.168.20.116:11080/" + RG_ORIGINAL_URL
    chat = ChatBaseApply()
    response = await  chat.chat_post(url, payload, await chat.get_headers(api_key))
    if not response:
        raise HTTPException(status_code=500, detail="服务异常!")
    print(response)
    records = [
        {
            "content": chunk["content"],
main.py
@@ -1,9 +1,7 @@
from contextlib import asynccontextmanager
from apscheduler.schedulers.background import BackgroundScheduler
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from starlette.staticfiles import StaticFiles
from app.api.auth import router as auth_router
from app.api.canvas import canvas_router
from app.api.chat import router as chat_router
@@ -20,17 +18,14 @@
from app.api.v2.public_api import public_api
from app.api.report import router as report_router
from app.api.resource import menu_router
# from app.api.sync_data import sync_router
from app.api.user import user_router
from app.api.group import group_router
from app.api.role import role_router
from app.models.base_model import init_db
from app.task.delete_execl_file import delete_file_after_delay
# from app.models.base_model import init_db
from app.task.fetch_agent import sync_agents, initialize_agents, sync_agents_v2, sync_knowledge, \
from app.task.fetch_agent import sync_agents_v2, sync_knowledge, \
    sync_resources_from_json
from app.init_config.init_run_data import sync_default_data
from app.task.sync_account_token import start_sync_token_task, sync_token
from app.task.sync_account_token import start_sync_token_task
init_db()
@@ -38,13 +33,8 @@
# 使用 Lifespan 事件处理程序
@asynccontextmanager
async def lifespan(app: FastAPI):
    # 初始化代理
    # initialize_agents()
    # # 在应用启动时同步代理
    # sync_agents()
    # await sync_default_data()  # Todo
    await sync_default_data()  # Todo
    sync_agents_v2() # 智能体
    sync_knowledge() # 知识库
    sync_resources_from_json()
@@ -60,19 +50,12 @@
    lifespan=lifespan
)
# 设置 CORS 中间件
# app.add_middleware(
#     CORSMiddleware,
#     allow_origins=["*"],
#     allow_credentials=True,
#     allow_methods=["*"],  # 允许所有方法
#     allow_headers=["*"],  # 允许所有头部
# )
# 创建调度器
scheduler = BackgroundScheduler()
scheduler.add_job(sync_agents_v2, 'interval', minutes=60, id="sync_resource_data")
scheduler.add_job(start_sync_token_task, 'interval', minutes=5, id="sync_token_1")
# scheduler.add_job(delete_file_after_delay, 'interval', minutes=10, id="delete_file_after_delay")
scheduler.start()
app.include_router(auth_router, prefix='/api/auth', tags=["auth"])