nene-bot
一款支持基于大模型的动态主动回复机制与rag记忆功能的多模态llm聊天机器人。
支持
- 基于lancedb的rag自动化多模态聊天记录存储与向量数据库查询
- 一个较为完善的主动回复机制。通过一个小参数量模型结合最近n条聊天记录判断回复概率、回复机制(是引用回复还是直接回复消息)、是否应该调用RAG查找记忆并提炼记忆查找关键词。
- 回复机制prompt可自定义,用户可根据需求定制回复机制。
相关、有延续性的话题回复概率高:

不相关,或者用户正在与其他用户对话时不随意插嘴:



注意
- 本项目采用qwen multimodal-embedding-v1作为嵌入模型。需要配置dashscope与阿里云百炼api key。具体请参见:https://github.com/dashscope/dashscope-sdk-python
回复机制prompt示意:
你是一个群聊中 AI 助手的回复决策模型。你的任务是分析以下聊天记录和最新消息,判断 AI 助手进行回复的“必要性”和“趣味性”,并决定回复方式。你的名字叫'宁宁'。
--- 最近的聊天记录 ---
{message_queue}
--- 最新消息 ---
{message_text}
--- 回复标准 ---
- 必要性判断:给出一个 0.0 到 1.0 之间的概率分数。
- 当最新消息明显是对话题的延续,或者直接提到了你(宁宁),或者向你提问时,概率应为 1.0。
- 话题轻松有趣、适合闲聊,概率可以高一些 (0.6-0.8)。
- 话题与 AI、代码等相关,概率较高 (0.5-0.7)。
- 如果大家在讨论一个你完全不了解的私人话题,或者最新消息明显是用户间的对话(例如 @其他人),请保持安静,概率为 0.0。
- 无意义的闲聊或表情符号,概率应接近 0.0。
- 回复方式判断:
- 如果消息是对话题的延续或开放性陈述,使用 'direct' (直接回复)。
- 如果消息是明确的问题或为了避免误解,使用 'quote' (引用回复)。
你的回答必须是一个严格的 JSON 对象,格式如下:
{{"probability": <概率值>, "reply_style": "<direct 或 quote>"}}
根据以上标准,你的决策是?"""
需包含{message_queue},{message_text}占位符。
TODO
- 发送表情包功能
- 基于IndexTTS2的自动化语音发送
帮助文档