SuperAPI AI 工具集

gpt-code-search

gpt-code-search(又称 gpt-code-assistant)是一个开源编码助手,利用语言模型和向量嵌入技术,让开发者用自然语言搜索、检索、探索和理解任意代码库。它直接与本地代码集成,支持多种编程语言,注重隐私设计,代码片段仅在提问且模型请求相关代码时才会传输。

访问官网

工具介绍

gpt-code-search(项目内也称 gpt-code-assistant)是一个基于 AI 的开源工具,用于探索、查询和理解任意代码库。它利用语言模型(LLM)和向量嵌入(将文本等对象转换为向量的技术)来实现自然语言搜索。

用途

该工具旨在解决开发者需要理解、调试或查询代码库时,不必手动复制粘贴代码片段到提示中,也不必把代码发送给 OpenAI 以外的第三方服务。它让 GPT-4 等模型自行判断代码库中最相关的代码片段,并允许在终端中完成查询,无需单独的 UI。

主要能力

  • 基于 LLM 的搜索与检索:使用语言模型进行高效的代码搜索、检索和理解。
  • 文件系统集成:设计为可与任意代码库配合,直接操作本地代码,无缝融入现有工作流。
  • 语言无关:支持多种编程语言。
  • 隐私中心设计:代码片段仅在提问且语言模型请求相关代码时才会传输(注意:代码片段会与 OpenAI 共享)。
  • 未来计划包括支持本地模型和生成代码的能力。

使用方式

首先创建一个项目来索引所有文件,该步骤会为每个文件创建嵌入并存储在本地数据库中。

查询代码库用途可使用 query 命令。

若想为特定文件(例如 analytics.py)生成测试,可提及文件名以提高准确性。

对于某个模块(如 analytics)的一般用法问题,可使用关键词在代码库中搜索。

注意:提及文件名或特定关键词可提高搜索准确性。

获取所有项目列表。

重新索引项目并更新嵌入到最新内容。

删除项目及其所有数据(包括嵌入)。

可选择用于查询的模型,默认为 gpt-3.5-turbo-16k。所选模型存储在 $HOME/.gpt-code-assistant/config.toml 中。

如果尚未配置,工具会提示配置 OPENAI_API_KEY。

适用场景

  • 帮助调试错误并找到相关代码和文件
  • 以 markdown 格式记录大型文件或功能
  • 基于现有文件和约定生成新代码
  • 询问关于代码库任何部分的一般问题

限制与未来计划

当前代码片段会与 OpenAI 共享。未来计划包括:使用向量嵌入改进搜索和检索;增加对其他模型(Claude、Bedrock 等)的支持;增加对本地模型(Llama2、Starcoder 等)的支持;增加生成代码并保存到文件的支持;支持跨多个代码库搜索;允许模型创建可执行的新函数;使用 guidance 改进提示。

其他信息

该项目采用 Apache 2.0 许可证。欢迎社区贡献,可 fork 仓库并提交 pull request。使用中遇到问题可在 GitHub 上开 issue,或直接联系 narenkmanoharan@gmail.com。