跳到主要内容

LangChain

业务组件 用于按提供商归类那些将第三方服务接入 SkillFlaw 的组件。

本页介绍 LangChain 业务组件中的可用组件。

CSV Agent​

该组件基于 Agent 流程组件。

它用于基于 CSV 文件和 LLM 创建一个 CSV 智能体。 更多说明请参阅 LangChain CSV 智能体文档。

CSV Agent 参数​

NameTypeDescription
llmLanguageModel输入参数。用于智能体的语言模型。
pathFile输入参数。CSV 文件路径。
agent_typeString输入参数。要创建的智能体类型。
agentAgentExecutor输出参数。生成出的 CSV 智能体实例。

OpenAI Tools Agent​

该组件基于 Agent 流程组件。

它用于创建一个 OpenAI Tools 智能体。 更多说明请参阅 LangChain OpenAI 智能体文档。

OpenAI Tools Agent 参数​

NameTypeDescription
llmLanguageModel输入参数。使用的语言模型。
toolsList of Tools输入参数。赋予智能体的工具集合。
system_promptString输入参数。为智能体提供上下文的系统提示词。
input_valueString输入参数。用户发给智能体的输入。
memoryMemory输入参数。智能体用来保持上下文的记忆。
max_iterationsInteger输入参数。允许智能体执行的最大迭代次数。
verboseBoolean输入参数。是否打印智能体的中间步骤。
handle_parsing_errorsBoolean输入参数。是否处理智能体解析错误。
agentAgentExecutor输出参数。生成出的 OpenAI Tools 智能体实例。
outputString输出参数。智能体针对输入执行后的结果。

OpenAPI Agent​

该组件基于 Agent 流程组件。

它用于创建一个可与 OpenAPI 服务交互的智能体。 更多说明请参阅 LangChain OpenAPI toolkit 文档。

OpenAPI Agent 参数​

NameTypeDescription
llmLanguageModel输入参数。使用的语言模型。
openapi_specString输入参数。目标服务的 OpenAPI 规范。
base_urlString输入参数。API 的基础 URL。
headersDict输入参数。可选的 API 请求头。
agent_executor_kwargsDict输入参数。Agent Executor 的可选参数。
agentAgentExecutor输出参数。生成出的 OpenAPI 智能体实例。

Prompt Hub​

该组件用于从 LangChain Hub 获取 Prompt。

与 Prompt Template 流程组件 类似,该组件会根据 Prompt 中的变量自动添加额外字段。 例如,默认 Prompt efriis/my-first-prompt 会自动增加 profession 和 question 两个字段。

Prompt Hub 参数​

NameDisplay NameDescription
langchain_api_keyYour LangChain API Key输入参数。要使用的 LangChain API Key。
langchain_hub_promptLangChain Hub Prompt输入参数。要使用的 LangChain Hub Prompt。
promptBuild Prompt输出参数。由 build_prompt 方法返回的构建后 Prompt 消息。

SQL Agent​

该组件基于 Agent 流程组件。

它用于创建一个可与 SQL 数据库交互的智能体。 更多说明请参阅 LangChain SQL 智能体文档。

SQL Agent 参数​

NameTypeDescription
llmLanguageModel输入参数。使用的语言模型。
databaseDatabase输入参数。SQL 数据库连接。
top_kInteger输入参数。SELECT 查询最多返回的结果数。
use_toolsBoolean输入参数。是否通过工具执行查询。
return_intermediate_stepsBoolean输入参数。是否返回智能体的中间步骤。
max_iterationsInteger输入参数。智能体最大迭代次数。
max_execution_timeInteger输入参数。最大执行时长(秒)。
early_stopping_methodString输入参数。提前停止策略。
verboseBoolean输入参数。是否打印智能体的推理过程。
agentAgentExecutor输出参数。生成出的 SQL 智能体实例。

SQL Database​

LangChain SQL Database 组件用于建立 SQL 数据库连接。

它与SQL Database 流程组件不同;流程组件的职责是在兼容 SQLAlchemy 的数据库上执行 SQL 查询。

文本拆分组件​

LangChain 业务组件中包含以下文本拆分组件:

  • Character Text Splitter
  • Language Recursive Text Splitter
  • Natural Language Text Splitter
  • Recursive Character Text Splitter
  • Semantic Text Splitter

Tool Calling Agent​

该组件基于 Agent 流程组件。

它用于创建一个支持结构化工具调用的智能体,可搭配多种语言模型使用。 更多说明请参阅 LangChain tool calling 文档。

Tool Calling Agent 参数​

NameTypeDescription
llmLanguageModel输入参数。使用的语言模型。
toolsList[Tool]输入参数。智能体可使用的工具列表。
system_messageString输入参数。智能体使用的系统消息。
return_intermediate_stepsBoolean输入参数。是否返回中间步骤。
max_iterationsInteger输入参数。最大迭代次数。
max_execution_timeInteger输入参数。最大执行时长(秒)。
early_stopping_methodString输入参数。提前停止方法。
verboseBoolean输入参数。是否打印智能体的思考过程。
agentAgentExecutor输出参数。生成出的 Tool Calling 智能体实例。

XML Agent​

该组件基于 Agent 流程组件。

它用于创建一个基于 LangChain 的 XML 智能体。 该智能体会使用 XML 格式向 LLM 传达工具说明。 更多说明请参阅 LangChain XML 智能体文档。

XML Agent 参数​

NameTypeDescription
llmLanguageModel输入参数。用于智能体的语言模型。
user_promptString输入参数。供智能体使用的自定义 Prompt 模板,包含 XML 格式说明。
toolsList[Tool]输入参数。智能体可使用的工具列表。
agentAgentExecutor输出参数。生成出的 XML 智能体实例。

其他 LangChain 组件​

LangChain 业务组件中还包含以下组件:

  • Fake Embeddings
  • HTML Link Extractor
  • Runnable Executor
  • Spider Web Crawler & Scraper

遗留 LangChain 组件​

遗留组件已不再作为当前受支持能力的一部分,未来版本中可能会被移除。 你仍然可以在已有流程中继续使用它们,但建议尽快替换为当前受支持的组件。 若存在明确替代项,通常会在流程中组件卡片上的 遗留 标记、发布说明或 SkillFlaw 文档中给出说明。

如果你暂时不确定该如何替换某个遗留组件,可以先通过 Search 按提供商、服务或组件名称查找。 某些组件可能已经被全新的组件、相似组件,或其他分类下的同类新版本替代。

如果没有直接可见的替代项,也可以判断是否能用其他组件适配你的场景。 例如,许多 流程组件 提供的是可复用于多种提供商和业务场景的通用能力,例如 API Request 组件。

如果上述方式都不适用,你也可以参考遗留组件的实现代码自行封装自定义组件,或前往发起讨论反馈该遗留组件的替代需求。

为了避免在新流程中继续使用这些组件,系统默认会隐藏遗留组件。 在可视化编辑器中,你可以点击 组件设置,切换 遗留 过滤项的显示状态。

以下 LangChain 组件目前处于遗留状态:

  • Conversation Chain
  • LLM Checker Chain
  • LLM Math Chain
  • Natural Language to SQL
  • Retrieval QA
  • Self Query Retriever
  • JSON Agent
  • Vector Store Info/Agent
  • VectorStoreRouterAgent

如需替代这些组件,可以考虑使用 LangChain 业务组件中的其他组件,或 SkillFlaw 通用组件,例如 Agent 组件 或 SQL Database 组件。