【AI大模型学习路线】第三阶段之RAG与LangChain——第十三章(理解Function Calling)Function Calling(函数调用)详解,附代码?

【AI大模型学习路线】第三阶段之RAG与LangChain——第十三章(理解Function Calling)Function Calling(函数调用)详解,附代码?

【AI大模型学习路线】第三阶段之RAG与LangChain——第十三章(理解Function Calling)Function Calling(函数调用)详解,附代码?


文章目录

  • 【AI大模型学习路线】第三阶段之RAG与LangChain——第十三章(理解Function Calling)Function Calling(函数调用)详解,附代码?
    • 一、什么是Function Calling?
    • 二、大模型发展背景与Function Calling的出现
    • 三、Function Calling 示例与Python代码实操
      • 安装依赖(如未安装):
      • 示例:模型自动调用天气查询函数
        • 1. 定义函数元数据(告诉模型能用什么函数)
        • 2. 模拟函数行为(实际应用中你需要连接真实API)
        • 3. 使用OpenAI模型处理用户请求
    • 四、LangChain 中的 Function Calling(工具链模式)
    • 五、发展前景
    • ✅ 六、小结


欢迎宝子们点赞、关注、收藏!欢迎宝子们批评指正!
祝所有的硕博生都能遇到好的导师!好的审稿人!好的同门!顺利毕业!

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “学术会议小灵通”或参考学术信息专栏:https://fighting.blog.csdn.net/article/details/146994798


一、什么是Function Calling?

  • Function Calling 是指让大语言模型(LLM)根据用户的自然语言请求,自动判断并调用一个或多个函数,返回结构化结果。
  • 与传统聊天式回答不同,Function Calling使得LLM具备“调用工具”的能力,标志着模型从“文本生成器”向“智能代理(AI Agents)”转变,是现代RAG系统和LangChain框架的关键能力

二、大模型发展背景与Function Calling的出现

随着GPT-4、Claude、Gemini等大模型的涌现,单靠模型记忆生成答案的方式已经难以满足需求。于是:

  • RAG机制被引入,让模型能“先检索再生成”。
  • Function Calling进一步扩展模型能力,使其可以:
    (1)自动调用天气、金融、数据库等外部API;
    (2)集成搜索、计算、翻译等功能;
    (3)作为Agent组成复杂推理链条(例如LangChain Agent)。

这种能力支持了大模型更深入的应用于问答系统、自动办公、智能决策等场景。

三、Function Calling 示例与Python代码实操

  • 我们以下使用 OpenAI APILangChain 框架来演示Function Calling。

安装依赖(如未安装):

pip install openai langchain

示例:模型自动调用天气查询函数

1. 定义函数元数据(告诉模型能用什么函数)
functions = [
    {
        "name": "get_weather",
        "description": "Get the weather of a given city",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string",
                    "description": "Name of the city, like Beijing or New York"
                }
            },
            "required": ["city"]
        }
    }
]

2. 模拟函数行为(实际应用中你需要连接真实API)
def get_weather(city):
    return f"The weather in {city} is sunny and 25°C."

3. 使用OpenAI模型处理用户请求
from openai import OpenAI

client = OpenAI()

user_query = "What's the weather like in Shanghai?"

response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": user_query}],
    functions=functions,
    function_call="auto"  # 让模型自动判断是否调用函数
)

# 判断是否调用函数
message = response.choices[0].message

if message.function_call:
    # 提取参数
    import json
    func_name = message.function_call.name
    arguments = json.loads(message.function_call.arguments)

    # 调用函数
    if func_name == "get_weather":
        result = get_weather(arguments["city"])

    print("Function result:", result)
else:
    print("Model response:", message.content)

四、LangChain 中的 Function Calling(工具链模式)

  • 在LangChain中,函数调用称为Tool,可与Agent一起使用:
from langchain.agents import initialize_agent, Tool
from langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(model="gpt-4")

# 定义一个工具
def get_weather_tool(city):
    return f"{city} is rainy today."

tools = [
    Tool(
        name="get_weather",
        func=get_weather_tool,
        description="Use this tool to get the current weather of a city"
    )
]

agent = initialize_agent(tools, llm, agent="chat-zero-shot-react-description", verbose=True)

agent.run("What's the weather like in Paris?")

五、发展前景

Function Calling 不仅让大模型能“说话”,还能动手干活,是实现以下技术路线的基础:

  • RAG 2.0:检索 + 工具调用组合推理;
  • 多智能体协作系统(Multi-Agent System);
  • ‍ 自动办公系统(AutoGPT / AgentGPT);
  • 企业级智能问答平台(如结合知识图谱、ERP)。

✅ 六、小结

项目 内容
本质 让大模型调用结构化函数响应用户意图
应用 API调用、信息检索、数据处理等
框架 OpenAI API / LangChain / LlamaIndex 等
优势 实现模型“生成+行动”,是AI代理的基础

你可能感兴趣的:(AI大模型学习路线,人工智能,学习,langchain,架构)