HACK3RRABBIT/wire

GitHub: HACK3RRABBIT/wire

一个开源的公开 Telegram 频道搜索引擎,支持全文检索、话题标签搜索、用户发布足迹查询及 AI 智能体搜索。

Stars: 0 | Forks: 0

Wire

# Wire 用于搜索**公开** Telegram 频道和群组的开源搜索引擎——支持按 关键字/主题、按话题标签搜索,查看某个词汇出现在哪些频道中,或查看特定 用户 ID 在哪些频道中发布过消息。仅索引公开内容;你自己的聊天会通过 `EXCLUDE_CHAT_IDS` 排除,该参数会在导入时进行检查,因此它们永远不会进入索引。 Telegram 没有提供“列出某用户所属的所有群组”的 API——出于设计考量,这仅对 进行查询的账号已经加入的聊天可见。相反,此工具回答的是 “该用户在哪些*已索引的频道*中发布过消息”,这可以从 抓取的数据中推导出来。 内置单页 Web UI(无需构建步骤),用于搜索、让 AI 代替你进行搜索 并总结结果——所有界面均采用老式电报局的主题风格。 ## 工作原理 - **Telethon** 以普通用户账号的身份与 Telegram (MTProto) 进行通信。 - **Meilisearch** 存储并为已索引的消息提供全文搜索服务。 - 一个小型的 **SQLite** 文件用于跟踪抓取状态(哪些频道是已知/活跃/失败的) 以及任何从 Web UI 保存的 AI 设置。 - 发现过程从频道用户名的种子列表开始,通过关注 已索引消息中的 `@mentions`、`t.me/` 链接和转发来扩展。 - 一个可选的 **OpenAI 兼容** AI 后端(任何提供 `/chat/completions` endpoint 的提供商——OpenAI、本地路由器等)支持结果摘要以及一种智能体 搜索模式,在该模式下,模型会在回答前运行其自己的搜索。 ## 设置 ``` cp .env.example .env # 从 https://my.telegram.org 填入 API_ID / API_HASH docker compose up -d # starts Meilisearch pip install -e ".[dev]" python -m app.cli login # prints SESSION_STRING — paste into .env ``` ## 使用方法 ``` # 一次性:回填单个公开频道/群组的完整历史记录 python -m app.cli backfill telegram # 持续进行:发现并回填新频道,然后监听实时消息 python -m app.cli crawl # 在 http://localhost:8000 启动搜索 API + web UI python -m app.cli serve ``` 打开 `http://localhost:8000` 访问搜索 UI,或直接使用 API: - `GET /search?q=` — 关键字/主题搜索 - `GET /search?hashtag=` — 话题标签搜索 - `GET /channels` — 列出已知频道及其抓取状态 - `GET /users/{sender_id}/channels` — 该发送者发布过消息的频道 - `GET /analyze?q=` — 对热门搜索结果的 AI 摘要 - `GET /ask?q=` — 智能体搜索:AI 运行自己的搜索,然后进行回答 - `GET /settings` / `POST /settings` — 读取/写入 AI 连接配置 - `POST /settings/test` — 发送一个简单的 prompt 以确认 AI 配置有效 ## AI 设置 AI 功能(`/analyze`、`/ask`)是可选的,并且直到设置了 API key 之前都处于关闭状态。有两种设置方式: - **Web UI** — 点击页眉处的“AI settings”,填写 base URL / API key / model, 选择搜索深度(即 AI 在回答前可以运行多少次搜索),然后保存。 立即生效,无需重启。设置会持久化保存在 SQLite 状态文件中。 - **.env** — 在首次运行前设置 `AI_BASE_URL`、`AI_API_KEY`、`AI_MODEL`、`AI_MAX_ROUNDS`。 Web UI 中的设置一旦保存,就会覆盖 `.env` 中的值。 ## 测试 ``` pytest ``` `tests/test_discover.py` 涵盖了用户名/话题标签的提取(纯逻辑,无网络请求)。 `tests/test_api.py` 针对存根搜索索引涵盖了 API 测试。 ## License MIT — 查看 [LICENSE](LICENSE)。
标签:Meilisearch, Python, Telegram, URL抓取, 人工智能, 全文检索, 幻觉缓解, 搜索引擎, 数据抓取, 无后门, 用户模式Hook绕过, 网络测绘, 请求拦截, 逆向工具