自用群聊消息搜索机器人
- 群聊消息存储并支持中文分词搜索 (Lucene)
- 向量搜索功能 (FAISS): 基于对话段的语义搜索,无需额外服务依赖
- 群聊消息中多媒体内容自动处理:
- 图片自动下载并OCR存储 (PaddleOCR)
- 图片自动二维码识别(WeChatQR)
- 语音/视频自动语音识别 (Whisper)
- 发送图片附带
打印指令时自动OCR回复
- 大语言模型集成:
- Ollama本地模型
- OpenAI API
- Gemini API
- 可配置多模型通道管理
- 高级功能:
- 短链接映射服务
- 消息扩展存储
- 记忆图谱功能
- 私有Bot API支持
- 群组黑名单/设置管理
详细功能说明请参考: Docs/Bot_Commands_User_Guide.md
- 下载最新版本
- 首次运行会自动生成配置目录
- 编辑
AppData/Local/TelegramSearchBot/Config.json:
{
"BaseUrl": "https://api.telegram.org",
"BotToken": "your-bot-token",
"AdminId": 123456789,
"EnableAutoOCR": false,
"EnableAutoASR": false,
"IsLocalAPI": false,
"SameServer": false,
"TaskDelayTimeout": 1000,
"OllamaModelName": "qwen2.5:72b-instruct-q2_K",
"EnableVideoASR": false,
"EnableOpenAI": false,
"OpenAIModelName": "gpt-4o",
"OLTPAuth": "",
"OLTPAuthUrl": "",
"OLTPName": ""
}-
必填项:
BotToken: 从@BotFather获取的Telegram机器人tokenAdminId: 管理员Telegram用户ID(必须为数字)
-
AI相关:
OllamaModelName: 本地模型名称(默认"qwen2.5:72b-instruct-q2_K")EnableOpenAI: 是否启用OpenAI(默认false)OpenAIModelName: OpenAI模型名称(默认"gpt-4o")
-
日志推送:
OLTPAuth: OLTP日志推送认证密钥OLTPAuthUrl: OLTP日志推送URLOLTPName: OLTP日志推送名称
完整配置参考: Env.cs
基于FAISS的向量搜索系统,提供强大的语义搜索能力:
- ✅ 零额外服务依赖 - 不需要外部向量数据库
- ✅ 对话段语义理解 - 基于完整对话上下文而非单条消息
- ✅ 自动向量化 - 消息自动分组为对话段并生成向量
- ✅ 高效检索 - 使用FAISS进行快速相似度搜索
详细文档: TelegramSearchBot/README_FaissVectorSearch.md
- 去找BotFather创建一个Bot
- 设置Bot的Group Privacy为disabled
- 将该Bot加入群聊
- 输入
搜索 + 空格 + 搜索关键字,如搜索 食用方法
- 倒排索引搜索:
搜索 关键词- 传统关键词搜索 - 向量搜索:
/vector 问题描述- 语义搜索,理解问题含义
- @机器人 + 问题: 使用配置的LLM回复
完整命令列表: Docs/Bot_Commands_User_Guide.md
graph TD
A[Telegram Bot] --> B[消息处理管道]
B --> C[消息存储]
B --> D[多媒体处理]
B --> E[LLM交互]
B --> F[向量搜索]
C --> G[(SQLite)]
C --> H[Lucene索引]
F --> I[对话段生成]
F --> J[FAISS向量索引]
I --> K[向量生成]
D --> L[OCR服务]
D --> M[ASR服务]
E --> N[Ollama]
E --> O[OpenAI]
E --> P[Gemini]
详细架构设计: Docs/Existing_Codebase_Overview.md
这里曾经是一个FOSSA Status的,但是因为经常报错烦了,遂删之。