From bcc63761bdc4c1604c9275a3c5cdf8a483ad5611 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期四, 06 二月 2025 16:37:09 +0800
Subject: [PATCH] TOKEN同步功能
---
app/service/v2/chat.py | 54 ++++++++++++++++++++++++++++++++++++------------------
1 files changed, 36 insertions(+), 18 deletions(-)
diff --git a/app/service/v2/chat.py b/app/service/v2/chat.py
index 5273f9b..7af7071 100644
--- a/app/service/v2/chat.py
+++ b/app/service/v2/chat.py
@@ -5,7 +5,7 @@
DF_CHAT_WORKFLOW
from app.config.config import settings
from app.config.const import *
-from app.models import DialogModel, ApiTokenModel
+from app.models import DialogModel, ApiTokenModel, UserTokenModel
from app.models.v2.session_model import ChatSessionDao, ChatData
from app.service.v2.app_driver.chat_agent import ChatAgent
from app.service.v2.app_driver.chat_data import ChatBaseApply
@@ -40,12 +40,29 @@
logger.error(e)
return None
+async def get_app_token(db, app_id):
+ app_token = db.query(UserTokenModel).filter_by(id=app_id).first()
+ if app_token:
+ return app_token.access_token
+ return ""
+
+
async def get_chat_token(db, app_id):
app_token = db.query(ApiTokenModel).filter_by(app_id=app_id).first()
if app_token:
return app_token.token
return ""
+
+
+async def add_chat_token(db, data):
+ try:
+ api_token = ApiTokenModel(**data)
+ db.add(api_token)
+ db.commit()
+ except Exception as e:
+ logger.error(e)
+
async def get_chat_info(db, chat_id: str):
@@ -102,7 +119,7 @@
logger.error(e)
try:
yield "data: " + json.dumps({"message": smart_message_error,
- "error": "**ERROR**: " + str(e), "status": http_500},
+ "error": "\n**ERROR**: " + str(e), "status": http_500},
ensure_ascii=False) + "\n\n"
except:
...
@@ -182,7 +199,7 @@
logger.error(e)
try:
yield "data: " + json.dumps({"message": smart_message_error,
- "error": "**ERROR**: " + str(e), "status": http_500},
+ "error": "\n**ERROR**: " + str(e), "status": http_500},
ensure_ascii=False) + "\n\n"
except:
...
@@ -200,21 +217,22 @@
chat_info = db.query(DialogModel).filter_by(id=chat_id).first()
if not chat_info:
return {}
- if chat_info.dialog_type == RG_TYPE:
- return {"retriever_resource":
- {
- "enabled": True
- }
- }
- elif chat_info.dialog_type == BASIC_TYPE:
- ...
- elif chat_info.dialog_type == DF_TYPE:
- token = await get_chat_token(db, chat_id)
- if not token:
- return {}
- url = settings.dify_base_url + DF_CHAT_PARAMETERS
- chat = ChatBaseApply()
- return await chat.chat_parameters(url, {"user": str(user_id)}, await chat.get_headers(token))
+ return chat_info.parameters
+ # if chat_info.dialog_type == RG_TYPE:
+ # return {"retriever_resource":
+ # {
+ # "enabled": True
+ # }
+ # }
+ # elif chat_info.dialog_type == BASIC_TYPE:
+ # ...
+ # elif chat_info.dialog_type == DF_TYPE:
+ # token = await get_chat_token(db, chat_id)
+ # if not token:
+ # return {}
+ # url = settings.dify_base_url + DF_CHAT_PARAMETERS
+ # chat = ChatBaseApply()
+ # return await chat.chat_get(url, {"user": str(user_id)}, await chat.get_headers(token))
async def service_chat_sessions(db, chat_id, name):
--
Gitblit v1.8.0