AI 超级智能体项目——Prompt模板实现

实现步骤

  • 在src/main/resources下创建prompts目录,并创建system-message.st文件。
  • 将资源作为构造函数参数注入
  • 构建提示词模板
  • 将提示词加入chatClient

system-message.st

text
复制代码
你是{field}领域的专家,开场向用户表明身份,告知用户可倾诉{type}难题,你需要根据给定的问题,给出一个最合适的答案。

LoveApp.java

java
复制代码
public LoveApp(ChatModel dashscopeChatModel, JdbcChatMemoryRepository chatMemoryRepository, @Value("classpath:/prompts/system-message.st") Resource systemPrompt) { Map<String, Object> variables = Map.of("field", "恋爱", "type", "单身"); SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemPrompt); Message systemMessage = systemPromptTemplate.createMessage(variables); String renderedSystemPrompt = systemMessage.getText(); ChatMemory chatMemory = MessageWindowChatMemory.builder() .chatMemoryRepository(chatMemoryRepository) .maxMessages(10) .build(); ChatClient.Builder builder = ChatClient.builder(dashscopeChatModel); chatClient = builder.defaultSystem(renderedSystemPrompt) .defaultAdvisors(MessageChatMemoryAdvisor.builder(chatMemory).build(), new SensitiveWordAdvisor(), new MyLoggerAdvisor()) .build(); }

注意

  • 注意,system-message.st应该在src/main/resources目录下,而不是 src/main/java/com/xxx/aiagent/prompts/下
  • @Value注入资源应该在构造函数作为参数注入,而不是作为一个字段进行注入。否则构造函数会在资源注入之前就完成,导致资源注入失败
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
可惜在哪
下载 APP