---
title: Code2Prompt 的愿景
description: 了解 Code2Prompt 背后的愿景，以及它如何增强 LLM 与代码的交互。
---

import { Card } from "@astrojs/starlight/components";
import { Aside } from "@astrojs/starlight/components";

<Card title="目的 🎯">
  `code2prompt` 的诞生是为了帮助开发者和 AI 代理更有效地与代码库交互。
</Card>

## 问题 🚩

大型语言模型（LLMs）已经革新了我们与代码交互的方式。然而，它们在代码生成方面仍然面临着重大挑战：

- **规划和推理**：LLMs 缺乏规划和推理能力，这对于代码生成、重构和调试等任务至关重要。它们往往难以把握全局，目光短浅。
- **上下文大小**：LLMs 的上下文窗口有限，这限制了它们分析和理解大型代码库的能力。
- **幻觉**：LLMs 可以生成看似正确但实际上错误或无意义的代码。这种现象被称为幻觉，发生于模型缺乏足够的上下文或对代码库的理解时。

这就是 `code2prompt` 的用武之地。

## 解决方案 ✅

我们相信，通过脚手架技术，规划和推理可以由人类或 AI 代理实现。这些代理需要收集 **高质量的上下文**，即针对特定任务过滤、结构化和格式化后的代码库。

经验法则是：

<Aside type="tip">> 提供尽可能少的上下文，但又足够必要</Aside>

这在实践中很难实现，尤其是对于大型代码库。然而，`code2prompt` 是一个简单的工具，可以帮助开发者和 AI 代理更有效地消化代码库。

它自动遍历代码库，过滤文件，并将它们格式化为 LLMs 可以理解的结构化提示。这样，它有助于减轻规划、推理和幻觉的挑战。

您可以在以下部分了解 `code2prompt` 如何设计以应对这些挑战。

## 架构 ⛩️

<img
  src="/assets/images/architecture.svg"
  alt="code2prompt 架构"
  style="width: 75%;"
/>

`code2prompt` 以模块化方式设计，便于与各种工作流集成。它可以用作核心库、命令行接口（CLI）、软件开发工具包（SDK）或模型上下文协议（MCP）服务器。

### 核心

`code2prompt` 是一个代码消化工具，简化了为代码分析、生成和其他任务创建 LLM 提示的过程。它通过遍历目录、构建树结构和收集每个文件的信息来工作。核心库可以轻松集成到其他应用程序中。

### CLI

`code2prompt` 命令行接口（CLI）旨在让人类直接从代码库生成提示。生成的提示会自动复制到剪贴板，也可以保存到输出文件。此外，您可以使用 Handlebars 模板自定义提示生成。查看文档中提供的提示！

### SDK

`code2prompt` 软件开发工具包（SDK）为核心库提供了 Python 绑定。这对于希望与代码库无缝交互的 AI 代理或自动化脚本来说是完美的。SDK 托管在 Pypi 上，可以通过 pip 安装。

### MCP

`code2prompt` 也可用作模型上下文协议（MCP）服务器，允许您将其作为本地服务运行。这通过为 LLMs 提供一个工具，使其能够自动收集代码库的良好结构化的上下文，从而增强了 LLMs 的能力。

> 为了您的方便，本页面已自动翻译。请参考英文版本获取原始内容。
