zhaoqingang 1 rok pred
rodič
commit
370120fd41

+ 3 - 3
app/api/agent.py

@@ -45,10 +45,10 @@ async def chat_list(
     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))

+ 2 - 7
app/api/v2/chat.py

@@ -136,13 +136,8 @@ async def api_chat_sessions(sessionId:str, current_user: UserModel = Depends(get
 
 
 
-@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}
+

+ 7 - 6
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 @@ fetch_fwr_agent: 知识问答,智能问答
 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
+
 
 

+ 6 - 7
app/config/env_conf/config119.yaml → 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 @@ fetch_fwr_agent: 知识问答,智能问答
 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
 
 

+ 4 - 1
app/models/v2/chat.py

@@ -10,4 +10,7 @@ class RetrievalSetting(BaseModel):
 class RetrievalRequest(BaseModel):
     knowledge_id: str
     query: str
-    retrieval_setting: RetrievalSetting
+    retrieval_setting: RetrievalSetting
+
+
+

+ 22 - 11
app/service/v2/chat.py

@@ -348,28 +348,39 @@ async def read_file(file, filename, content_type):
     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"],

+ 5 - 22
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.chat import chat_router_v2
 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 @@ init_db()
 # 使用 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 @@ app = FastAPI(
     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"])