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