根据一段想法或需求,从公开 GitHub 仓库中找出与完整输入最相关的三个开源项目。
项目版本统一为 0.1.0,当前只用于开发和测试,不进行发布。
产品契约已经完成重新设计,运行时正在按新契约清理和重建。在新的六阶段流水线全部 完成并通过验证前,仓库中的旧搜索结果不能作为产品质量背书。
“输入与运行管理”阶段已经完成:输入验证、报告语言、六阶段状态、单活动任务、SSE 重连、取消、600 秒默认超时和内存生命周期均有确定性测试,并已使用五条中文、英文和 中英混合的真实用户风格需求通过受控流水线浏览器输入输出验收。需求解析阶段也已完成: 一次完整解析生成需求与唯一原子验收点,一次短审计只验证语义并生成最终双语查询;证据目标 由原子验收点确定性构造,结构无效时明确 失败。候选发现阶段也已完成认证 GitHub 双语搜索、LLM 建议复验、公开仓库过滤、来源 公平合并和错误分类。证据阶段也已完成仓库复验、README/目录/源码/配置/Release 采集、 同源关系和一次受限补充发现,并通过五条最终版本真实输入验收。
分析、报告、页面结果、复制和下载已接入默认六阶段流水线,确定性测试与受控浏览器回归已
通过;第五阶段真实语义验收仍未关闭。长知识库单例已经确认第三阶段的单一倒数排名融合能够让
requarks/wiki 进入证据窗口并消除低相关旧博客系统,但同次运行发现第二阶段把“按用户或空间”
强化成“按用户和空间”。输入单元、解析提示、短审计门禁和分析任选项语义已完成确定性修复。
修复后的唯一一次最小真实解析在短审计查询映射结构校验处失败,没有生成解析产物、没有访问
GitHub,也没有重试。因此第二阶段和第五阶段真实验收仍未关闭,其余四条长用例也未运行。
当前代码只用于继续开发测试,不能把第五阶段视为完成或发布质量背书。
用户可以输入不超过 2000 个字符的自然语言描述,例如“我想要一个……”“我需要……” “我的设计是……”或对某个现状的描述。系统不向用户追问,而是独立完成:
输入 → 解析 → 发现 → 证据 → 分析 → 报告
一次成功执行必须返回三个经过 GitHub 验证、相互独立的公开仓库:
- 优先寻找能够完整覆盖核心功能的项目;
- 没有完整匹配时,降级为覆盖部分需求的项目;
- 再没有时,保留至少覆盖一个重要需求点的相邻项目;
- 无法验证三个有效项目时明确失败,不使用重复、无实现或无证据的仓库凑数。
最终只展示一个 0~100 的关联度分数。分数只在本次运行中用于排序,不跨运行比较。
完整规则见 产品契约。
- 唯一用户入口是 Web。
- 搜索数据只来自认证 GitHub API;不使用通用网页搜索。
- 需求理解和最终分析使用 OpenAI-compatible Chat Completions。
GITHUB_TOKEN和LLM_API_KEY都是必需配置。- 只搜索公开仓库,不读取或展示私有仓库。
- 每个本地实例同一时间只运行一个任务。
- 用户关闭或刷新页面不会自动取消任务;任务可重新连接、主动取消或等待超时。
- 报告只在网页中显示,不自动保存到磁盘。
- 用户可以主动复制 Markdown 或下载 Markdown;下载完全由浏览器基于当前页面生成。
python scripts/start_web.py启动器会准备本地 Python 环境并启动 Web,默认地址为
http://127.0.0.1:8001。
在 config/user_keys.env 中配置:
GITHUB_TOKEN=your_public_read_tokenLLM_API_KEY=your_openai_compatible_keyLLM_BASE_URL=https://api.openai.com/v1LLM_MODEL=your-model-name建议 GitHub Token 只授予公开仓库的 Metadata Read-only 和 Contents Read-only 权限。缺少凭据、鉴权失败或限流时,运行明确失败,不降级到匿名 API。
也可以使用 Docker:
docker compose up --buildWeb 会展示真实六阶段进度,不显示虚假百分比。完成后,每个项目包含:
- GitHub 仓库链接和本次关联度分数;
- 与用户需求相关的原因;
- 已确认满足的内容;
- 明确不满足或尚未确认的内容;
- 来自 README、源码或配置正文的证据;
- 最后代码更新时间、归档状态、许可证和 Release 情况;
- 必要的采用风险。
报告只公开 LLM 输入、输出和总 token,不展示费用估算或内部调试 trace。
pip install -r requirements-dev.txt
pytest -q
python -m compileall github_deep_search tests scripts修改代码前必须先确认测试仍然代表当前产品契约。普通 UI、序列化和内部重构不要求 额外调用独立评审 LLM;涉及解析、发现、证据或排序语义时,确定性测试通过后再执行 最小必要的真实 Provider 验证。
本项目使用仓库根目录中的 LICENSE。