|
|
|
|
@@ -4,7 +4,10 @@ AI 聊天插件,支持向量数据库记忆功能
|
|
|
|
|
"""
|
|
|
|
|
import time
|
|
|
|
|
import uuid
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
=======
|
|
|
|
|
<<<<<<< HEAD:src/neobot/plugins/ai_chat.py
|
|
|
|
|
>>>>>>> eb9079744c82f8e254de084a3a089ef91c37e9dc
|
|
|
|
|
import os
|
|
|
|
|
import base64
|
|
|
|
|
from neobot.core.managers.command_manager import matcher
|
|
|
|
|
@@ -13,6 +16,8 @@ from neobot.core.managers.vectordb_manager import vectordb_manager
|
|
|
|
|
from neobot.core.managers.image_manager import image_manager
|
|
|
|
|
from neobot.core.utils.logger import ModuleLogger
|
|
|
|
|
from neobot.core.config_loader import global_config
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
=======
|
|
|
|
|
=======
|
|
|
|
|
import markdown
|
|
|
|
|
from core.managers.command_manager import matcher
|
|
|
|
|
@@ -23,6 +28,7 @@ from core.managers.image_manager import image_manager
|
|
|
|
|
from core.utils.logger import ModuleLogger
|
|
|
|
|
from core.config_loader import global_config
|
|
|
|
|
>>>>>>> origin/main:plugins/ai_chat.py
|
|
|
|
|
>>>>>>> eb9079744c82f8e254de084a3a089ef91c37e9dc
|
|
|
|
|
|
|
|
|
|
logger = ModuleLogger("AIChat")
|
|
|
|
|
|
|
|
|
|
@@ -43,10 +49,13 @@ async def get_ai_response(user_id: int, group_id: int, user_message: str) -> str
|
|
|
|
|
if not OPENAI_AVAILABLE:
|
|
|
|
|
return "请先安装 openai 库: pip install openai"
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
=======
|
|
|
|
|
<<<<<<< HEAD:src/neobot/plugins/ai_chat.py
|
|
|
|
|
=======
|
|
|
|
|
# 从配置中获取 DeepSeek API 配置(复用跨平台插件的配置或全局配置)
|
|
|
|
|
>>>>>>> origin/main:plugins/ai_chat.py
|
|
|
|
|
>>>>>>> eb9079744c82f8e254de084a3a089ef91c37e9dc
|
|
|
|
|
api_key = getattr(global_config.cross_platform, 'deepseek_api_key', None) or "sk-f71322a9fbba4b05a7df969cb4004f06"
|
|
|
|
|
api_url = getattr(global_config.cross_platform, 'deepseek_api_url', "https://api.deepseek.com/v1")
|
|
|
|
|
model = getattr(global_config.cross_platform, 'deepseek_model', "deepseek-chat")
|
|
|
|
|
@@ -158,7 +167,10 @@ async def chat_command(event: GroupMessageEvent | PrivateMessageEvent, args: lis
|
|
|
|
|
await event.reply("正在思考中...")
|
|
|
|
|
reply = await get_ai_response(user_id, group_id, user_message)
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
=======
|
|
|
|
|
<<<<<<< HEAD:src/neobot/plugins/ai_chat.py
|
|
|
|
|
>>>>>>> eb9079744c82f8e254de084a3a089ef91c37e9dc
|
|
|
|
|
try:
|
|
|
|
|
image_base64 = await generate_chat_image_base64(
|
|
|
|
|
user_name=str(event.user_id),
|
|
|
|
|
@@ -174,6 +186,8 @@ async def chat_command(event: GroupMessageEvent | PrivateMessageEvent, args: lis
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.error(f"生成聊天图片失败: {e}")
|
|
|
|
|
await event.reply(reply)
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
=======
|
|
|
|
|
=======
|
|
|
|
|
# 将 Markdown 转换为 HTML
|
|
|
|
|
try:
|
|
|
|
|
@@ -206,3 +220,4 @@ async def chat_command(event: GroupMessageEvent | PrivateMessageEvent, args: lis
|
|
|
|
|
logger.error(f"渲染聊天图片失败: {e}")
|
|
|
|
|
await event.reply("图片生成失败,返回文本:\n" + reply)
|
|
|
|
|
>>>>>>> origin/main:plugins/ai_chat.py
|
|
|
|
|
>>>>>>> eb9079744c82f8e254de084a3a089ef91c37e9dc
|
|
|
|
|
|