Java集成Langchain4j其各Message类型的用途

2025-03-03 / 13 阅读 / AI

1. UserMessage

UserMessage 通常表示用户输入的消息。这是与模型交互的起点,例如在聊天机器人或问答系统中,用户的提问或命令。
示例代码

UserMessage userMessage = new UserMessage("Hello, how can I help you?");

2. AiMessage

AiMessage 代表模型生成的回复。这通常是在用户发送消息后,模型处理并返回的答案或响应。
示例代码

AiMessage aiMessage = new AiMessage("Hello! I'm an AI, how can I assist you today?");

3. SystemMessage

SystemMessage 用于向模型提供一些系统级的指令或信息,这些信息会影响模型的生成行为。例如,你可以用它来设置模型的个性或行为模式。
示例代码

SystemMessage systemMessage = new SystemMessage("You are a helpful assistant.");

4. CustomMessage

CustomMessage 允许你发送任何自定义的消息到模型,这可以用于传递一些特定的上下文或信息,这些信息不是标准的用户消息、AI消息或系统消息。
示例代码

CustomMessage customMessage = new CustomMessage("This is a custom message.");

5. ToolExecutionResultMessage

ToolExecutionResultMessage 通常用于表示一个工具(如搜索引擎、数据库查询等)的输出结果,这些结果将被用作模型生成下一步回复的依据。
示例代码

ToolExecutionResultMessage toolExecutionResultMessage = new ToolExecutionResultMessage("SearchResult", "Some search results");

使用场景示例

在构建一个聊天机器人时,你可能会这样使用这些消息类型:

// 创建一个聊天机器人会话
ChatSession chatSession = new ChatSession();
 
// 用户发送消息给机器人
chatSession.addMessage(new UserMessage("What is the weather like today?"));
 
// 系统消息设置机器人的个性或行为模式
chatSession.addMessage(new SystemMessage("You are a helpful weather bot."));
 
// 机器人处理请求并返回结果
AiMessage response = chatSession.generateResponse();
chatSession.addMessage(response); // 将机器人的回复添加到会话中,以便后续使用或显示给用户
 
// 如果需要调用外部工具(如天气API),可以这样处理工具执行结果:
Tool tool = new Tool("weatherApi"); // 假设我们有一个天气API工具
ToolExecutionResult toolResult = tool.execute("GetWeather", "New York"); // 执行工具并获取结果
chatSession.addMessage(new ToolExecutionR("GetWeather", toolResult)); // 将工具结果添加到会话中

通过这种方式,你可以灵活地构建和管理复杂的对话流程,利用各种消息类型来控制和指导模型的输出。

 

相关推荐