• 刘蕾
    2024-12-24 来自斯洛伐克
    没看懂,Tool里面没有定义加法实现。还是用大语言模型给出结果,这样用function call有什么好处?

    作者回复: 同学,你好!首先牢记文中的一个概念,大模型只能选择工具,向人类反馈,但不能执行工具调用(运行代码),真正执行工具调用(运行代码)的是人类。文中的例子中,喂给大模型的tools定义,是用文字对工具的名称,作用,参数的描述(其实就是prompt)。之后大模型选择工具返回后,我们可以在response.ToolCalls中拿到大模型选的什么工具。之后由人类执行工具调用,也就是文中最后一个代码块的这几行代码。 if toolCalls[0].Function.Name == tools.AddToolDefine.Function.Name { result = tools.AddTool(args.Numbers) } else if toolCalls[0].Function.Name == tools.SubToolDefine.Function.Name { result = tools.SubTool(args.Numbers) } AddTool和SubTool就是真正执行加减法的函数。 人类执行函数得到结果后,再下一轮对话中反馈给大模型,然后由大模型给出答案。 可以去github上查看我的完整代码,加强理解哦。

    
    