| | |
| | | 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 |
| | |
| | | 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): |
| | |
| | | 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: |
| | | ... |
| | |
| | | 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: |
| | | ... |
| | |
| | | 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): |