LangChain
业务组件 用于按提供商归类那些将第三方服务接入 SkillFlaw 的组件。
本页介绍 LangChain 业务组件中的可用组件。
CSV Agent
该组件基于 Agent 流程组件。
它用于基于 CSV 文件和 LLM 创建一个 CSV 智能体。 更多说明请参阅 LangChain CSV 智能体文档。
CSV Agent 参数
| Name | Type | Description |
|---|---|---|
| llm | LanguageModel | 输入参数。用于智能体的语言模型。 |
| path | File | 输入参数。CSV 文件路径。 |
| agent_type | String | 输入参数。要创建的智能体类型。 |
| agent | AgentExecutor | 输出参数。生成出的 CSV 智能体实例。 |
OpenAI Tools Agent
该组件基于 Agent 流程组件。
它用于创建一个 OpenAI Tools 智能体。 更多说明请参阅 LangChain OpenAI 智能体文档。
OpenAI Tools Agent 参数
| Name | Type | Description |
|---|---|---|
| llm | LanguageModel | 输入参数。使用的语言模型。 |
| tools | List of Tools | 输入参数。赋予智能体的工具集合。 |
| system_prompt | String | 输入参数。为智能体提供上下文的系统提示词。 |
| input_value | String | 输入参数。用户发给智能体的输入。 |
| memory | Memory | 输入参数。智能体用来保持上下文的记忆。 |
| max_iterations | Integer | 输入参数。允许智能体执行的最大迭代次数。 |
| verbose | Boolean | 输入参数。是否打印智能体的中间步骤。 |
| handle_parsing_errors | Boolean | 输入参数。是否处理智能体解析错误。 |
| agent | AgentExecutor | 输出参数。生成出的 OpenAI Tools 智能体实例。 |
| output | String | 输出参数。智能体针对输入执行后的结果。 |
OpenAPI Agent
该组件基于 Agent 流程组件。
它用于创建一个可与 OpenAPI 服务交互的智能体。 更多说明请参阅 LangChain OpenAPI toolkit 文档。
OpenAPI Agent 参数
| Name | Type | Description |
|---|---|---|
| llm | LanguageModel | 输入参数。使用的语言模型。 |
| openapi_spec | String | 输入参数。目标服务的 OpenAPI 规范。 |
| base_url | String | 输入参数。API 的基础 URL。 |
| headers | Dict | 输入参数。可选的 API 请求头。 |
| agent_executor_kwargs | Dict | 输入参数。Agent Executor 的可选参数。 |
| agent | AgentExecutor | 输出参数。生成出的 OpenAPI 智能体实例。 |
Prompt Hub
该组件用于从 LangChain Hub 获取 Prompt。
与 Prompt Template 流程组件 类似,该组件会根据 Prompt 中的变量自动添加额外字段。
例如,默认 Prompt efriis/my-first-prompt 会自动增加 profession 和 question 两个字段。
Prompt Hub 参数
| Name | Display Name | Description |
|---|---|---|
| langchain_api_key | Your LangChain API Key | 输入参数。要使用的 LangChain API Key。 |
| langchain_hub_prompt | LangChain Hub Prompt | 输入参数。要使用的 LangChain Hub Prompt。 |
| prompt | Build Prompt | 输出参数。由 build_prompt 方法返回的构建后 Prompt 消息。 |
SQL Agent
该组件基于 Agent 流程组件。
它用于创建一个可与 SQL 数据库交互的智能体。 更多说明请参阅 LangChain SQL 智能体文档。
SQL Agent 参数
| Name | Type | Description |
|---|---|---|
| llm | LanguageModel | 输入参数。使用的语言模型。 |
| database | Database | 输入参数。SQL 数据库连接。 |
| top_k | Integer | 输入参数。SELECT 查询最多返回的结果数。 |
| use_tools | Boolean | 输入参数。是否通过工具执行查询。 |
| return_intermediate_steps | Boolean | 输入参数。是否返回智能体的中间步骤。 |
| max_iterations | Integer | 输入参数。智能体最大迭代次数。 |
| max_execution_time | Integer | 输入参数。最大执行时长(秒)。 |
| early_stopping_method | String | 输入参数。提前停止策略。 |
| verbose | Boolean | 输入参数。 是否打印智能体的推理过程。 |
| agent | AgentExecutor | 输出参数。生成出的 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 参数
| Name | Type | Description |
|---|---|---|
| llm | LanguageModel | 输入参数。使用的语言模型。 |
| tools | List[Tool] | 输入参数。智能体可使用的工具列表。 |
| system_message | String | 输入参数。智能体使用的系统消息。 |
| return_intermediate_steps | Boolean | 输入参数。是否返回中间步骤。 |
| max_iterations | Integer | 输入参数。最大迭代次数。 |
| max_execution_time | Integer | 输入参数。最大执行时长(秒)。 |
| early_stopping_method | String | 输入参数。提前停止方法。 |
| verbose | Boolean | 输入参数。是否打印智能体的思考过程。 |
| agent | AgentExecutor | 输出参数。生成出的 Tool Calling 智能体实例。 |
XML Agent
该组件基于 Agent 流程组件。
它用于创建一个基于 LangChain 的 XML 智能体。 该智能体会使用 XML 格式向 LLM 传达工具说明。 更多说明请参阅 LangChain XML 智能体文档。
XML Agent 参数
| Name | Type | Description |
|---|---|---|
| llm | LanguageModel | 输入参数。用于智能体的语言模型。 |
| user_prompt | String | 输入参数。供智能体使用的自定义 Prompt 模板,包含 XML 格式说明。 |
| tools | List[Tool] | 输入参数。智能体可使用的工具列表。 |
| agent | AgentExecutor | 输出参数。生成出的 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 组件。