Skip to content

核心概念

语言模型 (LLMs) 基础

语言模型是 LangChain 4J 的核心组件,负责生成文本响应。LangChain 4J 支持多种语言模型,包括:

  • OpenAI 模型:如 GPT-3.5、GPT-4
  • Hugging Face 模型:如 Llama 2、Falcon
  • 本地模型:如 Llama 2、Mistral

模型配置

每种模型都有其特定的配置选项,如温度、最大令牌数等:

java
OpenAiChatModel model = OpenAiChatModel.builder()
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .modelName("gpt-3.5-turbo")
        .temperature(0.7)
        .maxTokens(1000)
        .build();

提示词工程 (Prompt Engineering)

提示词工程是设计和优化提示词以获得更好的模型响应的过程。LangChain 4J 提供了提示词模板来简化这一过程:

提示词模板

提示词模板允许您创建可重用的提示词结构:

java
PromptTemplate promptTemplate = PromptTemplate.from("请解释 {topic} 的概念");
String prompt = promptTemplate.apply("量子计算");

链 (Chains) 概念

链是将多个组件组合在一起的方式,形成一个完整的处理流程:

基础链

基础链将提示词模板和模型组合在一起:

java
PromptTemplate promptTemplate = PromptTemplate.from("请解释 {topic} 的概念");
OpenAiChatModel model = OpenAiChatModel.builder()
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .build();

LlmChain chain = LlmChain.builder()
        .promptTemplate(promptTemplate)
        .model(model)
        .build();

String response = chain.run("量子计算");

复合链

复合链将多个链组合在一起,形成更复杂的处理流程:

  • 顺序链:按顺序执行多个链
  • 并行链:并行执行多个链
  • 分支链:根据条件选择不同的链

代理 (Agents) 概念

代理是能够自主决策和执行操作的组件,它可以使用工具来完成任务:

工具

工具是代理可以使用的功能,如搜索、计算等:

java
Tool searchTool = Tool.builder()
        .name("search")
        .description("用于搜索网络信息")
        .function(input -> searchWeb(input))
        .build();

代理执行

代理使用工具来完成任务:

java
Agent agent = Agent.builder()
        .model(model)
        .tools(Arrays.asList(searchTool, calculatorTool))
        .build();

String response = agent.execute("北京今天的天气怎么样?");

记忆 (Memory) 机制

记忆机制允许应用程序记住之前的交互,使对话更加连贯:

会话记忆

会话记忆存储当前会话的历史记录:

java
ChatMemory chatMemory = MessageWindowChatMemory.builder()
        .maxMessages(10)
        .build();

ChatLanguageModel chatModel = OpenAiChatModel.builder()
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .build();

ChatLanguageModelWithMemory modelWithMemory = ChatLanguageModelWithMemory.builder()
        .chatLanguageModel(chatModel)
        .chatMemory(chatMemory)
        .build();

中间件 (Middlewares) 概念

中间件是在请求和响应之间执行的组件,可以用于日志记录、监控、错误处理等:

中间件链

中间件链按顺序执行多个中间件:

java
MiddlewareChain middlewareChain = MiddlewareChain.builder()
        .addMiddleware(new LoggingMiddleware())
        .addMiddleware(new MonitoringMiddleware())
        .addMiddleware(new ErrorHandlingMiddleware())
        .build();

ChatLanguageModel modelWithMiddleware = ChatLanguageModelWithMiddleware.builder()
        .chatLanguageModel(chatModel)
        .middlewareChain(middlewareChain)
        .build();

总结

理解这些核心概念是使用 LangChain 4J 构建复杂应用的基础。在后续章节中,我们将深入探讨每个概念的具体实现和应用场景。