AI 大模型之美
徐文浩
bothub 创始人
33899 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
AI 大模型之美
15
15
1.0x
00:00/00:00
登录|注册

加餐二|不用Langchain也能调用函数,一起来学Function Calling

你好,我是徐文浩。
在去年的课程里,我们就说过,像 GPT 这样的大语言模型,其实并不是全知全能的。无论是简单的算术题,还是想要获取实时的外部信息,如果直接让 GPT 给出答案,往往会得到错误的结果。
对于这类问题,一个常见的解决方案就是把大语言模型和自己撰写的程序代码结合起来。让程序代码解决获取外部的实时信息和精确的数学计算问题,让大语言模型解决语言理解和内容生成问题。然后通过大语言模型的逻辑推理能力,把两者结合起来,通过对用户输入内容的理解,去调用不同的程序代码,最终完成用户的需求。
在前面第 14~17 课里,我们就介绍过如何使用 Langchain 这个开源框架来做到这一点。而正因为这种方式非常有效,OpenAI 直接在后续的模型里内置了这个能力,也就是我们今天要介绍的 Function Call。

通过 Function Call 来计算数学题

定义工具方便 Function Call 的调用

我们先通过一个最简单的四则运算的例子,看看怎么使用 ChatGPT 的 Function Call 的能力。想让 ChatGPT 能够使用“按计算器”的方式,就需要先定义一些“按计算器”的 Function。
import json
def add(x, y):
return json.dumps({"result" : x + y})
def subtract(x, y):
return json.dumps({"result" : x - y})
def multiply(x, y):
return json.dumps({"result" : x * y})
def divide(x, y):
if y == 0:
return "Error! Division by zero."
return json.dumps({"result" : x / y})
def get_tools_definition(function_name, description):
return {
"type": "function",
"function": {
"name": function_name,
"description": description,
"parameters": {
"type": "object",
"properties": {
"x": {
"type": "number",
"description": "The first number",
},
"y": {
"type": "number",
"description": "the second number",
},
},
"required": ["x", "y"],
},
},
}
tools = [
get_tools_definition("add", "add x to y"),
get_tools_definition("subtract", "subtract y from x"),
get_tools_definition("multiply", "x multiply y"),
get_tools_definition("divide", "x divide y"),
]
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

1. Function Call功能可以让ChatGPT调用自定义的程序代码,实现算术运算等功能。 2. 通过定义工具方便Function Call的调用,可以为ChatGPT提供函数名称、描述和参数等信息。 3. 通过ChatGPT选择调用的Function Call,可以让ChatGPT自动决策应该使用哪一个函数。 4. 通过Function Call连接外部资料库,可以让ChatGPT获取复杂问题的答案,比如通过SerpAPI搜索商品信息并进行比较。 5. Function Call功能的强大之处在于可以通过多个Function Call调用,并配合ChatGPT自身的理解和推理能力,解决复杂问题。 6. Function Call的准确描述和命名对获得准确有效的结果非常重要。 7. 在获得Function Call的调用结果后,再次调用Function Call可能在某些场景下产生需求,需要思考如何实现这样的通用功能。 8. Function Call功能可以解决ChatGPT语言模型不擅长进行数学运算和缺少有时效性的外部数据信息的问题。 9. Function Call功能可以通过组合不同的调用结果解决更加复杂的问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 大模型之美》
新⼈⾸单¥68
立即购买
登录 后留言

精选留言

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