Skip to content

Prompt 提示词模板

This content is not available in your language yet.

Feat AI 的 Prompt 提示词模板功能提供了一种灵活的方式来构建和管理 AI 模型的提示词。通过使用模板,您可以创建可重用的提示词结构,并在运行时动态填充参数。

Prompt 类是提示词模板的核心,用于构建和管理 AI 模型的提示词模板。它支持参数化模板,可以在运行时替换模板中的占位符。

主要特性:

  • 支持 {{parameter}} 格式的参数占位符
  • 可以根据参数映射构建最终的提示词
  • 提供便捷的方法来判断模板是否包含参数

PromptTemplate 类预定义了一些常用的提示词模板,可以直接使用或作为参考来创建自己的模板。

预定义的模板包括:

  • MAVEN_PROJECT_MERMAID: Maven 项目 Mermaid 图表提示词模板
  • WECHAT_EDITOR: 微信公众号文章编辑器提示词模板
  • PROJECT_CODER: 项目代码生成器提示词模板
  • PROJECT_DOCUMENT_EDITOR: 项目文档编辑器提示词模板

要创建一个简单的提示词模板,可以直接实例化 Prompt 类:

import tech.smartboot.feat.ai.chat.prompt.Prompt;
// 创建一个简单的提示词模板
Prompt simplePrompt = new Prompt("你好,{{name}}!今天过得怎么样?");
// 使用参数构建最终提示词
Map<String, String> params = new HashMap<>();
params.put("name", "张三");
String finalPrompt = simplePrompt.prompt(params);
System.out.println(finalPrompt); // 输出: 你好,张三!今天过得怎么样?

Feat AI 提供了一些预定义的提示词模板,可以直接使用:

import tech.smartboot.feat.ai.chat.prompt.PromptTemplate;
// 使用预定义的微信公众号文章编辑器模板
Prompt wechatPrompt = PromptTemplate.WECHAT_EDITOR;
// 构建参数
Map<String, String> params = new HashMap<>();
params.put("topic", "开源项目介绍");
params.put("reference", "这是一个优秀的开源项目...");
// 生成最终提示词
String finalPrompt = wechatPrompt.prompt(params);

在提示词模板中,使用 {{parameter_name}} 的语法来定义参数占位符:

Prompt prompt = new Prompt("请为 {{product}} 产品撰写一份 {{type}} 类型的营销文案。");

Prompt 类定义了一个特殊参数名称 CONTENT_PARAM_NAME(值为 “content”),当模板中没有其他参数时会自动使用:

// 没有参数占位符的模板
Prompt prompt = new Prompt("请总结以下内容:");
// 在使用时会自动添加 \r\nUser: 前缀
Map<String, String> params = new HashMap<>();
params.put(Prompt.CONTENT_PARAM_NAME, "这是需要总结的内容...");
String finalPrompt = prompt.prompt(params);
// 结果: "请总结以下内容:\r\nUser:这是需要总结的内容..."

该模板用于根据 Maven 项目文件生成架构图:

Prompt mavenPrompt = PromptTemplate.MAVEN_PROJECT_MERMAID;

模板内容:

[任务目标]
作为资深Java架构师,请严格根据文件内容分析项目依赖,并输出架构图
[文件内容]
---BEGIN INPUT---
{{file_list}}
---END INPUT---
[输出规范]
1. 必须返回符合 mermaid 要求的架构图描述
2. mermaid 中核心模块搭配简短的中文描述,并标注更突出的显示样式
3. 简化或者弱化单元测试模块

该模板用于生成微信公众号文章:

Prompt wechatPrompt = PromptTemplate.WECHAT_EDITOR;

该模板包含详细的写作规范,引导 AI 生成符合微信推荐机制的文章。

该模板用于根据需求生成代码:

Prompt coderPrompt = PromptTemplate.PROJECT_CODER;

模板内容:

