大模型是智能体的大脑,搭建智能体就必须知道如何部署大模型。大模型部署主要有两种方法:API调用和本地部署。

API调用

        API调用的原理是你把提示词通过网络发给服务商的服务器,服务器用自己的显卡、算力跑大模型,再把结果返回给你。

  • 优点

    • 不用管显卡、内存、环境配置
    • 直接用最强版本的模型
    • 开发快、集成简单
    • 不用自己更新、维护模型
  • 缺点

    • 有免费额度,但超了要收费
    • 必须联网
    • 数据会发给第三方服务器(隐私敏感场景不适合)

本地部署

        本地部署的原理是把开源大模型(如 Qwen、Deepseek、Gemma 等)下载到本地,用你自己的 CPU / 显卡 / 内存运行。

  • 优点

    • 完全本地运行,不联网也能用
    • 数据不出本地,隐私安全
    • 无调用费用
  • 缺点

    • 受电脑内存 / 显卡限制
    • 模型太小,效果通常不如云端 API
    • 需要自己选合适大小的模型

大模型部署测试

API配置

        我使用的是通义千问,有免费额度,API调用步骤可以参照平台给出的教程(如何获取API Key-大模型服务平台百炼(Model Studio)-阿里云帮助中心)。

        具体操作步骤就跳过了,按顺序操作就是:

本地部署

        本地部署使用Ollama(使用教程很多),下载电脑内存允许的开源大模型,一般的电脑配置能用的大模型多少有点傻,没那么聪明,不过用来测试没有问题。

测试程序

        配置好通义千问 API 环境变量后,用阿里官方代码进行测试,并对部分代码进行解析。

# 安装Openai SDK
# OpenAI 库是 OpenAI 官方提供的 Python SDK
# Qwen API 完全兼容 OpenAI 的 API 格式
pip install -U openai
from openai import OpenAI
import os

# 创建一个OpenAI的客户端实例
client = OpenAI(
    # 如果没有配置环境变量,则硬编码:api_key="sk-xxx"(最好不要明文使用API)
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

# 模型输入
messages = [{"role": "user", "content": "你是谁"}]

# 发起API请求
completion = client.chat.completions.create(
    model="qwen3.5-plus",  # 模型可按需更换
    messages=messages,
    extra_body={"enable_thinking": True},
    stream=True
)

is_answering = False  # 是否进入回复阶段
print("\n" + "=" * 20 + "思考过程" + "=" * 20)
for chunk in completion:
    delta = chunk.choices[0].delta
    if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
        if not is_answering:
            print(delta.reasoning_content, end="", flush=True)
    if hasattr(delta, "content") and delta.content:
        if not is_answering:
            print("\n" + "=" * 20 + "完整回复" + "=" * 20)
            is_answering = True
        print(delta.content, end="", flush=True)

messages

        messages可以储存对话历史,格式:[{"role": xx, " content": xx}](列表+字典),符合OpenAI的Chat API规范,支持多轮对话。

role可选值:

  • user:用户的问题/指令
  • assistant:模型的历史回复(多轮对话时用)
  • system:系统提示(定义模型的行为,比如"你是一个简洁的助手")

client.chat.completions.create

        这是openai中的核心接口,可实现轮式对话,代码中使用的参数有:

  • model:模型版本
  • messages:对话消息
  • extra_body:通义千问专属参数,开启深度思考模式

  • stream:流式输出,模型逐字返回结果(实时打印,像聊天框打字)

for chunk in completion:

        completion是一个生成式对象,因为是流式输出,因此会逐块(chunk)返回。chunk.choices[0].delta是一个结构化对象,从 OpenAI API 规范来说,delta 可包含多个属性(如 role + content);但在通义千问开启思考模式的流式调用场景下,单个 delta 对象基本只包含reasoning_content(思考过程,为一段文字)、content(单字符) 两类核心属性中的一类,或无核心属性(空 delta),不会同时包含两类核心属性。其属性可以通过hasattr()来判断。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