深入解析编程语言与大语言模型中的Function Calling核心差异与设计模式

编程语言中有函数调用这一概念;大语言模型中则有 Function Calling 这一机制。编程语言中的函数调用是其编程体系的一部分;大语言模型中的 Function Calling 是其处理和生成语言相关任务的一种方式。编程语言通过函数调用来实现特定的功能;大语言模型利用 Function Calling 来获取外部信息或执行特定的操作。

深入解析编程语言与大语言模型中的Function Calling核心差异与设计模式

传统函数调用(编程语言视角):

语法结构:函数名 + 参数列表 → 返回值。

在程序运行的时候,执行环境是由 CPU 直接进行执行的,并且参数是通过栈或者堆来进行传递的。

确定性:输入确定时,输出必然确定(纯函数)。

大语言模型中的Function Calling:

核心差异在于,是由自然语言来驱动的,模型会生成“函数调用请求”,并且这些请求会由外部系统去执行。

模型可能会依据上下文而发生动态的变化,从而决定是否调用函数,以及调用哪一个函数。

示例:

# 传统函数调用
获取“北京”的天气信息,结果为 result
# 大模型中的Function Calling
用户输入:"北京今天天气如何?"
模型输出:

大语言模型如何理解 Function Calling 呢?这涉及到语义细节方面的问题。

语义解析:

参数传递的挑战:

设计模式主要涉及大模型中 Function Calling 的架构设计方面。

核心模式:

策略模式:在编程技巧方面,能够实现高效且可靠的函数调用。

函数注册与发现:

错误处理:

异步调用:

编程的本质是什么?Function Calling 是如何扩展大语言模型的能力的?

突破静态知识的限制:

从生成到执行:

模块化思维:

人工智能的原理是,大模型是如何学习 Function Calling 的呢?

监督学习:

强化学习(RL):

提示工程(Prompt Engineering):

大语言模型的本质是什么?Function Calling 怎样体现出它的局限性呢?

知识依赖 vs 实时交互:

幻觉(Hallucination)问题:

安全与权限控制:

构建一个应用,这个应用要支持 Function Calling,且是 LLM 应用。

场景:用户通过自然语言查询实时天气并建议穿衣。

步骤:

定义函数:

以指定的地点为依据来获取对应的天气信息。
    # 调用天气API返回JSON数据
返回的是一个包含两个键值对的字典,其中键"temp"对应的值是 25,键"condition"对应的值是"晴"。

提示词设计:

你是一个天气助手,能够调用 get_weather 函数。依据温度来给出穿衣建议:
 - 低于10℃:建议穿羽绒服
 - 10-20℃:建议穿夹克
 - 高于20℃:建议穿短袖
   ```
   
   3. **处理流程**:
   ```python
   user_input = "上海今天多少度?"
# 模型生成函数调用请求
生成函数调用的操作是由语言模型(llm)来完成的,具体是生成针对用户输入的函数调用(function_call)。
# 执行函数
获取天气的函数调用中指定的“location”所对应的天气数据,其结果赋值给了 weather_data 。
# 模型整合结果
llm 给出了反馈。
    f"天气数据:{weather_data},请生成建议。"
)
输出:上海的天气情况是今天 25℃,天气晴朗,建议穿着短袖。

未来的方向包括 Function Calling 以及 AI Agent 的进化。

自主Agent:

多模态扩展:

自我优化:

总结:Function Calling 怎样对 LLM 的能力边界进行重新定义呢? 总结:Function Calling 是如何重新划定 LLM 的能力边界的? 总结:Function Calling 以何种方式重新界定 LLM 的能力边界?

大语言模型中的 Function Calling,其本质是一座连接符号世界(语言)与物理世界(动作)的桥梁。借助将自然语言转变为结构化函数调用这一方式,模型不但能够“思考”,而且能够“行动”。要实现这一机制,就需要将编程语言设计、软件工程架构、机器学习算法等多个领域的知识进行融合。未来,AI Agent 会不断发展。在这个过程中,Function Calling 将会成为构建通用人工智能的一项核心技术。

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

25阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

26阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

22阅读