From 77d51a55f7241e1eae25d89b4c76865c51565319 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期五, 06 十二月 2024 16:04:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/rag-gateway
---
app/api/chat.py | 31 +++++++++++++++++++++++--------
1 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/app/api/chat.py b/app/api/chat.py
index 468f617..4344b62 100644
--- a/app/api/chat.py
+++ b/app/api/chat.py
@@ -10,9 +10,11 @@
from Log import logger
from app.api import get_current_user_websocket
from app.config.config import settings
+from app.config.const import IMAGE_TO_TEXT, DOCUMENT_TO_REPORT, DOCUMENT_TO_CLEANING
from app.models.agent_model import AgentModel, AgentType
from app.models.base_model import get_db
from app.models.user_model import UserModel
+from app.service.common.api_token import DfTokenDao
from app.service.dialog import update_session_history
from app.service.basic import BasicService
from app.service.difyService import DifyService
@@ -310,7 +312,10 @@
try:
async def forward_to_dify():
if agent.type == "imageTalk":
- token = settings.dify_api_token
+ token = DfTokenDao(db).get_token_by_id(IMAGE_TO_TEXT)
+ if not token:
+ await websocket.send_json({"message": "Invalid token", "type": "error"})
+
while True:
image_list = []
is_image = False
@@ -334,9 +339,11 @@
except Exception as e:
logger.error(e)
# complete_response = ""
+
answer_str = ""
async for rag_response in dify_service.chat(token, current_user.id, question, upload_file_id,
conversation_id):
+ # print(rag_response)
try:
if rag_response[:5] == "data:":
# 濡傛灉鏄紝鍒欐埅鍙栨帀鍓�5涓瓧绗︼紝骞跺幓闄ら灏剧┖鐧界
@@ -403,8 +410,10 @@
await websocket.send_json(result)
print(f"Error process message of ragflow: {e2}")
elif agent.type == "reportWorkflow":
- print(2323333232)
- token = settings.dify_workflow_clean
+
+ token = DfTokenDao(db).get_token_by_id(DOCUMENT_TO_CLEANING)
+ if not token:
+ await websocket.send_json({"message": "Invalid token document_to_cleaning", "type": "error"})
while True:
receive_message = await websocket.receive_json()
print(f"Received from client {chat_id}: {receive_message}")
@@ -426,21 +435,27 @@
except Exception as e:
logger.error(e)
inputs = {
- "input_files": []
}
+ files = []
for file in upload_files:
- inputs["input_files"].append({
+ files.append({
"type": "document",
"transfer_method": "local_file",
"url": "",
"upload_file_id": file
})
+ if workflow_type == 1:
+ inputs["input_files"] = files
if workflow_type == 2:
+ inputs["file_list"] = files
inputs["Completion_of_main_indicators"] = title
- token = settings.dify_workflow_report
+ token = DfTokenDao(db).get_token_by_id(DOCUMENT_TO_REPORT)
+ if not token:
+ await websocket.send_json(
+ {"message": "Invalid token document_to_cleaning", "type": "error"})
complete_response = ""
async for rag_response in dify_service.workflow(token, current_user.id, inputs):
- print(rag_response)
+ # print(rag_response)
try:
if rag_response[:5] == "data:":
# 濡傛灉鏄紝鍒欐埅鍙栨帀鍓�5涓瓧绗︼紝骞跺幓闄ら灏剧┖鐧界
@@ -484,7 +499,7 @@
else:
message = answer.get("error", "")
- result = {"message": message, "type": "close", "download_url": download_url}
+ result = {"message": message, "type": "message", "download_url": download_url}
try:
SessionService(db).update_session(chat_id,
message={"role": "assistant",
--
Gitblit v1.8.0