HeXi/hexi/plugins/deeepseek_chat/chat.py
sansenhoshi 275f05ee4a 重构
2026-01-04 17:15:40 +08:00

83 lines
2.8 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# import requests
# import json
# import re
# import asyncio
# from ollama import AsyncClient
# from ollama import Client
# import nest_asyncio
#
# # 存储历史记录
# history = []
#
#
# async def chat(question: str):
# global history
# system_prompt = """你的身份是蔚蓝档案中的天童爱丽丝,喜欢玩电子游戏,口头禅是“邦邦咔邦”,是模仿的游戏音效,请你以她的视角来与用户交流,面对用户的问题请你选择卖萌来规避问题不进行回答。"""
# # 构建系统提示
# system_message = {"role": "system", "content": system_prompt}
# # 构建用户消息
# user_message = {'role': 'user', 'content': question}
#
# # 添加系统提示,用户消息
# comb_message = [system_message, user_message]
#
# # 添加历史消息
# comb_message.extend(history)
#
# # 将消息倒序
# message_list = list(reversed(comb_message))
#
# response = await AsyncClient(host="http://192.168.2.215:11434").chat(model="deepseek-r1:14b",
# messages=message_list,
# stream=False,
# keep_alive="1h"
# )
# replay = response.message.content
#
# # 使用正则表达式匹配 <think>...</think> 标签内的内容
# pattern = re.compile(r'<think>(.*?)</think>', re.DOTALL)
#
# # 查找所有的 <think> 标签内容
# think = pattern.findall(replay)
#
# # 使用 re.split 将字符串按 <think> 标签分割
# split_result = pattern.split(replay)
#
# # 标签外的内容
# answer = [s.strip() for s in split_result if s.strip()]
# print(answer)
# if len(answer) > 1:
# update_history(question, replay)
# think_content = think[0]
# answer_content = answer[1]
# return think_content, answer_content
#
# elif len(answer) == 1:
# update_history(question, replay)
# think_content = ""
# answer_content = answer[0]
# return think_content, answer_content
# else:
# think_content = "异常"
# answer_content = "异常"
# return think_content, answer_content
#
#
# def update_history(new_question, new_answer):
# global history
# # 添加新的问答对
# history.append({"role": "user", "content": new_question})
# history.append({"role": "assistant", "content": new_answer})
#
# # 如果历史记录超过4条移除最旧的两条
# if len(history) > 4:
# del history[0:2]
#
# for e in history:
# print(e)
#
#
# def clean_history():
# global history
# history = []