From 3b1bf7da6771bd1d6852d3dcc1f906d5ae5c95d1 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期三, 12 三月 2025 13:49:12 +0800 Subject: [PATCH] 增加内容优化 --- app/service/v2/chat.py | 48 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 35 insertions(+), 13 deletions(-) diff --git a/app/service/v2/chat.py b/app/service/v2/chat.py index 83ea02a..0942681 100644 --- a/app/service/v2/chat.py +++ b/app/service/v2/chat.py @@ -1,6 +1,7 @@ import asyncio import io import json +import time import uuid import fitz @@ -11,7 +12,8 @@ DF_CHAT_WORKFLOW, DF_UPLOAD_FILE, RG_ORIGINAL_URL from app.config.config import settings from app.config.const import * -from app.models import DialogModel, ApiTokenModel, UserTokenModel, ComplexChatSessionDao, ChatDataRequest +from app.models import DialogModel, ApiTokenModel, UserTokenModel, ComplexChatSessionDao, ChatDataRequest, \ + ComplexChatDao 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 @@ -90,7 +92,7 @@ token = await get_chat_token(db, rg_api_token) url = settings.fwr_base_url + RG_CHAT_DIALOG.format(chat_id) chat = ChatDialog() - session = await add_session_log(db, session_id, question, chat_id, user_id, mode, session_id, 1) + session = await add_session_log(db, session_id, question, chat_id, user_id, mode, session_id, RG_TYPE) if session: conversation_id = session.conversation_id message = {"role": "assistant", "answer": "", "reference": {}} @@ -173,7 +175,7 @@ else: query = "start new conversation" session = await add_session_log(db, session_id, query if query else "start new conversation", chat_id, user_id, - mode, conversation_id, 3) + mode, conversation_id, DF_TYPE) if session: conversation_id = session.conversation_id try: @@ -251,8 +253,15 @@ "error": error}, conversation_id) + + async def service_chat_basic(db, chat_id: str, chat_data: ChatData, session_id: str, user_id, mode: str): - ... + + if chat_id == basic_report_talk: + complex_chat = await ComplexChatDao(db).get_complex_chat_by_mode(chat_data.report_mode) + if complex_chat: + ... + async def service_chat_parameters(db, chat_id, user_id): @@ -285,7 +294,15 @@ async def service_chat_session_log(db, session_id): session_log = await ChatSessionDao(db).get_session_by_id(session_id) - return json.dumps(session_log.log_to_json() if session_log else {}) + if not session_log: + return {} + log_info =session_log.log_to_json() + if session_log.event_type == complex_chat: + + total, message_list = await ComplexChatSessionDao(db).get_session_list(session_id) + log_info["message"] = [message.log_to_json() for message in message_list[::-1]] + + return json.dumps(log_info) async def service_chat_upload(db, chat_id, file, user_id): @@ -470,23 +487,28 @@ error = "" files = [] node_list = [] + conversation_id = "" token = await get_chat_token(db, chat_id) chat, url = await get_chat_object(mode) - conversation_id, message = await add_complex_log(db, str(uuid.uuid4()),chat_id, chat_request.sessionId, chat_request.chatMode, chat_request.query, user_id, mode, DF_TYPE, 1, query_data=chat_request.to_dict()) - if not message: - yield "data: " + json.dumps({"message": smart_message_error, - "error": "\n**ERROR**: 鍒涘缓浼氳瘽澶辫触锛�", "status": http_500}, - ensure_ascii=False) + "\n\n" - return + if chat_request.chatMode != complex_content_optimization_chat: + await add_session_log(db, chat_request.sessionId, chat_request.query if chat_request.query else "鏈懡鍚嶄細璇�", chat_id, user_id, + mode, "", DF_TYPE) + conversation_id, message = await add_complex_log(db, str(uuid.uuid4()),chat_id, chat_request.sessionId, chat_request.chatMode, chat_request.query, user_id, mode, DF_TYPE, 1, query_data=chat_request.to_dict()) + if not message: + yield "data: " + json.dumps({"message": smart_message_error, + "error": "\n**ERROR**: 鍒涘缓浼氳瘽澶辫触锛�", "status": http_500}, + ensure_ascii=False) + "\n\n" + return inputs = {"is_deep": chat_request.isDeep} if chat_request.chatMode == complex_knowledge_chat: inputs["query_json"] = json.dumps({"query": chat_request.query, "dataset_ids": chat_request.knowledgeId}) - + elif chat_request.chatMode == complex_content_optimization_chat: + inputs["type"] = chat_request.optimizeType try: async for ans in chat.chat_completions(url, await chat.complex_request_data(chat_request.query, conversation_id, str(user_id), files=chat_request.files, inputs=inputs), await chat.get_headers(token)): - print(ans) + # print(ans) data = {} status = http_200 conversation_id = ans.get("conversation_id") -- Gitblit v1.8.0