AI Agent之复杂工作流的实现

【描述】 

随着数字技术的发展,越来越多的人开始通过电子设备阅读书籍,但纸质书依然有着 不可替代的地位。为了更好地推广阅读文化,提升读者的阅读体验,一家名为“悦读阁” 的书店计划开发一款智能阅读助手。这款助手的目标是帮助读者快速找到他们感兴的书籍,解答关于书籍内容的问题,并提供个性化的阅读建议。 小悦是一名资深的书店店员,对书籍非常了解,但面对越来越多的顾客咨询,她需要 一个智能助手来分担一些基础问题,让她有更多时间为顾客提供深度的阅读指导。你 作为一位 AI 工程师,被委托开发这款智能阅读助手。助手需要能够处理与书籍相关的 问题,包括但不限于书籍的基本信息、内容摘要、作者介绍等。

【目标】

1. 助手的回答准确率尽可能高。
书籍基本信息的精准提取:包括书名、作者、出版社、ISBN 编号、出版日
期等关键信息
内容摘要的准确概括:确保从数据集中准确摘要,不偏离核心内容
作者背景信息的正确呈现:确保从数据集中准确摘要,不过度搜索外部信息
版本差异识别:区分同一书籍的不同版本(如不同时间出版)特征
2. 每次咨询回答时间尽可能短。
从用户提交问题到 AI 助手返回答案, 响应时间越短越好 ,提升客户体验和工作效率。
实现策略:
缓存高频问题答案 :构建高频问题 Cache ,常见问法快速响应。
多级索引结构 :建立文档字段级别的索引,加快数据检索。
分阶段处理 :对输入意图、字段、关键信息做分阶段提取并并行处理。
3. 历史问答需要能作为后续提问的依据
用户一次会话中的多个问题往往具有上下文关联性, Agent 应具备 记忆 能力,能基于
前文理解当前问题。
实现策略
Session 记忆机制 :为每位客户维持会话上下文,并关联上下问题的关键信 。
多轮对话状态管理 :采用意图槽位填充机制跟踪用户问题的完成度。
历史问答摘要归档 :对长对话自动提取摘要要点用于后续引用。
引用溯源能力 :回答中可明确引用前序问题或文档位置。

【详细说明】

