信息提取节点¶
信息提取节点允许用户通过配置大语言模型从自然语言文本中提取指定的参数信息。TongAgents 提供了智能的信息提取功能,支持多种数据类型,让您能够灵活地从文本中提取结构化数据。
节点配置¶
基本配置项¶
信息提取节点的配置包含以下核心参数:
| 配置项 | 功能说明 |
|---|---|
| 模型配置 | 选择用于信息提取的大语言模型。支持各种主流的LLM模型,如GPT、豆包等。 配置方式:指定模型提供商、模型名称、API地址和密钥等信息。 |
| 查询文本 | 定义需要从中提取信息的文本内容。支持使用占位符变量引用上游节点的输出结果。 使用方式:直接输入文本或使用 {{#节点名.参数名#}} 格式引用变量。 |
| 指令 | 为模型提供提取信息的指导说明,帮助模型更好地理解提取任务。 示例:"请帮我提取名字"、"从文本中提取城市和关键词"等。 |
| 提取参数 | 定义需要提取的参数列表,每个参数包含名称、类型、描述等属性。 支持类型:string、number、bool、array[string]、array[number]、select |
参数类型说明¶
信息提取节点支持以下参数类型:
| 参数类型 | 说明 | 示例 |
|---|---|---|
| string | 字符串类型,提取文本内容 | 姓名、地址、描述等 |
| number | 数字类型,提取数值 | 年龄、价格、数量等 |
| bool | 布尔类型,提取是/否信息 | 是否同意、是否有效等 |
| array[string] | 字符串数组,提取多个文本项 | 标签列表、关键词列表等 |
| array[number] | 数字数组,提取多个数值 | 坐标、价格列表等 |
| select | 选择类型,从预定义选项中选择 | 性别、状态、类型等 |
选择类型参数配置¶
当参数类型为 select 时,需要额外配置选项映射:
{
"name": "gender",
"type": "select",
"description": "性别",
"options": {
"男": "male",
"女": "female"
}
}
工作流程¶
提取流程¶
- 文本预处理:系统将查询文本中的占位符变量替换为实际值
- 模型调用:使用配置的LLM模型处理文本和指令
- 参数提取:模型根据定义的参数结构从文本中提取相关信息
- 结果输出:将提取的参数以JSON格式输出,并存储到节点输出快照中
输出格式¶
提取结果以JSON对象形式返回,每个参数对应一个键值对:
使用示例¶
基础信息提取¶
配置示例:
- 查询文本:{{#sys.query#}}
- 指令:从自然语言中提取city、keyword两个参数
- 参数配置:
[
{
"name": "city",
"type": "string",
"description": "城市"
},
{
"name": "keyword",
"type": "string",
"description": "搜索关键词"
}
]
输入文本:北京周边的游乐场
提取结果:
复杂参数提取¶
配置示例:
- 查询文本:{{#input.text#}}
- 指令:提取用户的基本信息和偏好
- 参数配置:
[
{
"name": "name",
"type": "string",
"description": "姓名"
},
{
"name": "age",
"type": "number",
"description": "年龄"
},
{
"name": "gender",
"type": "select",
"description": "性别",
"options": {
"男": "male",
"女": "female"
}
},
{
"name": "interests",
"type": "array[string]",
"description": "兴趣爱好"
}
]
异常处理¶
提取失败处理¶
当信息提取失败时,系统会:
- 记录警告日志:对于未找到的参数,记录警告信息
- 设置默认值:将未提取到的参数设置为空字符串
- 继续执行:不会中断整个工作流程的执行
错误类型¶
| 错误类型 | 说明 | 处理方式 |
|---|---|---|
| JSON解析错误 | 模型返回的JSON格式不正确 | 记录错误日志,返回空结果 |
| 参数缺失 | 某些参数在响应中未找到 | 记录警告日志,设置默认值 |
| 模型调用失败 | LLM模型调用异常 | 记录错误日志,返回空结果 |
最佳实践¶
指令编写建议¶
- 明确具体:指令应该明确说明要提取什么信息
- 提供示例:在指令中提供具体的示例有助于模型理解
- 避免歧义:使用清晰、无歧义的语言描述提取要求
参数配置建议¶
- 合理命名:参数名称应该具有描述性,便于理解
- 类型匹配:根据实际需求选择合适的参数类型
- 选项完整:对于select类型,确保选项覆盖所有可能的情况
性能优化¶
- 模型选择:根据任务复杂度选择合适的模型
- 参数精简:只提取必要的参数,避免过度配置
- 文本预处理:在查询前对文本进行必要的清理和格式化
常见问题解答¶
提取结果不准确怎么办?¶
- 优化指令:尝试更详细、更具体的指令描述
- 调整参数:检查参数类型和描述是否合适
- 更换模型:尝试使用更强大的模型
如何处理提取失败的情况?¶
系统会自动处理提取失败的情况,将未提取到的参数设置为空值,不会中断工作流程。您可以在后续节点中检查参数值并进行相应处理。
支持哪些模型?¶
信息提取节点支持所有TongAgents支持的LLM模型,包括但不限于: - OpenAI GPT系列 - 豆包系列模型 - 其他兼容的LLM模型
可以提取嵌套结构的数据吗?¶
目前信息提取节点主要支持扁平化的参数结构。对于复杂的嵌套数据,建议先提取基本参数,然后在后续节点中进行结构化处理。