From 8b98169c4084f11336efbdc6700e9dc65ad0737a Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Tue, 25 Mar 2025 09:13:30 +0800 Subject: [PATCH] 'commit' --- AI/WxMini/Milvus/X1_create_collection.py | 21 ++++++++++++++++-- AI/WxMini/Start.py | 9 +++++--- AI/WxMini/Utils/MySQLUtil.py | 14 +++++++++--- .../__pycache__/MySQLUtil.cpython-310.pyc | Bin 1297 -> 1685 bytes 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/AI/WxMini/Milvus/X1_create_collection.py b/AI/WxMini/Milvus/X1_create_collection.py index 5de6417d..9c513aa5 100644 --- a/AI/WxMini/Milvus/X1_create_collection.py +++ b/AI/WxMini/Milvus/X1_create_collection.py @@ -1,7 +1,8 @@ from pymilvus import FieldSchema, DataType, utility -from WxMini.Milvus.Config.MulvusConfig import * + from WxMini.Milvus.Utils.MilvusCollectionManager import MilvusCollectionManager from WxMini.Milvus.Utils.MilvusConnectionPool import * +from WxMini.Utils.MySQLUtil import * # 1. 使用连接池管理 Milvus 连接 milvus_pool = MilvusConnectionPool(host=MS_HOST, port=MS_PORT, max_connections=MS_MAX_CONNECTIONS) @@ -39,4 +40,20 @@ print(f"集合 '{collection_name}' 创建成功。") milvus_pool.release_connection(connection) # 8. 关闭连接池 -milvus_pool.close() \ No newline at end of file +milvus_pool.close() + +# 9、 清空MYSQL中的表 +# 获取事件循环 +loop = asyncio.get_event_loop() + +# 初始化 MySQL 连接池 +mysql_pool = loop.run_until_complete(init_mysql_pool()) +print("MySQL 连接池已初始化。") + +# 清空表 +loop.run_until_complete(truncate_chat_log(mysql_pool)) + +# 关闭连接池 +mysql_pool.close() +loop.run_until_complete(mysql_pool.wait_closed()) +print("MySQL 连接池已关闭。") diff --git a/AI/WxMini/Start.py b/AI/WxMini/Start.py index 1b88420f..22e1769d 100644 --- a/AI/WxMini/Start.py +++ b/AI/WxMini/Start.py @@ -140,9 +140,7 @@ async def reply(session_id: str = Form(...), prompt: str = Form(...)): await asyncio.to_thread(collection_manager.insert_data, entities) logger.info("用户输入和大模型反馈已记录到向量数据库。") - # 记录聊天数据到 MySQL - await save_chat_to_mysql(app.state.mysql_pool, session_id, prompt, result) - logger.info("用户输入和大模型反馈已记录到 MySQL 数据库。") + # 调用 TTS 生成 MP3 uuid_str = str(uuid.uuid4()) @@ -159,6 +157,11 @@ async def reply(session_id: str = Form(...), prompt: str = Form(...)): # 完整的 URL url = 'https://ylt.oss-cn-hangzhou.aliyuncs.com/' + tts_file + + # 记录聊天数据到 MySQL + await save_chat_to_mysql(app.state.mysql_pool, session_id, prompt, result,url) + logger.info("用户输入和大模型反馈已记录到 MySQL 数据库。") + return { "success": True, "url": url, diff --git a/AI/WxMini/Utils/MySQLUtil.py b/AI/WxMini/Utils/MySQLUtil.py index 147b8342..157ecc71 100644 --- a/AI/WxMini/Utils/MySQLUtil.py +++ b/AI/WxMini/Utils/MySQLUtil.py @@ -25,12 +25,20 @@ async def init_mysql_pool(): # 保存聊天记录到 MySQL -async def save_chat_to_mysql(mysql_pool, session_id, prompt, result): +async def save_chat_to_mysql(mysql_pool, session_id, prompt, result,audio_url): async with mysql_pool.acquire() as conn: async with conn.cursor() as cur: await cur.execute( - "INSERT INTO t_chat_log (session_id, user_input, model_response, create_time) VALUES (%s, %s, %s, NOW())", - (session_id, prompt, result) + "INSERT INTO t_chat_log (session_id, user_input, model_response,audio_url, create_time) VALUES (%s, %s, %s, %s, NOW())", + (session_id, prompt, result,audio_url) ) await conn.commit() logger.info("用户输入和大模型反馈已记录到 MySQL 数据库。") + +# 清空表 +async def truncate_chat_log(mysql_pool): + async with mysql_pool.acquire() as conn: + async with conn.cursor() as cur: + await cur.execute("TRUNCATE TABLE t_chat_log") + await conn.commit() + logger.info("表 t_chat_log 已清空。") \ No newline at end of file diff --git a/AI/WxMini/Utils/__pycache__/MySQLUtil.cpython-310.pyc b/AI/WxMini/Utils/__pycache__/MySQLUtil.cpython-310.pyc index 710d61e16f4c46ccd554e51b87c1d383ac466678..8ec19b77074e0ea04363706ed0c957a5a11a6bc6 100644 GIT binary patch delta 601 zcmbQpHI7jh8otuZ1B>D1|YYL6d*uG&jb0R*)(v zUntOeu^tj5SO( z%rz`&EDM<+su>w-SSMRD88g~U&SlaT3o2)1WB|cPAWmTbx`5fQs&w)?CVS4r(v-~n z_|l@B$#0mHCv!9VFs_^&!ED6HKDnD&gF6aIelxRUIu|3?KRy;7My+3Z|BK{-&P-+m z5-`9FWWYVK0?5Jegk3Gru_&I9uVt!X0(oK~Bi!kXV5ggdoL=vX&FPXML7{%mjv=lJ zA&yQyt_mgb$r*_y@j3bFrP4raUo2dKB&6_k`=)0*TA#1n^|+y_NC+se$y_7}q>5xg zgdB+AgA)Qk)-A!3qSCzN#FEr_4Vb~|K=ERbBvXSBqY$G2BOfC$82$o-K>;YJDLk2- zMUgRTvL=hSr8rO^ipw`LIM65F!#_9##t!fgg0n+|U4x?dAZh{}gM-8UgIuB}uVs;B Z1BGgl!sO#DYK%&g-?1pNaIo@l0{|N+i-G_E delta 319 zcmbQrJCTbopO=@50SK1RuD8Y^QkgC_6Bd2WocEFf7ZU<1-1)rWz& zcmt4VWUOIWz_5_Pgu#;`g~5YimQyWD4a)*XBoXCW)*99YOeu^tj5SO(%xTOEnILKz z8ERN2*RdEgT2C%#(iRIWXJljm!AKxZVF23C>{pdOc?XmIWJYGC$?D7=jGB`Rn2i|O zCNE~zn0$@dQJ8~~>mMHr52MyEz5hjWK<8)*O>SXTWV|(b8LM}&7*OCAmv3ZnpijJq ze{cwl9pE1XXNLy62HoO=s0nZk4i5JZa=FC|;k!7+`#Ji$7V!hkDG~$`a+5vT)EE^e L7qBTZ@vs5_sTfNM