跳到主要内容

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 会自动增加 professionquestion 两个字段。

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 组件