Enjoy 使用示例
渲染大模型提示词
本示例展示如何使用 JFinal 的 Enjoy 模板引擎来渲染翻译提示词(Prompt)。通过配置 Enjoy 引擎并加载模板,可以动态生成翻译请求内容。
配置 Enjoy 引擎
首先,创建一个配置类 EnjoyEngineConfig
来设置 Enjoy 引擎的基本参数。
package com.litongjava.gpt.translator.config;
import com.jfinal.template.Engine;
public class EnjoyEngineConfig {
private static final String RESOURCE_BASE_PATH = "/enjoy-templates/";
public void config() {
Engine engine = Engine.use();
engine.setBaseTemplatePath(RESOURCE_BASE_PATH);
engine.setToClassPathSourceFactory();
// 支持模板热加载,生产环境中建议开启,除非在极端高性能的场景下
engine.setDevMode(true);
// 配置极速模式,提升性能约13%
Engine.setFastMode(true);
// 支持中文表达式、变量名、方法名及模板函数名(JFinal 4.9.02 新增)
Engine.setChineseExpression(true);
}
}
- RESOURCE_BASE_PATH: 指定模板文件的基础路径。
- setDevMode(true): 开启开发模式,支持模板热加载,适用于生产环境以便动态更新模板。
- setFastMode(true): 启用极速模式,提升模板渲染性能。
- setChineseExpression(true): 允许使用中文表达式和命名,增强中文开发体验。
创建模板文件
在 src/main/resources/enjoy-templates/
目录下创建模板文件 translator_prompt.txt
,内容如下:
You are a helpful translator.
- Please provide the {target_lang} translation for this text.
- Do not provide any explanations or text apart from the translation.
{source_lang}: {source_text}
{target_lang}:
模板说明
{source_lang}
: 源语言,例如 "Chinese"。{target_lang}
: 目标语言,例如 "English"。{source_text}
: 需要翻译的文本,例如 "良禽择木而栖"。
测试模板渲染
创建一个测试类 EnjoyEngineConfigTest
,用于验证模板渲染是否正确。
package com.litongjava.gpt.translator.services;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import com.jfinal.template.Engine;
import com.jfinal.template.Template;
import com.litongjava.gpt.translator.config.EnjoyEngineConfig;
public class EnjoyEngineConfigTest {
@Test
public void testTemplateRendering() {
// 配置 Enjoy 引擎
new EnjoyEngineConfig().config();
Engine engine = Engine.use();
// 加载模板文件
Template template = engine.getTemplate("translator_prompt.txt");
// 设置模板变量
Map<String, String> values = new HashMap<>();
values.put("source_lang", "Chinese");
values.put("target_lang", "English");
values.put("source_text", "良禽择木而栖");
// 渲染模板
String renderedOutput = template.renderToString(values);
System.out.println(renderedOutput);
}
}
运行测试
执行上述测试类,将输出渲染后的模板内容:
You are a helpful translator.
- Please provide the English translation for this text.
- Do not provide any explanations or text apart from the translation.
Chinese: 良禽择木而栖
English:
注意事项
- 模板变量替换: 确保模板文件中的变量名与传入的键名完全一致(区分大小写)。
- 模板路径配置:
RESOURCE_BASE_PATH
必须正确指向模板文件所在目录,且路径格式需符合系统要求。
通过以上配置和示例,您可以使用 Enjoy 模板引擎动态生成翻译请求内容,适用于各种需要模板渲染的场景。
使用自定义模板字符串进行渲染
Engine.getTemplateByString 方法允许您通过模板字符串直接创建 Template 对象,然后使用 Template.renderToString 方法进行渲染。
import com.jfinal.kit.Kv;
import com.jfinal.template.Engine;
import com.jfinal.template.Template;
public class EnjoyTemplateExample {
public static void main(String[] args) {
// 获取引擎实例
Engine engine = Engine.use();
// 模板字符串
String templateContent = "您好,#(name)!\n欢迎使用 #(productName) 模板引擎。";
// 创建模板对象
Template template = engine.getTemplateByString(templateContent);
// 准备数据
Kv data = Kv.by("name", "张三").set("productName", "Enjoy");
// 渲染模板
String renderedContent = template.renderToString(data);
// 输出渲染结果
System.out.println(renderedContent);
}
}
output
您好,张三!
欢迎使用 Enjoy 模板引擎。