[任务目标]
作为资深Java架构师,请严格根据参考源代码的设计,理解现有实现。
并根据用户的需求描述,完成相应的代码实现。
[需求描述]
---BEGIN INPUT---
{{input}}
---END INPUT---
[参考源代码]
---BEGIN INPUT---
{{reference}}
---END INPUT---
[输出规范]
1. 确保语法的准确性和代码的完整性。

该模板用于生成项目文档:

Prompt docPrompt = PromptTemplate.PROJECT_DOCUMENT_EDITOR;
import tech.smartboot.feat.ai.FeatAI;
import tech.smartboot.feat.ai.chat.ChatModel;
import tech.smartboot.feat.ai.chat.ChatModelVendor;
import tech.smartboot.feat.ai.chat.prompt.Prompt;
import tech.smartboot.feat.ai.chat.prompt.PromptTemplate;
public class PromptDemo {
public static void main(String[] args) {
// 初始化 ChatModel
ChatModel chatModel = FeatAI.chatModel(opts -> {
opts.model(ChatModelVendor.GiteeAI.Qwen2_5_72B_Instruct)
.system("你是一个专业的技术文档撰写专家。");
});
// 创建自定义提示词模板
Prompt prompt = new Prompt("请为 {{project}} 项目编写一份技术文档,涵盖以下要点:{{points}}");
// 使用模板发送请求
chatModel.chat(prompt, params -> {
params.put("project", "Feat AI");
params.put("points", "1. 项目简介 2. 核心功能 3. 使用示例 4. API说明");
}, responseMessage -> {
System.out.println("生成的文档:\n" + responseMessage.getContent());
});
}
}
chatModel.chatStream(prompt, params -> {
params.put("topic", "人工智能发展趋势");
params.put("reference", "近年来,人工智能技术发展迅速...");
}, new StreamResponseCallback() {
@Override
public void onStreamResponse(String content) {
System.out.print(content);
}
@Override
public void onCompletion(ResponseMessage responseMessage) {
System.out.println("\n文档生成完成!");
}
@Override
public void onFailure(Throwable throwable) {
System.err.println("生成失败: " + throwable.getMessage());
}
});
graph TD A[创建 Prompt 模板] --> B[定义参数占位符] B --> C[实例化 Prompt] C --> D[准备参数映射] D --> E[构建最终提示词] E --> F[传递给 ChatModel] F --> G[发送 AI 请求] G --> H[接收响应]
  • 保持模板简洁明了,避免过于复杂的嵌套
  • 使用有意义的参数名称,便于理解和维护
  • 在模板中包含清晰的指令,引导 AI 生成期望的输出
// 推荐:使用专门的方法来管理参数
public Map<String, String> buildWechatArticleParams(String topic, String reference) {
Map<String, String> params = new HashMap<>();
params.put("topic", topic);
params.put("reference", reference);
// 可以添加更多参数
return params;
}
try {
String finalPrompt = prompt.prompt(params);
// 使用 finalPrompt 发送请求
} catch (Exception e) {
System.err.println("提示词构建失败: " + e.getMessage());
// 使用备用方案或默认提示词
}
// 将常用模板定义为静态常量
public class CustomPromptTemplates {
public static final Prompt TECH_BLOG_POST = new Prompt(
"请撰写一篇关于 {{technology}} 的技术博客文章," +
"目标读者是 {{audience}}。文章应包括:{{sections}}"
);
public static final Prompt CODE_REVIEW = new Prompt(
"请对以下 {{language}} 代码进行审查," +
"识别潜在的问题并提出改进建议:\n{{code}}"
);
}

Feat AI 的 Prompt 提示词模板功能为构建和管理 AI 提示词提供了强大而灵活的工具。通过使用参数化模板和预定义模板,开发者可以:

  1. 提高提示词的可重用性和维护性
  2. 简化动态提示词的构建过程
  3. 利用预定义模板快速启动项目
  4. 更好地控制 AI 模型的输出格式和内容

通过合理使用这些功能,您可以显著提升与 AI 模型交互的效率和质量。