# Code2prompt：探索高效代码编辑新纪元的开源模型工具

> 作者/来源: UCloud 运营管理员
> 发布时间: 2024-07-10T07:59:00.000Z
> 分类: AI专区
> 标签: AI, 安全, Python
> 原文链接: http://117.50.162.249:3000/yun/articles/63

---

# Code2prompt：探索高效代码编辑新纪元的开源模型工具

> 来源: https://www.ucloud.cn/yun/131128.html
> 作者: UCloud小助手
> 发布日期: 发布于2024-07-10 15:59

**项目介绍**

Code2prompt 是一个命令行工具，能将你的代码库转化为单一的大型语言模型（LLM）提示，结合源码树结构，模板定制，以及令牌计数。它旨在简化与高级上下文窗口模型如GPT或Claude的交互，助你在重写代码、查找bug、编写文档和实现新功能等方面提升效率。通过将你·的整个项目转换为一个全面的、对 AI 友好的提示，Code2Prompt 使你能够充分利用 AI 的潜力进行代码分析、文档和改进任务。

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_000.png)

**项目应用场景**

**代码迁移：**想把代码从一种编程语言转换到另一种？只需提供一个目标语言的模板，让LLM来完成任务。

**错误检测：**利用code2prompt生成的提示，让LLM识别潜在的安全漏洞或编码错误。

**文档生成：**自动为代码添加注释，提高代码可读性。

**性能优化：**通过调整代码结构，提高代码执行效率。

**版本控制：**基于git的变更，生成有意义的提交消息。

**项目特点**

**整体代码库表示：**生成一个结构良好的 Markdown 提示，以捕捉整个项目的本质。

**智能源代码树生成：**创建代码库结构的清晰分层视图。

**可自定义的提示模板：**使用 Jinja2 模板定制您的输出以适应特定的 AI 任务。

**智能令牌管理：**对令牌进行计数和优化，以确保与各种 LLM 令牌限制兼容。

**Gitignore集成：**尊重项目的 .gitignore 规则，以获得准确的表示。

**灵活的文件处理：**使用强大的 glob 模式过滤和排除文件。

**剪贴板就绪：**立即将生成的提示复制到剪贴板，以便进行快速的 AI 交互。

**增强的代码可读性：**将行号添加到源代码块中，以便精确引用。

**项目使用及实例**

Code2Prompt 的基本语法为：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_001.png)

对于多条路径：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_002.png)

**命令参数**

--filter或 和 或-f--exclude-e 和选项允许您分别指定应包含在处理中或从处理中排除的文件或目录的模式。--filter--exclude

**语法**

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_003.png)

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_004.png)

**使用实例**

从单个 Python 文件生成提示：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_005.png)

处理整个项目目录并保存输出：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_006.png)

为多个文件生成提示，不包括测试：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_007.png)

### **Code2Prompt 中的令牌和配置文件**

标记是语言模型处理的文本的基本单位。它们可以是单词、单词的一部分，甚至是标点符号。不同的分词器编码以不同的方式将文本拆分为分割令牌。Code2Prompt 通过其选项支持多种令牌类型，默认为“cl100k\_base”。GPT-3.5 和 GPT-4 等模型使用的这种编码擅长处理代码和技术内容。其他常见的编码包括“p50k\_base”（由早期的 GPT-3 模型使用）和“r50k\_base”（由 CodeX 等模型使用）。

若要在生成的提示中计算令牌，请使用以下标志：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_008.png)

对于特定编码：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_009.png)

Code2Prompt 支持 JSON 格式的配置文件来设置默认选项。将此文件放在您的项目或主目录中，例：

![](https://ucloud-blog.cn-bj.ufileos.com/articles/131128/images/131128_010.png)

### 安装与使用

从发布页面下载适合你操作系统的预编译二进制文件，或者使用cargo安装：

```
cargo install code2prompt
```

然后，你可以根据需要调用code2prompt并指定相应参数，例如：

```
code2prompt path/to/codebase
```

借助code2prompt，你将释放出LLM的潜力，使代码工作流更智能、更高效。立即尝试，开启你的高效开发之旅吧！

更多详细内容：https://github.com/raphaelmansuy/code2prompt?tab=readme-ov-file