Function Calling 与大模型(介绍篇)

一、函数调用与工具使用简介

在这篇文章中,我们将探讨人工智能模型如何从“仅仅说”到“实际操作”。我们将解释function calling的工作原理、其在现实世界中的应用,在下一篇文章中我们将通过使用像Ollama和Llama 3.2这样的工具来实现它。无论你是一个开发者,想要构建AI驱动的应用,还是对AI如何改变我们与API互动的方式感到好奇,这篇指南都会带你了解所有你需要知道的内容。

1、人工智能模型如何从“仅仅说”到“实际操作”

function calling使大型语言模型(LLM)能够根据用户的输入与外部工具、API和功能进行互动。它不仅仅是生成文本,LLM可以判断出需要执行特定操作,然后请求外部功能来执行该操作。

function calling让用户可以通过自然语言与复杂系统进行互动,而LLM则处理底层的功能执行。因此,LLM可以专注于解决实际问题,而不仅仅是生成文本。

例如,如果用户询问天气,模型可以调用天气API来获取实时数据,而不是仅仅生成一个通用的回答。它还可以提醒你带伞,如果有下雨的可能性。

2、function calling过程解释

让我们来分解一下LLM内部是如何实现function calling的:

  1. 用户查询:
    过程从用户提出问题或请求操作开始(例如,“我CRM中的潜在客户有哪些?”或“检查产品X是否有库存?”)。

  2. LLM处理:
    LLM分析查询,识别出需要外部数据或操作来完成请求。例如:

  • 如果用户询问CRM中的潜在客户,LLM会识别出需要获取实时数据。

  • 如果用户要求查看库存信息,它会触发数据库查询。

  1. 函数调用决策:
    LLM决定执行function calling,可能是以下两种之一:
  • API调用: 连接到外部服务(例如,调用CRM API从Salesforce中获取实时商机数据)。

  • 自定义函数: 访问内部工具或数据库(例如,查询库存以检查产品的库存情况)。

  1. 数据检索:
    函数检索所需的数据(例如,从Salesforce API获取潜在客户,从仓库数据库获取产品的可用性信息)。

  2. 数据集成:
    检索到的数据被发送回LLM,LLM处理这些数据,并为用户生成一个上下文准确的回应。

好的,这是使用 Markdown 格式输出的文本:

二、函数调用用例及其如何提高性能

通过能够调用函数,LLM 不再仅仅局限于文本生成。它可以执行诸如检索实时数据或与其它软件交互等操作。这使得模型在实际应用中更加动态和有用。例如:

  • 提供最新的信息:如果模型能够通过函数调用获取最新的信息,它就能提供更准确的答案。例如,在不使用函数调用的情况下回答有关时事的问题可能会导致信息过时,但是通过访问新闻 API,答案就能保持最新。

  • 自动化重复性任务:函数调用可以自动化重复性任务。例如,如果用户想要安排会议,LLM 可以调用日历 API 自动添加事件。这节省了时间,并减少了手动输入的需要。

  • 连接其他服务:LLM 可以成为更大生态系统的一部分,连接数据库、CRM 或其他企业系统。这使得它们在专业环境中更加通用。

  • 处理复杂的工作流程:LLM 不仅可以回答单个问题,还可以协调多个函数调用来解决多步骤问题。例如,通过检查航班可用性、预订酒店以及通过不同的 API 租车来规划旅行。

  • 无需重新训练即可更新信息:当新的函数或 API 可用时,可以更新 LLM 以使用它们,而无需重新训练整个模型。这使得系统能够以最小的努力保持最新。

函数调用的一些例子

如果您使用过 ChatGPT 市场中的任何 GPT,您可能已经看到或体验过函数调用。这些 GPT 执行自定义函数,让人们可以创建像待办事项列表构建器、提示增强器、应用程序连接器和问答机器人这样的专用工具。ChatGPT 中的内置“Tasks”功能也使用了这个——它可以通过在特定时间触发函数来设置提醒。

Claude 的模型上下文协议 (MCP) 也做了类似的事情。借助 Sonnet 3.5,Claude 可以激活诸如 Brave Search 的网络搜索工具,利用其图记忆系统,或链接到其他应用程序。这两个系统都展示了 AI 现在如何使用这些“函数调用”将其核心智能连接到现实世界的工具。

那么,如何系统的去学习大模型LLM?

作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。

所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。

由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
在这里插入图片描述

👉大模型学习指南+路线汇总👈

我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
在这里插入图片描述
在这里插入图片描述

👉①.基础篇👈

基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
在这里插入图片描述

👉②.进阶篇👈

接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
在这里插入图片描述

👉③.实战篇👈

实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
在这里插入图片描述

👉④.福利篇👈

最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
在这里插入图片描述
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!

### Function Calling Models Series in Programming and Software Development In programming languages, function calling models define how functions or procedures interact within a program. These interactions include passing arguments to the called function, executing the code associated with that function, and returning control (and possibly results) back to the caller. #### Call by Value Model The call-by-value model involves copying actual argument values into corresponding formal parameters when invoking a function. This means any changes made inside the function do not affect variables outside it because only copies were modified[^1]. ```c++ void modifyValue(int x){ x += 5; } int main(){ int num = 10; modifyValue(num); // num remains unchanged at this point. } ``` #### Call by Reference Model Conversely, under the call-by-reference scheme, instead of making copies, references pointing directly to original variable locations get passed along during invocation. Therefore, modifications performed internally will reflect externally after execution completes. ```cpp void swapValues(int &a, int &b){ int temp = a; a = b; b = temp; } int main(){ int firstNum = 20, secondNum=30; swapValues(firstNum ,secondNum ); // Values have been swapped here. } ``` #### Higher-order Functions in Functional Programming Higher-order functions represent one key aspect where functional programming excels over traditional paradigms regarding function calls. Such constructs allow treating other functions as inputs/outputs while preserving immutability principles through pure computations without side effects. For instance: ```haskell applyTwice :: (a -> a) -> a -> a applyTwice f x = f (f x) doubleMe :: Int -> Int doubleMe n = n * 2 result = applyTwice doubleMe 7 -- result equals 28 ``` --related questions-- 1. What advantages does using higher-order functions offer compared to conventional procedural approaches? 2. How can understanding different parameter-passing mechanisms improve debugging efficiency? 3. Can you provide examples demonstrating both benefits and limitations inherent in each type mentioned above? 4. In what scenarios might developers prefer call-by-name semantics versus those discussed earlier?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值