核心概念:链 (Chain)
LangChain4j 的核心思想是将复杂的任务拆解为一系列可组合的步骤(链接),形成一个“链”。这有助于模块化、复用和更清晰的逻辑。
基本使用步骤
添加依赖 在你的 Maven 或 Gradle 项目中引入 LangChain4j 的核心库以及你计划使用的 LLM 提供商的适配器库(如 OpenAI, HuggingFace, LocalAI 等)。例如,对于 OpenAI:
<!– Maven –>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>0.28.0</version> <!– 请使用最新版本 –>
</dependency>
配置 LLM 客户端 创建一个连接到你选择的 LLM 服务的客户端实例。这通常需要提供 API 密钥或其他认证信息。
import dev.langchain4j.model.openai.OpenAiChatModel;
// 使用 OpenAI (需要 OPENAI_API_KEY 环境变量)
OpenAiChatModel model = OpenAiChatModel.builder()
.modelName("gpt-3.5-turbo") // 指定模型
.temperature(0.3) // 控制随机性
.build();
创建并执行链 最简单的链是直接向模型发送消息并获取回复。
String userMessage = "Java-LangChain4j 的基本使用是怎样的?";
String response = model.generate(userMessage);
System.out.println(response);
使用 Prompt Templates (提示模板) 为了更结构化地生成输入,可以使用提示模板。模板中可以用 {{variable}} 的形式定义占位符。
import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.model.input.Prompt;
import dev.langchain4j.model.input.structured.StructuredPrompt;
import dev.langchain4j.model.input.template.Template;
// 定义模板
Template template = Template.from("请用 {{language}} 解释 {{framework}} 的基本使用。");
// 填充模板变量
Prompt prompt = template.render("language", "中文", "framework", "Java-LangChain4j");
// 发送给模型
String response = model.generate(prompt.text());
System.out.println(response);
结构化输出 有时我们希望模型的输出是结构化的(如 JSON 对象)。可以结合提示模板和 @StructuredPrompt 注解来引导模型。
import dev.langchain4j.model.output.Response;
import dev.langchain4j.model.output.structured.Description;
import dev.langchain4j.model.output.structured.StructuredOutput;
@StructuredOutput
public class FrameworkInfo {
@Description("框架的名称")
public String name;
@Description("核心概念,用逗号分隔")
public String coreConcepts;
@Description("一个简单的使用示例代码片段")
public String exampleCode;
}
// 在提示中要求结构化输出
Template template = Template.from("请提供关于 {{framework}} 的基本信息,包括名称、核心概念和一个简单示例代码。\\n{{format_instructions}}");
// … 填充模板,特别注意 format_instructions 需要描述 FrameworkInfo 的结构
Prompt prompt = …;
// 获取结构化响应
Response<FrameworkInfo> response = model.generate(prompt, FrameworkInfo.class);
FrameworkInfo info = response.content();
System.out.println("名称: " + info.name);
System.out.println("核心概念: " + info.coreConcepts);
System.out.println("示例:\\n" + info.exampleCode);
常见应用场景
- 问答系统:基于特定文档或知识库回答问题。
- 摘要生成:总结长文本内容。
- 文本生成:撰写邮件、故事、代码等。
- 数据提取:从非结构化文本中提取结构化信息。
- 翻译:文本翻译。
- 聊天机器人:构建对话接口。
注意事项
- API 成本与限制:注意 LLM API 的调用成本和速率限制。
- 提示工程:提示 (Prompt) 的质量对输出结果影响巨大,需要精心设计。
- 错误处理:网络错误、API 限制、模型错误等都需要妥善处理。
- 内容安全:对模型生成的内容进行必要的安全检查和过滤。
- 模型选择:不同的模型在能力、成本和速度上有差异,需根据需求选择。
- 并发:OpenAiChatModel 等客户端通常是线程安全的,可以安全地在多线程环境中使用。
以上介绍了 LangChain4j 最基础的使用方式。实际应用中,你会接触到更复杂的链结构(如 SequentialChain、ConditionalChain)、记忆管理、工具调用(让模型使用外部工具或函数)等高级功能。建议从官方文档和示例开始深入学习。
网硕互联帮助中心





评论前必须登录!
注册