AI 重塑云原生应用开发实战
邢云阳
联通云 AI 与容器技术专家
905 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 18 讲/共 28 讲
第五章:AI 微服务——云原生 API 网关到 AI 网关的蜕变 (1讲)
AI 重塑云原生应用开发实战
15
15
1.0x
00:00/00:00
登录|注册

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

你好,我是邢云阳。
上节课,我们搞定了 OpenAPI 的配置、解析以及 ReAct 模板的填充,相当于初始化的工作都已经完成了。那今天这节课,我们就来完成剩余的部分。

Output_parser

如何与 Agent 进行多轮对话,在之前的课程中,我们曾反复练习过,相信你已经比较熟悉了。在每一轮对话结束时,Agent 都会按照 ReAct 模板规定的格式给出回答。本章节的 ReAct 模板,是采用的 Dify 的模板,其使用的是 JSON 模式。 输出格式如下:
Action:
```
$JSON_BLOB
```
也就是说,JSON 输出会被夹在三个反引号(```)代码块之间。而根据 Agent 是选择工具还是得到了 Final Answer,上述格式会产生两种输出。
如果是选择工具,就会输出以下示例中的格式:
Action:
```
{
"action": "search_nearby_pois",
"action_input": {
"keywords": "游泳馆",
"location": "117.120308,36.656973"
}
}
```
即 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
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部