17|实践:用Go语言手写可定制API Agent(下)
邢云阳

你好,我是邢云阳。
上节课,我们搞定了 OpenAPI 的配置、解析以及 ReAct 模板的填充,相当于初始化的工作都已经完成了。那今天这节课,我们就来完成剩余的部分。
Output_parser
如何与 Agent 进行多轮对话,在之前的课程中,我们曾反复练习过,相信你已经比较熟悉了。在每一轮对话结束时,Agent 都会按照 ReAct 模板规定的格式给出回答。本章节的 ReAct 模板,是采用的 Dify 的模板,其使用的是 JSON 模式。 输出格式如下:
也就是说,JSON 输出会被夹在三个反引号(```)代码块之间。而根据 Agent 是选择工具还是得到了 Final Answer,上述格式会产生两种输出。
如果是选择工具,就会输出以下示例中的格式:
即 action_input 对应的值也是一个 JSON。如果是得到了 Final Answer,则是如下格式:
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. 解析工作包括使用正则表达式提取JSON_BLOB,通过JSON反序列化注入到map[string]interface{}结构中,区分工具参数和Final Answer的输出格式。 2. 通用HTTP方法的处理,包括处理header和apiKey,处理路径参数,处理query和requestBody参数,以及执行HTTP请求的过程。 3. 轮次限制的实现,通过设置iteration_steps和max_iteration_steps进行轮次限制,避免陷入死循环。 4. Gin封装API,设计了一个POST请求的API,用户可以通过API来访问Agent,包括service层的定义和控制器的代码设计。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 重塑云原生应用开发实战》,新⼈⾸单¥59
《AI 重塑云原生应用开发实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论