|
|
|
@ -1,9 +1,18 @@
|
|
|
|
|
from WxMini.Milvus.Config.MulvusConfig import *
|
|
|
|
|
from WxMini.Milvus.Utils.MilvusCollectionManager import MilvusCollectionManager
|
|
|
|
|
from WxMini.Milvus.Utils.MilvusConnectionPool import *
|
|
|
|
|
from WxMini.TtsConfig import *
|
|
|
|
|
from gensim.models import KeyedVectors
|
|
|
|
|
|
|
|
|
|
import jieba
|
|
|
|
|
import time
|
|
|
|
|
from openai import OpenAI
|
|
|
|
|
|
|
|
|
|
# 初始化 OpenAI 客户端
|
|
|
|
|
client = OpenAI(
|
|
|
|
|
api_key=MODEL_API_KEY,
|
|
|
|
|
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# 1. 加载预训练的 Word2Vec 模型
|
|
|
|
|
model_path = MS_MODEL_PATH
|
|
|
|
@ -36,14 +45,34 @@ collection_manager = MilvusCollectionManager(collection_name)
|
|
|
|
|
|
|
|
|
|
# 5. 输入一个用户问题
|
|
|
|
|
user_input = input("请输入一句话:") # 例如:“我今天心情不太好”
|
|
|
|
|
model_response = "我没听懂,能再说一遍吗?" # 大模型的固定回复
|
|
|
|
|
|
|
|
|
|
# 6. 调用大模型生成回复
|
|
|
|
|
try:
|
|
|
|
|
response = client.chat.completions.create(
|
|
|
|
|
model=MODEL_NAME,
|
|
|
|
|
messages=[
|
|
|
|
|
{"role": "system", "content": "你是一个非常好的聊天伙伴,可以疏导用户,帮他解压,一句控制在20字以内。"},
|
|
|
|
|
{"role": "user", "content": user_input}
|
|
|
|
|
],
|
|
|
|
|
max_tokens=500
|
|
|
|
|
)
|
|
|
|
|
if response.choices and response.choices[0].message.content:
|
|
|
|
|
model_response = response.choices[0].message.content.strip()
|
|
|
|
|
else:
|
|
|
|
|
model_response = "大模型未返回有效结果"
|
|
|
|
|
except Exception as e:
|
|
|
|
|
model_response = f"调用大模型失败: {str(e)}"
|
|
|
|
|
|
|
|
|
|
print(f"大模型回复: {model_response}")
|
|
|
|
|
|
|
|
|
|
# 7. 获取当前时间和会话 ID
|
|
|
|
|
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 当前时间
|
|
|
|
|
session_id = "session_001" # 会话 ID(可以根据需要动态生成)
|
|
|
|
|
|
|
|
|
|
# 6. 将用户问题转换为嵌入向量
|
|
|
|
|
# 8. 将用户问题转换为嵌入向量
|
|
|
|
|
user_embedding = text_to_embedding(user_input)
|
|
|
|
|
|
|
|
|
|
# 7. 插入数据,确保字段顺序与集合定义一致
|
|
|
|
|
# 9. 插入数据,确保字段顺序与集合定义一致
|
|
|
|
|
entities = [
|
|
|
|
|
[session_id], # session_id
|
|
|
|
|
[user_input], # user_input
|
|
|
|
@ -54,8 +83,8 @@ entities = [
|
|
|
|
|
collection_manager.insert_data(entities)
|
|
|
|
|
print("数据插入成功。")
|
|
|
|
|
|
|
|
|
|
# 8. 释放连接
|
|
|
|
|
# 10. 释放连接
|
|
|
|
|
milvus_pool.release_connection(connection)
|
|
|
|
|
|
|
|
|
|
# 9. 关闭连接池
|
|
|
|
|
# 11. 关闭连接池
|
|
|
|
|
milvus_pool.close()
|