fix: 更新文档和代码中的LLM_request为LLMRequest,优化dockerignore
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
.git
|
.git
|
||||||
__pycache__
|
__pycache__
|
||||||
*.pyc
|
|
||||||
*.pyo
|
*.pyo
|
||||||
*.pyd
|
*.pyd
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
● [我有问题](#我有问题)
|
● [我有问题](#我有问题)
|
||||||
● [我想做贡献](#我想做贡献)
|
● [我想做贡献](#我想做贡献)
|
||||||
● [我想报告BUG](#报告BUG)
|
|
||||||
● [我想提出建议](#提出建议)
|
● [我想提出建议](#提出建议)
|
||||||
|
|
||||||
## 我有问题
|
## 我有问题
|
||||||
|
|||||||
22
README.md
22
README.md
@@ -113,17 +113,17 @@
|
|||||||
|
|
||||||
## 🎯 功能介绍
|
## 🎯 功能介绍
|
||||||
|
|
||||||
| 模块 | 主要功能 | 特点 |
|
| 模块 | 主要功能 | 特点 |
|
||||||
|------|---------|------|
|
|----------|------------------------------------------------------------------|-------|
|
||||||
| 💬 聊天系统 | • 心流/推理聊天<br>• 关键词主动发言<br>• 多模型支持<br>• 动态prompt构建<br>• 私聊功能(PFC) | 拟人化交互 |
|
| 💬 聊天系统 | • 心流/推理聊天<br>• 关键词主动发言<br>• 多模型支持<br>• 动态prompt构建<br>• 私聊功能(PFC) | 拟人化交互 |
|
||||||
| 🧠 心流系统 | • 实时思考生成<br>• 自动启停机制<br>• 日程系统联动<br>• 工具调用能力 | 智能化决策 |
|
| 🧠 心流系统 | • 实时思考生成<br>• 自动启停机制<br>• 日程系统联动<br>• 工具调用能力 | 智能化决策 |
|
||||||
| 🧠 记忆系统 | • 优化记忆抽取<br>• 海马体记忆机制<br>• 聊天记录概括 | 持久化记忆 |
|
| 🧠 记忆系统 | • 优化记忆抽取<br>• 海马体记忆机制<br>• 聊天记录概括 | 持久化记忆 |
|
||||||
| 😊 表情系统 | • 情绪匹配发送<br>• GIF支持<br>• 自动收集与审查 | 丰富表达 |
|
| 😊 表情系统 | • 情绪匹配发送<br>• GIF支持<br>• 自动收集与审查 | 丰富表达 |
|
||||||
| 📅 日程系统 | • 动态日程生成<br>• 自定义想象力<br>• 思维流联动 | 智能规划 |
|
| 📅 日程系统 | • 动态日程生成<br>• 自定义想象力<br>• 思维流联动 | 智能规划 |
|
||||||
| 👥 关系系统 | • 关系管理优化<br>• 丰富接口支持<br>• 个性化交互 | 深度社交 |
|
| 👥 关系系统 | • 关系管理优化<br>• 丰富接口支持<br>• 个性化交互 | 深度社交 |
|
||||||
| 📊 统计系统 | • 使用数据统计<br>• LLM调用记录<br>• 实时控制台显示 | 数据可视 |
|
| 📊 统计系统 | • 使用数据统计<br>• LLM调用记录<br>• 实时控制台显示 | 数据可视 |
|
||||||
| 🔧 系统功能 | • 优雅关闭机制<br>• 自动数据保存<br>• 异常处理完善 | 稳定可靠 |
|
| 🔧 系统功能 | • 优雅关闭机制<br>• 自动数据保存<br>• 异常处理完善 | 稳定可靠 |
|
||||||
| 🛠️ 工具系统 | • 知识获取工具<br>• 自动注册机制<br>• 多工具支持 | 扩展功能 |
|
| 🛠️ 工具系统 | • 知识获取工具<br>• 自动注册机制<br>• 多工具支持 | 扩展功能 |
|
||||||
|
|
||||||
## 📐 项目架构
|
## 📐 项目架构
|
||||||
|
|
||||||
|
|||||||
@@ -1,95 +0,0 @@
|
|||||||
import unittest
|
|
||||||
import asyncio
|
|
||||||
import aiohttp
|
|
||||||
from api import BaseMessageAPI
|
|
||||||
from message_base import (
|
|
||||||
BaseMessageInfo,
|
|
||||||
UserInfo,
|
|
||||||
GroupInfo,
|
|
||||||
FormatInfo,
|
|
||||||
MessageBase,
|
|
||||||
Seg,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
send_url = "http://localhost"
|
|
||||||
receive_port = 18002 # 接收消息的端口
|
|
||||||
send_port = 18000 # 发送消息的端口
|
|
||||||
test_endpoint = "/api/message"
|
|
||||||
|
|
||||||
# 创建并启动API实例
|
|
||||||
api = BaseMessageAPI(host="0.0.0.0", port=receive_port)
|
|
||||||
|
|
||||||
|
|
||||||
class TestLiveAPI(unittest.IsolatedAsyncioTestCase):
|
|
||||||
async def asyncSetUp(self):
|
|
||||||
"""测试前的设置"""
|
|
||||||
self.received_messages = []
|
|
||||||
|
|
||||||
async def message_handler(message):
|
|
||||||
self.received_messages.append(message)
|
|
||||||
|
|
||||||
self.api = api
|
|
||||||
self.api.register_message_handler(message_handler)
|
|
||||||
self.server_task = asyncio.create_task(self.api.run())
|
|
||||||
try:
|
|
||||||
await asyncio.wait_for(asyncio.sleep(1), timeout=5)
|
|
||||||
except asyncio.TimeoutError:
|
|
||||||
self.skipTest("服务器启动超时")
|
|
||||||
|
|
||||||
async def asyncTearDown(self):
|
|
||||||
"""测试后的清理"""
|
|
||||||
if hasattr(self, "server_task"):
|
|
||||||
await self.api.stop() # 先调用正常的停止流程
|
|
||||||
if not self.server_task.done():
|
|
||||||
self.server_task.cancel()
|
|
||||||
try:
|
|
||||||
await asyncio.wait_for(self.server_task, timeout=100)
|
|
||||||
except (asyncio.CancelledError, asyncio.TimeoutError):
|
|
||||||
pass
|
|
||||||
|
|
||||||
async def test_send_and_receive_message(self):
|
|
||||||
"""测试向运行中的API发送消息并接收响应"""
|
|
||||||
# 准备测试消息
|
|
||||||
user_info = UserInfo(user_id=12345678, user_nickname="测试用户", platform="qq")
|
|
||||||
group_info = GroupInfo(group_id=12345678, group_name="测试群", platform="qq")
|
|
||||||
format_info = FormatInfo(content_format=["text"], accept_format=["text", "emoji", "reply"])
|
|
||||||
template_info = None
|
|
||||||
message_info = BaseMessageInfo(
|
|
||||||
platform="qq",
|
|
||||||
message_id=12345678,
|
|
||||||
time=12345678,
|
|
||||||
group_info=group_info,
|
|
||||||
user_info=user_info,
|
|
||||||
format_info=format_info,
|
|
||||||
template_info=template_info,
|
|
||||||
)
|
|
||||||
message = MessageBase(
|
|
||||||
message_info=message_info,
|
|
||||||
raw_message="测试消息",
|
|
||||||
message_segment=Seg(type="text", data="测试消息"),
|
|
||||||
)
|
|
||||||
test_message = message.to_dict()
|
|
||||||
|
|
||||||
# 发送测试消息到发送端口
|
|
||||||
async with aiohttp.ClientSession() as session:
|
|
||||||
async with session.post(
|
|
||||||
f"{send_url}:{send_port}{test_endpoint}",
|
|
||||||
json=test_message,
|
|
||||||
) as response:
|
|
||||||
response_data = await response.json()
|
|
||||||
self.assertEqual(response.status, 200)
|
|
||||||
self.assertEqual(response_data["status"], "success")
|
|
||||||
try:
|
|
||||||
async with asyncio.timeout(5): # 设置5秒超时
|
|
||||||
while len(self.received_messages) == 0:
|
|
||||||
await asyncio.sleep(0.1)
|
|
||||||
received_message = self.received_messages[0]
|
|
||||||
print(received_message)
|
|
||||||
self.received_messages.clear()
|
|
||||||
except asyncio.TimeoutError:
|
|
||||||
self.fail("等待接收消息超时")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
unittest.main()
|
|
||||||
@@ -28,7 +28,7 @@ class TopicIdentifier:
|
|||||||
|
|
||||||
消息内容:{text}"""
|
消息内容:{text}"""
|
||||||
|
|
||||||
# 使用 LLM_request 类进行请求
|
# 使用 LLMRequest 类进行请求
|
||||||
try:
|
try:
|
||||||
topic, _, _ = await self.llm_topic_judge.generate_response(prompt)
|
topic, _, _ = await self.llm_topic_judge.generate_response(prompt)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ llmcheck 模式:
|
|||||||
|
|
||||||
import time
|
import time
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from ..models.utils_model import LLM_request
|
from ..models.utils_model import LLMRequest
|
||||||
from ...config.config import global_config
|
from ...config.config import global_config
|
||||||
|
|
||||||
# from ..chat.chat_stream import ChatStream
|
# from ..chat.chat_stream import ChatStream
|
||||||
@@ -61,7 +61,7 @@ def llmcheck_decorator(trigger_condition_func):
|
|||||||
class LlmcheckWillingManager(MxpWillingManager):
|
class LlmcheckWillingManager(MxpWillingManager):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.model_v3 = LLM_request(model=global_config.llm_normal, temperature=0.3)
|
self.model_v3 = LLMRequest(model=global_config.llm_normal, temperature=0.3)
|
||||||
|
|
||||||
async def get_llmreply_probability(self, message_id: str):
|
async def get_llmreply_probability(self, message_id: str):
|
||||||
message_info = self.ongoing_messages[message_id]
|
message_info = self.ongoing_messages[message_id]
|
||||||
|
|||||||
Reference in New Issue
Block a user