社区投稿

发布于 2026 年 08 月 15 日 星期六

大模型 API 接入教程:流式输出与函数调用 Function Calling 完整实现

详细讲解如何通过 OpenAI 兼容接口实现大模型 API 的流式输出和函数调用 function calling,涵盖 Python 代码示例、错误处理、限流与并发管理最佳实践。

为什么需要流式输出和函数调用

在对接大模型 API 时,流式输出和函数调用是两个最常用的高级功能。流式输出让用户无需等待完整回复即可逐步看到生成内容,大幅提升交互体验;函数调用则让大模型能够与外部工具和 API 交互,实现查天气、查数据库、执行代码等复杂任务。这两个功能已成为 AI 应用的标配能力。

流式输出实现

OpenAI 兼容接口的流式输出通过 SSE(Server-Sent Events)协议实现。设置 stream=True 即可开启流式模式,接口会逐块返回生成内容。以下是 Python 示例:

from openai import OpenAI

client = OpenAI(
    api_key='your-api-key',
    base_url='https://api.bumo.cc/v1'
)

stream = client.chat.completions.create(
    model='deepseek-chat',
    messages=[{'role': 'user', 'content': '介绍一下量子计算'}],
    stream=True
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end='', flush=True)

流式输出时需要注意超时设置。大模型生成长文本可能需要较长时间,建议将客户端超时设置为 60 秒以上,避免流式连接被提前断开。

函数调用 Function Calling

函数调用允许你向模型描述可用函数,模型会自动决定是否调用以及如何调用。模型本身不执行函数,而是生成函数名和参数的 JSON 对象,由你的应用自行执行。以下是实现示例:

response = client.chat.completions.create(
    model='qwen-plus',
    messages=[{'role': 'user', 'content': '北京今天天气怎么样?'}],
    tools=[{
        'type': 'function',
        'function': {
            'name': 'get_weather',
            'description': '获取指定城市的天气',
            'parameters': {
                'type': 'object',
                'properties': {
                    'city': {'type': 'string', 'description': '城市名称'}
                },
                'required': ['city']
            }
        }
    }]
)

if response.choices[0].message.tool_calls:
    tool_call = response.choices[0].message.tool_calls[0]
    result = get_weather('北京')
    final = client.chat.completions.create(
        model='qwen-plus',
        messages=[
            {'role': 'user', 'content': '北京今天天气怎么样?'},
            response.choices[0].message,
            {'role': 'tool', 'tool_call_id': tool_call.id, 'content': result}
        ]
    )
    print(final.choices[0].message.content)

限流与并发管理

在生产环境中使用大模型 API,限流与并发管理至关重要。常见做法包括:设置请求队列控制并发数、实现指数退避重试机制、对 429 限流错误做降级处理。建议将 API Key、base_url、模型名等配置化管理,便于切换和调整。当主模型遇到限流时,可以自动降级到备用模型,保障业务连续性。

选择一个稳定的 API 服务也是保障生产可用性的关键。不墨 AI API 支持 OpenAI 兼容接口,完整覆盖流式输出和函数调用功能,内置限流与并发管理,为国产大模型调用提供稳定的中转服务,按量计费、接入简单。

小结

流式输出和函数调用是大模型 API 开发的核心能力,通过 OpenAI 兼容接口可以统一实现。掌握这两个功能后,你可以构建出体验流畅、功能丰富的 AI 应用。如果你需要一个稳定、易接入的 API 平台来实践这些功能,欢迎访问 不墨 AI API,快速开始你的大模型开发之旅。