学习

1.简单提示词使用
最简单的设置固定系统提示词和用户提示词的用法如下:

@RequestMapping("/chat")
public String chat(String msg) {
String result = chatClient.prompt()
.system("你是一个问答助手") // 设置系统提示词
.user(msg) // 设置用户提示词
.call().content();
System.out.println("结果:" + result);
return result;
}
2.动态提示词
所谓的动态提示词指的是需要进行动态参数替换的提示词,它的基本使用如下:

@RequestMapping("/chat")
public String chat(String topic) {
PromptTemplate promptTemplate =
new PromptTemplate("你是一个{role},讲一个关于{topic}的故事");
Prompt prompt = promptTemplate.create(Map.of("role", "讲故事的助手",
"topic", topic));
return chatModel.call(prompt).getResult().getOutput().getText();
}
3.从文件中读取动态提示词
动态提示词如果比较短,我们可以像上面一样写到代码里面,如果比较长,我们可以把它单独放的某个文件模版中进行读取使用,具体实现如下:

// 从文件中读取提示词
@Value("classpath:type-system-prompt-txt")
private Resource systemPrompt;

@RequestMapping("/chat")
public String chat(String msg) {
return chatClient.prompt()
.system(systemPrompt)
.user(msg)
.call()
.content();
}
}
4.Lambda表达式提示词
当提示词比较短的时候,除了可以使用 PromptTemplate 设置提示词之外,我们还可以使用 Lambda 表达式来实现动态提示词的设置,具体使用如下:

@RequestMapping("/chat")
public User chat(String name) {
return chatClient.prompt()
.user(msg -> msg.text("我叫{name},今年18岁,爱好打羽毛球。")
.param("name", name))
.call()
.entity(User.class); // 结果化输出
}

posted @ 2025-06-24 10:55  马瑞鑫03  阅读(51)  评论(0)    收藏  举报