三个绝招大模型助力破解Github代码

本文介绍三种方法将Github开源项目交给大模型帮助你分析,阅读代码!

1、将Github网址中的“github”替换为“gitingest”
这是一个与LLM讨论整个GitHub存储库的方便技巧,只需将URL中的“github”替换为“gitingest”,您就会获得整个存储库作为单个字符串,然后您可以将其粘贴到LLM大模型中。

得到如下图总结:

2、Repomix
Repomix 是一款功能强大的工具,可将整个存储库打包成一个 AI 友好文件。当您需要将代码库提供给大型语言模型 (LLM) 或其他 AI 工具(如 Claude、ChatGPT、DeepSeek、Perplexity、Gemini、Gemma、Llama、Grok 等)时,它是完美的选择。

 功能

  • 人工智能优化:以人工智能易于理解和处理的方式格式化您的代码库。
  • 令牌计数:提供每个文件和整个存储库的令牌计数,对于 LLM 上下文限制很有用。
  • 使用简单:您只需一个命令即可打包整个存储库。
  • 可定制:轻松配置要包含或排除的内容。
  • Git-Aware:自动尊重您的.gitignore 文件。
  • 以安全为中心:结合Secretlint进行强大的安全检查,以检测和防止敏感信息的包含。

使用 VSCode 扩展⚡️
社区维护的 VSCode 扩展让您只需单击几下即可在编辑器中直接运行 Repomix。在任何文件夹中运行它,无缝管理输出,并通过 VSCode 的直观界面控制一切。
希望将输出作为文件还是仅作为内容?需要自动清理?此扩展可满足您的需求。此外,它可与您现有的 repomix.config.json 顺利配合使用。
现在就在VSCode 市场上尝试一下!

3、your-source-to-prompt.html
快速安全地将您的代码项目转换为 LLM 提示,全部在您自己的机器上本地进行!

Source to Prompt是一个单一.html文件,在现代浏览器(如 Chrome)中打开时,它会提供一个完整的 GUI,可轻松选择代码文件并将它们组合成一个文本输出。关键创新在于它完全在浏览器中运行,无需任何外部依赖项或服务。它具有以下特点:

  • 本地且安全:您的代码永远不会离开您的机器。
  • 无需安装麻烦:无需 Python、无需 Node.js、无需 CLI 操作。只需一个独立的 HTML 文件,在任何现代浏览器中打开它,它就可以“正常工作”。
  • 适用于任何文件夹:不限于 Git 存储库。
  • 针对重复使用进行了优化:保存和加载文件选择和设置的预设。
此工具的目的在于让您专注于实际的 LLM 驱动的编码任务,而无需处理复杂的管道或冒着代码隐私的风险。

主要优势

  1. 完全本地化且安全:只需打开.html文件即可。现代文件系统访问 API 可让您直接从本地驱动器读取。无需服务器、无需 GitHub 身份验证令牌,无需担心隐私问题。
  2. 无依赖项:仅需要最新的基于 Chromium 的浏览器。无需安装,无需包管理器。
  3. 与任何文件夹或 Repo 一起使用:非常适合私有代码库或只是想向 LLM 显示一组随机文件。
  4. 预设可节省时间:预设功能可让您存储自己喜欢的文件选择并立即重新加载。保存localStorage或导出/导入为 JSON。
  5. 有效的文件选择:
    • 基于字符串的过滤,快速查找文件。
    • 方便的批量选择(例如“选择所有 React 文件”)。
    • 一键切换所有文本文件。
  • 上下文大小感知:始终可以看到总大小和行数的统计,如果您可能超出上下文窗口(如 GPT-4 或 Claude 限制),则会发出警告。
  • 层次结构预览:自动包含一个树状结构,在代码列表之前显示文件大小和行数,为 LLM 提供重要的背景信息。
  • 缩小以节省空间:可以选择缩小 JS、CSS、HTML、JSON,甚至修剪其他文本文件以最大限度地提高上下文效率。
  • 自定义序言和目标:在组合输出前面添加序言和既定目标,以便 LLM 在阅读代码之前了解上下文和您的意图。
  • 导出/导入预设:轻松共享或备份您的预设,这样您就无需浪费时间一遍又一遍地选择相同的复杂文件分组!
  • 具有暗模式的用户友好型用户界面:它看起来很漂亮,并且很容易上手,并有全面的工具提示来解释所有功能的作用。

    底层工作原理

    浏览器文件系统访问 API

    • 单击“选择文件夹”后,该工具将使用文件系统访问 API 提示您输入本地目录。
    • 一旦获得授权,它就会读取该目录(和子目录)的内容,过滤掉忽略的文件(通过.gitignore或默认模式)。
    • 一切都在本地浏览器内进行。
    构建文件树
    • 该工具将扫描您选择的文件夹,并递归枚举文件和目录。
    • .gitignore应用模式来跳过不相关的文件。
    • 文件以嵌套的树结构显示。
    • 文本文件(基于已知扩展名)会获得复选框,因此您可以选择在最终提示中包含哪些文件。
    预设管理
    • 选择和配置以 JSON 形式存储localStorage。
    • 命名并保存预设以快速恢复已知配置。
    • 为便于携带,可以从文件导出和导入预设.json。
    上下文警告
    • 当您选择文件时,UI 会计算总选定大小和行数。
    • 如果超出可能导致某些 LLM 环境出现问题的阈值,则会出现近似警告。
    序言和目标
    • 序言:自定义的介绍或解释。
    • 目标:简洁地陈述您想要实现的目标。
    • 这些有助于构建 LLM 提示,以便代码具有情境化,而不是被冷冷地丢弃。
    最小化步骤
    • 使用客户端库:
      • 用于 JS/TS 缩小的Terser。
      • csso用于 CSS。
      • HTML 的html-minifier-terser。
      • JSON 被重新序列化为单行。
      • 其他文本文件的尾随空格已被修剪。
    此过程有助于将更大的代码库放入 LLM 的上下文窗口,并告诉您节省的空间,以便您决定是否值得。


    如何逐步使用该工具

    1. 获取 HTML 文件:从此your-source-to-prompt.html存储库下载到您的计算机。
    2. 在 Chrome 中打开它:只需双击或将其拖入浏览器。
    3. 选择文件夹:单击“选择文件夹”,选择您的代码目录。该工具将加载并显示您的文件。
    4. 过滤并选择文件:使用搜索栏按名称快速查找文件。使用快速选择按钮抓取特定类型的所有文件。如果更方便,可切换所有文本文件。
    5. 设置序言和目标(可选):如果需要,启用序言和目标选项并输入您的自定义文本。
    6. 缩小输出(可选):选中缩小框以减小文件大小。这在处理大型项目时很有帮助。
    7. 检查计数:所选的总大小和行数显示在右上角。如果出现警告,请注意。
    8. 保存预设(可选):如果您想重复使用这些选择和设置,请输入名称并单击“保存预设”。下次您可以加载它而无需重新选择所有内容。
    9. 合并文件:单击“合并选定文件”。该工具将生成包含以下内容的单个文本输出:
      • 你的序言(如果有)
      • 你的目标(如果有的话)
      • 所选文件的层次化摘要
      • 每个文件前面都有一个标题行,其中包含文件名
  • 复制或下载结果:使用提供的按钮将组合文本复制到剪贴板或将其下载为文件.txt。将其粘贴到您的 LLM 提示中并开始工作!