From 370120fd4154ce6c5f69d16a4a343a016cf2e816 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期二, 04 三月 2025 09:53:17 +0800 Subject: [PATCH] 完善问题 --- app/service/v2/chat.py | 33 +++++++++++----- app/config/env_conf/config116.yaml | 13 +++--- app/config/env_conf/config.yaml | 13 +++--- main.py | 27 ++----------- app/api/v2/chat.py | 9 +--- app/api/agent.py | 6 +- app/models/v2/chat.py | 5 ++ 7 files changed, 49 insertions(+), 57 deletions(-) diff --git a/app/api/agent.py b/app/api/agent.py index d5c5ea8..1d275bc 100644 --- a/app/api/agent.py +++ b/app/api/agent.py @@ -45,10 +45,10 @@ if agent_type == AgentType.RAGFLOW: ragflow_service = RagflowService(base_url=settings.fwr_base_url) try: - token = await get_ragflow_token(db, current_user.id) - result = await ragflow_service.get_chat_sessions(token, agent_id) + result = await get_session_history(db, current_user.id, agent_id, page, limit) if not result: - result = await get_session_history(db, current_user.id, agent_id, page, limit) + token = await get_ragflow_token(db, current_user.id) + result = await ragflow_service.get_chat_sessions(token, agent_id) except Exception as e: print(e) raise HTTPException(status_code=500, detail=str(e)) diff --git a/app/api/v2/chat.py b/app/api/v2/chat.py index 6f78896..b65541e 100644 --- a/app/api/v2/chat.py +++ b/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} + diff --git a/app/config/env_conf/config.yaml b/app/config/env_conf/config.yaml index 3f9217f..297cfab 100644 --- a/app/config/env_conf/config.yaml +++ b/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 + diff --git a/app/config/env_conf/config119.yaml b/app/config/env_conf/config116.yaml similarity index 80% rename from app/config/env_conf/config119.yaml rename to app/config/env_conf/config116.yaml index 297cfab..3f9217f 100644 --- a/app/config/env_conf/config119.yaml +++ b/app/config/env_conf/config116.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 diff --git a/app/models/v2/chat.py b/app/models/v2/chat.py index 3abe304..a4818e9 100644 --- a/app/models/v2/chat.py +++ b/app/models/v2/chat.py @@ -10,4 +10,7 @@ class RetrievalRequest(BaseModel): knowledge_id: str query: str - retrieval_setting: RetrievalSetting \ No newline at end of file + retrieval_setting: RetrievalSetting + + + diff --git a/app/service/v2/chat.py b/app/service/v2/chat.py index 33634a9..68a7cd3 100644 --- a/app/service/v2/chat.py +++ b/app/service/v2/chat.py @@ -348,28 +348,39 @@ 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) - request_data = json.loads(fixed_json) - payload = { - "question": request_data.get("query", ""), - "dataset_ids": request_data.get("dataset_ids", []), - "page_size": top_k, - "similarity_threshold": similarity_threshold - } + try: + request_data = json.loads(fixed_json) + payload = { + "question": request_data.get("query", ""), + "dataset_ids": request_data.get("dataset_ids", []), + "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"], diff --git a/main.py b/main.py index baad0e8..d0ba8d6 100644 --- a/main.py +++ b/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() - # # 鍦ㄥ簲鐢ㄥ惎鍔ㄦ椂鍚屾浠g悊 - # 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"]) -- Gitblit v1.8.0