1. 信息审查与问答规则
智能阅读助手能够基于固定规则对书籍内容进行细致审查,重点识别并避免以下七类
常见问题:
数据不完整 :缺少书名、作者、 ISBN 、出版社、出版时间等任何一项关键
字段。
例:书名:《小王子》,作者:【】, ISBN 9787020042494
说明:作者缺失,属于数据不完整。
信息错误 :字段内容与事实不符。
例: ISBN 填写为 1234567890123 (实为 9787020042494
说明: ISBN 不正确,属于信息错误。
版本混淆 :同一书籍存在多个版本或译本时,信息交叉或混用。
例:回答中将 2015 版定价与 2020 版的页数混合引用。
作者混淆 :多个同名作者或多作者合作时,信息对应错误。 例:把“ 刘慈欣(科幻作家) 刘慈欣(同名画家) 混为一人。
内容摘要失真 :摘要偏离原著主旨或出现明显剧情捏造。
分类错误 :将小说误标为纪实文学、将儿童读物误标为成人向等。
知识边界超出 :回答引入未在数据集中存在的内容或凭空扩写。
2 复杂内容处理能力
封面识别:支持 OCR 识别图书封面 ,获取相关数据。
多语言支持:识别并处理英、日、中文、阿拉伯文等多语种元数据与内容。

【具体实现】

{
  "ID": "d063e13arp61nho53p70",
  "CreateUserID": 10023,
  "UpdateUserID": 10023,
  "CreatedAt": "2025-04-26T01:29:41Z",
  "UpdatedAt": "2025-04-26T03:24:56Z",
  "DeletedAt": null,
  "TenantID": "1000000005",
  "WorkspaceID": "personal-10023",
  "Name": "中英转换",
  "Description": "转换",
  "Status": "Published",
  "RuntimeStatus": "Failed",
  "Icon": {
    "Path": "upload/full/a8/bc/fa4cb109cb3bab2220c56cb67ac1e6bf6542ff8daadb60b2b594dbf6f964",
    "ID": "d063e13arp61nho53p6g",
    "Sha256": "a8bcfa4cb109cb3bab2220c56cb67ac1e6bf6542ff8daadb60b2b594dbf6f964",
    "Size": 75109
  },
  "Hash": "51d0e43bba71cffda8f6be9ebd050e93",
  "LastHash": "7772da818f88b5502383c11d4376e916",
  "Nodes": [
    {
      "ID": "d063e13arp61nho53p7g",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T01:29:41Z",
      "UpdatedAt": "2025-04-26T01:50:54Z",
      "DeletedAt": null,
      "Type": "Start",
      "Name": "Start",
      "WorkflowID": "d063e13arp61nho53p70",
      "Layout": {
        "X": 100,
        "Y": 200
      },
      "StartConfig": {
        "InputSchema": [
          {
            "Name": "i",
            "Desc": "用户输入",
            "Required": true,
            "Type": 0
          }
        ],
        "OutputSchema": [
          {
            "Name": "i",
            "Desc": "用户输入",
            "Required": true,
            "Type": 0
          }
        ]
      }
    },
    {
      "ID": "d063e13arp61nho53p80",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T01:29:41Z",
      "UpdatedAt": "2025-04-26T02:51:54Z",
      "DeletedAt": null,
      "Type": "End",
      "Name": "End",
      "WorkflowID": "d063e13arp61nho53p70",
      "Layout": {
        "X": 4612.2393750529,
        "Y": 220.8203572343
      },
      "Depends": [
        {
          "NodeID": "d064hnrarp61nho669s0",
          "PortID": "if01"
        },
        {
          "NodeID": "d064ibjarp61nho66kgg"
        }
      ],
      "EndConfig": {
        "InputVariables": [
          {
            "Type": "Reference",
            "Name": "output",
            "ValueFrom": {
              "OutputRef": {
                "NodeID": "d063sdrsinkm501djv10",
                "OutputFieldPath": "回答问题.raw_output"
              }
            }
          },
          {
            "Type": "Reference",
            "Name": "output1",
            "ValueFrom": {
              "OutputRef": {
                "NodeID": "d064ibjarp61nho66kgg",
                "OutputFieldPath": "大模型01.raw_output"
              }
            }
          }
        ],
        "OutputType": "Variable",
        "OutputSchema": [
          {
            "Name": "output",
            "Type": -1
          }
        ]
      }
    },
    {
      "ID": "d063k8l5ipli2163fr40",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T01:42:59Z",
      "UpdatedAt": "2025-04-26T02:31:25Z",
      "DeletedAt": null,
      "Type": "LLM",
      "Name": "翻译",
      "WorkflowID": "d063e13arp61nho53p70",
      "LoopNodeID": "",
      "Layout": {
        "X": 730.7113673236,
        "Y": 92.0187247043
      },
      "Depends": [
        {
          "NodeID": "d063e13arp61nho53p7g"
        }
      ],
      "LLMConfig": {
        "ModelID": "d0452ubarp61nho36mog",
        "Temperature": 0.7,
        "TopP": 0.5,
        "MaxTokens": 256,
        "InputVariables": [
          {
            "Type": "Reference",
            "Name": "i",
            "ValueFrom": {
              "OutputRef": {
                "NodeID": "d063e13arp61nho53p7g",
                "OutputFieldPath": "Start.i"
              }
            }
          }
        ],
        "Prompt": "# 角色(Role):\n中译英\n##技能:\n将用户输入从中文翻译为英文作为输出\n用户输入:{{i}}",
        "OutputFormat": "text",
        "OutputSchema": [
          {
            "Name": "raw_output",
            "Type": 0
          }
        ]
      }
    },
    {
      "ID": "d063sdrsinkm501djv10",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T02:00:24Z",
      "UpdatedAt": "2025-04-26T03:24:46Z",
      "DeletedAt": null,
      "Type": "LLM",
      "Name": "回答问题",
      "WorkflowID": "d063e13arp61nho53p70",
      "LoopNodeID": "",
      "Layout": {
        "X": 3308.1784714643,
        "Y": -9.4595147482
      },
      "Depends": [
        {
          "NodeID": "d063k8l5ipli2163fr40"
        },
        {
          "NodeID": "d064ac3sinkos4gco890",
          "PortID": "else"
        },
        {
          "NodeID": "d064evbsinkokpn2m5l0"
        }
      ],
      "LLMConfig": {
        "ModelID": "d0452ubarp61nho36mog",
        "Temperature": 0.7,
        "TopP": 0.5,
        "MaxTokens": 256,
        "InputVariables": [
          {
            "Type": "Reference",
            "Name": "input",
            "ValueFrom": {
              "OutputRef": {
                "NodeID": "d063k8l5ipli2163fr40",
                "OutputFieldPath": "翻译.raw_output"
              }
            }
          },
          {
            "Type": "Reference",
            "Name": "qur",
            "ValueFrom": {
              "OutputRef": {
                "NodeID": "d0644ljarp61nho5q6fg",
                "OutputFieldPath": "知识库01.outputList[0].output"
              }
            }
          },
          {
            "Type": "Reference",
            "Name": "select",
            "ValueFrom": {
              "OutputRef": {
                "NodeID": "d064evbsinkokpn2m5l0",
                "OutputFieldPath": "插件01.result"
              }
            }
          }
        ],
        "Prompt": "# 角色(Role)\n你是一个智能阅读助手,致力于帮助读者更好地进行阅读活动。\n\n# 限制(Constraint):\n当出现选择题时,题目可能是单选,也可能是多选,只输出选择序号即可,且只输出选择序号。多选题直接输出“AB,AC,BC,ABC”即可。\n\n#输入内容:\n用户输入:{{input}}\n知识库​​:{{qur}}\n数据库返回结果:{{select}}",
        "OutputFormat": "text",
        "OutputSchema": [
          {
            "Name": "raw_output",
            "Type": 0
          }
        ]
      }
    },
    {
      "ID": "d0644ljarp61nho5q6fg",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T02:17:58Z",
      "UpdatedAt": "2025-04-26T03:15:59Z",
      "DeletedAt": null,
      "Type": "Knowledge",
      "Name": "知识库01",
      "WorkflowID": "d063e13arp61nho53p70",
      "LoopNodeID": "",
      "Layout": {
        "X": 1176.4602170498,
        "Y": 603.4175336292
      },
      "Depends": [
        {
          "NodeID": "d063k8l5ipli2163fr40"
        }
      ],
      "KnowledgeConfig": {
        "QueryVariable": {
          "Type": "Reference",
          "Name": "query",
          "ValueFrom": {
            "OutputRef": {
              "NodeID": "d063k8l5ipli2163fr40",
              "OutputFieldPath": "翻译.raw_output"
            }
          }
        },
        "KnowledgeRange": [
          "01967010-bd73-7a01-8ef9-2e8509d7a54a"
        ],
        "OutputSchema": [
          {
            "Name": "outputList",
            "Required": true,
            "Type": 9,
            "SubParameters": [
              {
                "Name": "output",
                "Required": true,
                "Type": 0
              },
              {
                "Name": "metadata",
                "Required": true,
                "Type": 4,
                "SubParameters": [
                  {
                    "Name": "score",
                    "Required": true,
                    "Type": 3
                  },
                  {
                    "Name": "dataset_id",
                    "Required": true,
                    "Type": 0
                  },
                  {
                    "Name": "segment_id",
                    "Required": true,
                    "Type": 0
                  },
                  {
                    "Name": "document_id",
                    "Required": true,
                    "Type": 0
                  },
                  {
                    "Name": "dataset_name",
                    "Required": true,
                    "Type": 0
                  },
                  {
                    "Name": "document_url",
                    "Type": 0
                  },
                  {
                    "Name": "document_name",
                    "Required": true,
                    "Type": 0
                  },
                  {
                    "Name": "document_type",
                    "Type": 1
                  },
                  {
                    "Name": "document_obs_url",
                    "Type": 0
                  },
                  {
                    "Name": "document_file_type",
                    "Type": 1
                  },
                  {
                    "Name": "orientations",
                    "Type": 9,
                    "SubParameters": [
                      {
                        "Name": "page_number",
                        "Required": true,
                        "Type": 1
                      },
                      {
                        "Name": "rects",
                        "Required": true,
                        "Type": 8
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ],
        "TopK": 2,
        "ScoreThreshold": 0.8,
        "RerankID": null,
        "RetrievalSearchMethod": 0,
        "Expand": false,
        "ExpandNum": null
      }
    },
    {
      "ID": "d064ac3sinkos4gco890",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T02:30:08Z",
      "UpdatedAt": "2025-04-26T03:24:51Z",
      "DeletedAt": null,
      "Type": "Condition",
      "Name": "选择器01",
      "WorkflowID": "d063e13arp61nho53p70",
      "LoopNodeID": "",
      "Layout": {
        "X": 1712.5159218175,
        "Y": 812.3698482021
      },
      "Depends": [
        {
          "NodeID": "d0644ljarp61nho5q6fg"
        }
      ],
      "ConditionConfig": {
        "IfBranches": [
          {
            "ID": "if01",
            "Conditions": [
              {
                "Left": {
                  "Type": "",
                  "Name": "Left",
                  "ValueFrom": {
                    "OutputRef": {
                      "NodeID": "d0644ljarp61nho5q6fg",
                      "OutputFieldPath": "知识库01.outputList[0].output"
                    }
                  }
                },
                "Operator": "EMPTY",
                "Right": {
                  "Type": "Reference",
                  "Name": "Right"
                }
              }
            ],
            "ConditionLogic": "AND"
          }
        ],
        "ElseBranch": {
          "ID": "else"
        }
      }
    },
    {
      "ID": "d064esbarp61nho63ti0",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T02:39:46Z",
      "UpdatedAt": "2025-04-26T02:51:39Z",
      "DeletedAt": null,
      "Type": "Database",
      "Name": "数据库01",
      "WorkflowID": "d063e13arp61nho53p70",
      "LoopNodeID": "",
      "Layout": {
        "X": 2322.4203992907,
        "Y": -495.0952127186
      },
      "Depends": [
        {
          "NodeID": "d064ac3sinkos4gco890",
          "PortID": "if01"
        }
      ],
      "DatabaseConfig": {
        "QueryVariable": {
          "Type": "Reference",
          "Name": "query",
          "ValueFrom": {
            "OutputRef": {
              "NodeID": "d063k8l5ipli2163fr40",
              "OutputFieldPath": "翻译.raw_output"
            }
          }
        },
        "DatabaseID": "d0515a55ipli2161useg",
        "ModelID": "d0452ubarp61nho36mog",
        "Temperature": 0.7,
        "TopP": 0.5,
        "MaxTokens": 256,
        "Prompt": "查找出全部相关联的信息",
        "RetryTimes": 3,
        "OutputSchema": [
          {
            "Name": "query_result",
            "Required": true,
            "Type": 0
          },
          {
            "Name": "sql_statement",
            "Required": true,
            "Type": 0
          }
        ]
      }
    },
    {
      "ID": "d064evbsinkokpn2m5l0",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T02:39:58Z",
      "UpdatedAt": "2025-04-26T02:51:43Z",
      "DeletedAt": null,
      "Type": "Tool",
      "Name": "插件01",
      "WorkflowID": "d063e13arp61nho53p70",
      "LoopNodeID": "",
      "Layout": {
        "X": 2820.7814491916,
        "Y": -495.9871742178
      },
      "Depends": [
        {
          "NodeID": "d064esbarp61nho63ti0"
        }
      ],
      "ToolConfig": {
        "ToolID": "b6e3fae99o8kaosss71g",
        "InputVariables": [
          {
            "Type": "Input",
            "Name": "dsn",
            "StringValue": "mysql://lanqiao:JRemizRCwKZqPAGvDmiV28Q@mysql38ab0bc01cc2.rds.ivolces.com/lqb_ss_books"
          },
          {
            "Type": "Reference",
            "Name": "query",
            "ValueFrom": {
              "OutputRef": {
                "NodeID": "d064esbarp61nho63ti0",
                "OutputFieldPath": "数据库01.sql_statement"
              }
            }
          }
        ]
      }
    },
    {
      "ID": "d064hnrarp61nho669s0",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T02:45:51Z",
      "UpdatedAt": "2025-04-26T02:51:48Z",
      "DeletedAt": null,
      "Type": "Condition",
      "Name": "选择器02",
      "WorkflowID": "d063e13arp61nho53p70",
      "LoopNodeID": "",
      "Layout": {
        "X": 3769.784816924,
        "Y": -514.2159788184
      },
      "Depends": [
        {
          "NodeID": "d063sdrsinkm501djv10"
        }
      ],
      "ConditionConfig": {
        "IfBranches": [
          {
            "ID": "if01",
            "Conditions": [
              {
                "Left": {
                  "Type": "",
                  "Name": "Left",
                  "ValueFrom": {
                    "OutputRef": {
                      "NodeID": "d063sdrsinkm501djv10",
                      "OutputFieldPath": "回答问题.raw_output"
                    }
                  }
                },
                "Operator": "IN",
                "Right": {
                  "Type": "Input",
                  "Name": "Right",
                  "StringValue": "ABCD"
                }
              }
            ],
            "ConditionLogic": "AND"
          }
        ],
        "ElseBranch": {
          "ID": "else"
        }
      }
    },
    {
      "ID": "d064ibjarp61nho66kgg",
      "CreateUserID": 10023,
      "UpdateUserID": 10023,
      "CreatedAt": "2025-04-26T02:47:11Z",
      "UpdatedAt": "2025-04-26T02:51:51Z",
      "DeletedAt": null,
      "Type": "LLM",
      "Name": "大模型01",
      "WorkflowID": "d063e13arp61nho53p70",
      "LoopNodeID": "",
      "Layout": {
        "X": 3805.6825834079,
        "Y": 729.1385102924
      },
      "Depends": [
        {
          "NodeID": "d063sdrsinkm501djv10"
        }
      ],
      "LLMConfig": {
        "ModelID": "d0452ubarp61nho36mog",
        "Temperature": 0.7,
        "TopP": 0.5,
        "MaxTokens": 256,
        "InputVariables": [
          {
            "Type": "Reference",
            "Name": "input",
            "ValueFrom": {
              "OutputRef": {
                "NodeID": "d063e13arp61nho53p7g",
                "OutputFieldPath": "Start.i"
              }
            }
          }
        ],
        "Prompt": "# 角色(Role)\n你是一个智能阅读助手,致力于帮助读者更好地进行阅读活动。\n\n# 限制(Constraint):\n当出现选择题时,题目可能是单选,也可能是多选,只输出选择序号即可,且只输出选择序号。多选题直接输出“AB,AC,BC,ABC”即可。",
        "OutputFormat": "text",
        "OutputSchema": [
          {
            "Name": "raw_output",
            "Type": 0
          }
        ]
      }
    }
  ]
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渣渣盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值