Guide to AI Commands

OpenAI 的 ChatGPT 等大型语言模型提供了一种使用 AI 生成代码的强大解决方案。ChatGPT 不仅接受过 Java 代码的训练,还接受过 Spring 开源生态系统中各种项目的训练。这使得 Spring CLI 能够使用专门针对特定用例的功能来增强应用程序,这是传统教程无法提供的。 使用一个简单的命令,您可以描述所需的特性,ChatGPT 就会生成一个全面的 README.md 文件,其中提供了实现目标的分步说明。它就像为您的项目需求创建自定义教程一样。 CLI 还可以将生成的指令自动应用于您的代码库。 要开始使用,请使用以下命令:

spring ai add <Describe what functionality you want to add here> --preview

改进生成的解决方案通常需要迭代修改说明。spring ai add 命令的 --preview 选项在不修改您的项目的情况下生成 README.md 文件,让您查看建议的更改。 在对生成的 README.md 文件感到满意后,你可以使用以下命令应用到代码库中:

spring guide apply <Name of the guide markdown file>

为了进一步改进并提高准确性,你可以让 ChatGPT 使用 --rewrite 选项来重写描述:

spring ai add <Description of functionality> --preview --rewrite

本页的其他部分中提供的详细文档,提供了有关每个命令的全面信息。

随着我们不断探索人工智能技术的潜力,我们预期将进一步细化结果,以迎合 Spring 项目的特定版本。

Example

请考虑以下示例:

spring ai add "JPA functionality with an integration test. Include all Java code in the same package." --preview

这里使用上一个命令创建的 README-ai-jpa.md 文件。

Prerequisite

在使用 AI 命令之前,请确保你拥有来自 OpenAI 的开发者令牌。

为此,在 OpenAI Signup 创建一个帐户,并在 API Keys 中生成令牌。将密钥保存在你的主目录(通常为 ~/.openai)下的名为 .openai 的文件中。

该文件应包含以下内容:

OPEN_AI_API_KEY=<paste your key here>

Using ai add

“ai add”命令可以让你将使用 OpenAI 的 ChatGPT 生成的代码添加到你的项目。

为此,请使用 “--description” 选项提供你想要添加代码的简要说明,并且该命令将把请求发送到 OpenAI 的 API。

默认情况下,此命令会修改你的代码库。

以下列表显示了一个示例:

spring ai add "JPA functionality"

此命令会创建一个名为 README-ai-jpa.md 的文件,并将该文件概述的更改应用到你的项目。

代码生成可能需要 3-4 分钟。

Previewing the Response

当你使用 “--preview” 选项时,将生成一个 README-ai-jpa.md 文件,而不会对项目进行任何更改。这可让你审阅文件并评估它是否提供了一个可以接受的解决方案。

spring ai add "JPA functionality" --preview

此命令会创建一个名为 README-ai-jpa.md 的文件。请记住,它不会修改你的项目,但它提供了一个机会来审查内容并确定其是否适合你的特定需求。

如果生成的说明符合你的需求,则可以使用“spring guide apply README-ai-jpa.md”命令将更改应用到你的代码库。

Iterating to Get What You Want

如果你检查上一步中称作 README-ai-jpa.md的文件,你可以看到它没有任何测试。我们总建议将测试作为最佳实践包括进去,所以应更新提供的说明。

这是当你使用 “ai add” 命令时,收到的常规反复信息。

例如,在前一种情况下,创建的代码缺少集成测试。使用以下说明运行此命令,产生了所需的结果。

spring ai add "JPA functionality with an integration test. Include all Java code in the same package." --preview

这是使用上一个命令创建的 README-ai-jpa.md文件。

Rewriting the Project Description Automatically

为了从 AI 模型中获得更好的结果,你可以选择让 AI 模型重写项目说明。有些时候,开发人员会使用简写或简洁的风格撰写说明,这可能不会产生最佳结果。使用 “--rewrite” 选项可以让你要求 AI 模型重写说明,从而提供明确的意图并改进生成的代码。

请考虑以下示例:

spring ai add "JPA functionality" --preview --rewrite

The description has been rewritten to be: Please provide instructions for creating a Spring Java application that utilizes JPA functionality.

Generating code.  This will take a few minutes ...

这是使用上一个命令创建的 README-ai-jpa.md文件。

Applying the README

在您对生成的文件 README 满意后,使用以下命令将其中描述的变更应用到您的代码库。

spring guide apply README-ai-jpa.md