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

# 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绕过, 网络测绘, 请求拦截, 逆向工具