Function calling流程总结 和 用于构建Agent的Function calling流程

Function calling流程总结的步骤如下:

  1. 自定义函数:根据用户需求,自定义函数chen_ming_algorithm,用于处理特定的任务。
  2. 创建字典:根据自定义函数,创建一个字典chen_ming_function,其中包含自定义函数的信息。
  3. 创建functions参数:将多个包含不同函数字典的list放入一个名为functions的参数中,以便后续使用。
  4. 判断是否需要调用外部函数:根据用户提供的messages和functions参数,判断是否需要调用外部函数。
  • 如果需要调用外部函数,执行以下操作:
    • 输出assistant_message_content:根据function_call提供的信息挑选合适的函数。
    • 将function call中的函数参数信息传递给函数。
    • 获取函数返回结果function_response。
    • 将输出结果包装为一条function message,添加到messages1中。
    • 将messages1和assistant_message合并成messages2。
    • 将messages2发送给外部函数库,获取second_response。
    • 根据second_response生成Final message,作为最终输出结果。
  • 如果不需 要调用外部函数,将messages直接发送给模型,得到second_response。
    • 根据second_response生成Final message,作为最终输出结果。

用于构建Agent的function calling流程

1. **主函数get_chat_response的流程:**
   - 输入用户需求messages的对象。
   - 判断是否是text_response。
     - 如果是text_response:
       - 创建text_answer_message。
       - 返回text_answer_message。
     - 如果不是text_response:
       - 创建function_call_message。
       - 返回function_call_message。

2. **创建text answer message的流程:**
   - 输入text answer message。
   - 通过is_text_response_valid函数判断是否是开发模式。
     - 如果是开发模式:
       - 引导用户进行审查。
       - 执行修改步骤(根据用户的反馈进行修改)。
     - 如果不是开发模式:
       - 执行不修改步骤。
       - 返回new_messages。

3. **创建function call message的流程:**
   - 输入function call message。
   - 通过is_code_response_valid函数判断解析是否成功。
     - 如果解析失败:
       - 返回修改后的messages。
     - 如果解析成功:
       - 打印模型编写代码。
       - 通过is_text_response_valid函数判断是否是开发模式。
         - 如果是开发模式:
           - 引导用户进行审查。
           - 执行修改步骤(根据用户的反馈进行修改)。
         - 如果不是开发模式:
           - 执行不修改步骤。
           - 返回new_messages。

4. **创建function call message流程(继续):**
   - 通过check_get_final_function_response函数解析JSON类型的函数参数。
   - 将function_call_message加入到初始messages中。
   - 判断function_response_message是否包含报错信息。
     - 如果包含报错信息:
       - 在增强模式下启动深度debug模式。
         - 创建多轮for循环,引导模型进行深度debug。
         - 在原始messages中添加prompt,并将messages带入get_chat_response并做出回答。
       - 在其他模式下启动有效debug模式。
         - 创建单次for循环,引导模型进行有效debug。
         - 在原始messages中添加prompt,并将messages带入get_chat_response并做出回答。
     - 如果不包含报错信息:
       - 返回new_messages。

这个流程描述了如何根据用户输入的消息来创建和返回不同的类型的消息,包括文本回答消息和函数调用消息。同时,它还描述了在开发模式下如何引导用户进行审查和修改,以及在出现报错时如何启动不同的debug模式来解决问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/501985.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RuoYi-Vue-Plus功能分析-jackson配置

文章目录 前言一、配置文件二、配置类三、注解四、json工具类1. 工具内容2. 使用工具 前言 前端在给我发送请求的时候一般包含三个部分url,header,body。那么就会涉及我们后端如何接收这些请求参数并且我们处理完毕参数后前端又如何接收参数 通过url传…

Java8 - LocalDateTime时间日期类使用详解

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&…

苹果备忘录导出方法

文章目录 前言方法1:iCloud 导出方法2:Pages 文稿导出(最推荐)方法3:借助Mac软件导出总结 前言 苹果生态真是让我们又爱又恨,其得益于无缝整合、安全性和应用程序生态系统,能够让在用户在自己的…

【LeetCode】一周中的第几天+ 一年中的第几天

2023-12-30 文章目录 一周中的第几天方法一:模拟思路步骤 方法二:调用库函数方法三:调用库函数 [1154. 一年中的第几天](https://leetcode.cn/problems/day-of-the-year/)方法一:直接计算思路: 方法二:调用…

如何p掉照片上的路人?一分钟教你快速去除

我们旅游的时候,拍照是必不可少的一个环节。但是,有时候照片的背景中会出现一些路人,让照片的美观度大打折扣。那么照片如何p掉路人呢?今天,我就来给大家分享几个实用的小技巧,让你轻松成为“P图大师”。 …

【Mysql】InnoDB 中 B+ 树索引的注意事项

一、根页面万年不动 在之前的文章里,为了方便理解,都是先画存储用户记录的叶子节点,然后再画出存储目录项记录的内节点。 但实际上 B 树的行成过程是这样的: 每当为某个表创建一个 B 树索引,都会为这个索引创建一个根…

学不动系列-git-hooks和husky+lintstage

git-hooks 为了保证提交的代码符合规范,可以在上传代码时进行校验。常用husky来协助进行代码提交时的eslint校验。husky是基于git-hooks来实现,在使用husky之前,我们先来研究一下git-hooks。 构建git-hooks测试项目 需要使用git-hooks就需…

c++入门(2)

上期我们说到了部分c修补C语言的不足,今天我们将剩下的一一说清楚。 函数重载 (1).函数重载的形式 C语言不允许函数名相同的同时存在,但是C允许同名函数存在,但是有要求:函数名相同,参数不同,构成函数重…

比特币暴涨逼近历史最高点;阿里云全线降价20%丨 RTE 开发者日报 Vol.155

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

vue3基础教程(1)——nodejs环境搭建

博主个人小程序已经上线:【中二少年工具箱】 小程序二维如下: 正文开始 专栏简介1. 环境菜单2.为什么下载node3. nodejs简介4. nodejs安装5. 编辑器选择 专栏简介 本系列文章由浅入深,从基础知识到实战开发,非常适合入门同学。…

七通道NPN 达林顿管GC2003,专为符合标准 TTL 而制造,最高工作电压 50V,耐压 80V

GC2003 内部集成了 7 个 NPN 达林顿晶体管,连接的阵列,非常适合逻辑接口电平数字电路(例 如 TTL,CMOS 或PMOS 上/NMOS)和较高的电流/电压,如电灯电磁阀,继电器,打印机或其他类似的负…

完美解决Iframe嵌入帆软报表出现跨域cookie写不进去的问题

随着google chrome对第三方cookie的限制越来越狠,现在发现之前使用iframe嵌入的帆软报表已经不好使了。官方现在解决iframe嵌入帆软报表出现跨域导致cookie写不进去的方案是主推 统一主域名的方案(谷歌浏览器单点登录失败- FineReport帮助文档 - 全面的报表使用教程和学习资料…