Langchain组件
核心组件概览
LangChain 作为强大的大语言模型开发框架,包含多个关键组件类别,协同工作以实现复杂的自然语言处理任务。这些组件涵盖模型处理、提示设计、数据管理、工作流构建等多个方面。
每个组件类别都有其独特的功能和应用场景,它们相互配合,为开发者提供了高效构建智能应用的工具集。
组件分类说明
- 模型组件:负责与大语言模型进行交互,处理文本生成、嵌入向量转换等基础任务。
- 提示和解析器组件:用于设计与模型交互的输入和处理模型输出,引导模型生成符合预期的内容。
- 记忆组件:实现对话和任务中的上下文记忆功能,提升模型对前后信息关联的理解能力。
- 数据连接组件:从多种数据源加载、处理和检索数据,为模型提供丰富的信息输入。
- 链组件与 LangChain 表达式语言组件:构建复杂任务的工作流,实现模块化和高效的应用开发。
- 工具组件与代理组件:扩展模型能力,使其能够调用外部工具,完成复杂任务并适应不同应用场景。
模型组件
使用提供的ChatOpenAI可以初始化与deepseek的llm实例
#!/usr/bin/env python3
# -*- coding:utf-8 -*-from langchain_openai import ChatOpenAIllm = ChatOpenAI(model="deepseek-chat",base_url="https://api.deepseek.com",api_key="you api_key",max_tokens=8192,temperature=0.7,timeout=120,streaming=False,model_kwargs={"response_format": {'type': 'json_object'}})
result = llm.invoke("你好")
print(result)
提示和解析器组件
负责将用户输入转换为模型能够理解的指令。它支持添加系统消息,开发者可以通过精心设计系统消息,调整模型的响应方式,引导模型生成符合特定要求和风格的回答,使模型输出更具针对性和实用性。
DEMAND_TO_TESTCASE_PROMPT = PromptTemplate(input_variables=["demand_text"],template="""""")
消息
用于构建聊天模型的输入,包含 AIMessage、HumanMessage、SystemMessage 等不同类型。每种类型明确了不同角色的消息格式,有助于聊天模型准确理解对话角色和上下文,从而生成更合理的回复,保证对话逻辑的连贯性。
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAIllm = ChatOpenAI(model="deepseek-chat",base_url="https://api.deepseek.com",api_key="you api_key",max_tokens=8192,temperature=0.7,timeout=120,streaming=False,model_kwargs={"response_format": {'type': 'json_object'}})
messages = [HumanMessage(content="你好")]
result = llm.invoke(messages)
print(result)
记忆组件(Memory)
支持短期和长期记忆,允许在任务或会话中存储和检索信息。它提供了丰富的集成选项,可以与多种内存和数据库存储方式结合,极大地增强了模型的上下文理解能力,使模型能够在不同场景下灵活应用记忆功能。
用来保存用户输入和ai回复,提供多轮对话支持
链组件(Chains)
链组件可以将应用工作流中的多个逻辑步骤组合成链,以模块化和可重用的方式构建应用。通过这种方式,开发者可以将复杂的任务拆分为多个简单的步骤,并按照一定的顺序进行组合,实现复杂的业务逻辑,提高开发效率和代码的可维护性。
可以把上一步的输出当做下一步的输入
代理组件(Agents)
根据输入选择合适的工具进行调用,并在工具调用完成后输出最终结果。其提示已针对工具调用进行了优化,能够智能地判断任务需求,选择最适合的工具来完成任务,实现复杂任务的自动化处理。
deepseek支持Function Calling,在请求参数附带工具列表。以及用户输入,会根据用户输入来调用工具并返回工具执行结果