跳转至

LLM 基础:API 调用、模型对比、本地部署与编程助手

本章介绍如何使用大语言模型——从调用云端 API 到本地部署模型,以及使用 AI 编程助手。


第一节:如何调用 LLM(基于 API)

1.1 OpenAI API

模型: GPT-4o、GPT-4-turbo、o1、GPT-4o-mini
端点: https://api.openai.com/v1/chat/completions
认证: 通过 OPENAI_API_KEY 环境变量传递 Bearer Token
定价(每百万 token): GPT-4o:$2.50 输入 / \(10 输出;GPT-4o-mini:\)0.15 / $0.60

pip install openai
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain reinforcement learning in 3 sentences."},
    ],
    temperature=0.7,
    max_tokens=200,
)

print(response.choices[0].message.content)

o1 系列模型(推理模型)不支持 system 消息和 temperature 参数:

response = client.chat.completions.create(
    model="o1",
    messages=[
        {"role": "user", "content": "Solve: What is the integral of x^2 * e^x?"},
    ],
)
print(response.choices[0].message.content)

1.2 Anthropic API

模型: Claude 3.5 Sonnet、Claude 3 Opus、Claude 3.5 Haiku
端点: https://api.anthropic.com/v1/messages
认证: ANTHROPIC_API_KEY 请求头
定价(每百万 token): Claude 3.5 Sonnet:$3 输入 / $15 输出

pip install anthropic
import os
import anthropic

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

message = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    system="You are a robotics expert.",
    messages=[
        {"role": "user", "content": "Explain PID control in simple terms."},
    ],
)

print(message.content[0].text)

1.3 Google Gemini API

模型: Gemini 1.5 Pro、Gemini 1.5 Flash、Gemini 2.0 Flash
端点: https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent
认证: GOOGLE_API_KEY 或服务账号
定价(每百万 token): Gemini 1.5 Pro:$1.25 输入 / \(5 输出;Flash:\)0.075 / $0.30

pip install google-genai
import os
from google import genai

client = genai.Client(api_key=os.environ.get("GOOGLE_API_KEY"))

response = client.models.generate_content(
    model="gemini-1.5-pro",
    contents="Describe the difference between SLAM and visual odometry.",
)

print(response.text)

1.4 DeepSeek API

模型: DeepSeek-V3、DeepSeek-R1
端点: https://api.deepseek.com/v1/chat/completions(兼容 OpenAI 格式)
认证: DEEPSEEK_API_KEY
定价(每百万 token): DeepSeek-V3:$0.27 输入 / $1.10 输出(性价比极高)

pip install openai
import os
from openai import OpenAI

# DeepSeek 使用兼容 OpenAI 的 API 格式
client = OpenAI(
    api_key=os.environ.get("DEEPSEEK_API_KEY"),
    base_url="https://api.deepseek.com/v1",
)

response = client.chat.completions.create(
    model="deepseek-chat",  # DeepSeek-V3
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "用中文解释什么是机器人的运动学正解。"},
    ],
    temperature=0.7,
)

print(response.choices[0].message.content)

1.5 Qwen(通义千问)API — 阿里云

模型: Qwen 2.5(72B、32B、14B、7B)、Qwen-Max、Qwen-Plus
端点: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions(兼容 OpenAI 格式)
认证: DASHSCOPE_API_KEY
定价: Qwen-Max:¥0.02 / 千 token 输入;开源权重模型可免费自部署

pip install openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

response = client.chat.completions.create(
    model="qwen-max",
    messages=[
        {"role": "system", "content": "你是一个机器人学专家。"},
        {"role": "user", "content": "简要解释SLAM(同时定位与地图构建)。"},
    ],
    temperature=0.7,
)

print(response.choices[0].message.content)

1.6 OpenRouter — 统一网关

OpenRouter 提供单一 API 端点,可访问来自不同供应商的 100 多个模型。适合在不修改代码的情况下切换模型。

端点: https://openrouter.ai/api/v1/chat/completions
认证: OPENROUTER_API_KEY
定价: 因模型而异;通常为供应商价格 + 少量加价

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("OPENROUTER_API_KEY"),
    base_url="https://openrouter.ai/api/v1",
)

# 通过修改 model 字符串切换模型
response = client.chat.completions.create(
    model="anthropic/claude-3.5-sonnet",  # 或 "openai/gpt-4o"、"deepseek/deepseek-chat"
    messages=[
        {"role": "user", "content": "What is a Jacobian matrix in robotics?"},
    ],
)

print(response.choices[0].message.content)

第二节:主流大语言模型对比

模型 提供商 上下文窗口 定价(每百万 token,输入/输出) 优势
GPT-4o OpenAI 128K $2.50 / $10 快速、多模态、综合能力强
Claude 3.5 Sonnet Anthropic 200K $3 / $15 编程能力最强、超长上下文、推理严谨
Gemini 1.5 Pro Google 100万(实验性200万) $1.25 / $5 最大上下文窗口、多模态能力强
DeepSeek-V3 DeepSeek 128K $0.27 / $1.10 性价比极高、推理能力出色
Qwen 2.5(72B) 阿里巴巴 128K 免费(开源权重) 最强中文开源模型、多语言能力好
Llama 3.1(405B) Meta 128K 免费(开源权重) 最强开源权重模型、社区活跃
Mistral Large Mistral 128K $2 / $6 欧洲优秀模型、效率高

说明: - 定价为云端 API 访问价格。开源权重模型(Qwen、Llama、Mistral)可免费下载,但需要计算资源。 - 上下文窗口 = 每次请求的最大输入 + 输出 token 数。 - 所有价格均为近似值,可能随时变化。


第三节:本地部署

本地运行模型可获得隐私保护、零 API 成本和离线能力。代价是需要足够的硬件(具有足够显存的 GPU)。

3.1 llama.cpp(GGUF 格式)

在 CPU 和 GPU 上运行 GGUF 量化模型的参考实现。

# 安装
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON  # 启用 CUDA(NVIDIA GPU)
cmake --build build --config Release -j$(nproc)

# 下载 GGUF 模型(示例:Qwen 2.5 7B Q4)
# 从 https://huggingface.co/models?search=gguf 获取 GGUF 文件

# 运行推理(交互模式)
./build/bin/llama-cli -m /path/to/qwen2.5-7b-q4_k_m.gguf \
    -p "Explain forward kinematics:" -n 200

# 启动兼容 OpenAI 的服务器
./build/bin/llama-server -m /path/to/qwen2.5-7b-q4_k_m.gguf \
    --host 0.0.0.0 --port 8080

然后像调用任何 OpenAI API 一样使用:

from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="not-needed")
resp = client.chat.completions.create(
    model="qwen2.5",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)

3.2 Ollama

最简单的本地运行 LLM 方式。一条命令即可安装和运行。

# 安装(macOS / Linux)
curl -fsSL https://ollama.com/install.sh | sh

# 拉取并运行模型
ollama run qwen2.5:7b          # ~4.7 GB 下载
ollama run llama3.1:8b          # ~4.7 GB
ollama run deepseek-coder-v2:16b # ~9 GB

# 在 Python 中使用
# pip install ollama
import ollama

response = ollama.chat(
    model="qwen2.5:7b",
    messages=[
        {"role": "user", "content": "What is a transformation matrix in robotics?"},
    ],
)
print(response["message"]["content"])

Ollama 还在 http://localhost:11434/v1 提供兼容 OpenAI 的 API。

3.3 vLLM

高吞吐量推理引擎,适合生产环境和多用户场景。

pip install vllm

# 启动兼容 OpenAI 的 API 服务器
python -m vllm.entrypoints.openai.api_server \
    --model Qwen/Qwen2.5-7B-Instruct \
    --host 0.0.0.0 --port 8000 \
    --max-model-len 32768
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
response = client.chat.completions.create(
    model="Qwen/Qwen2.5-7B-Instruct",
    messages=[{"role": "user", "content": "Explain PID tuning."}],
)
print(response.choices[0].message.content)

3.4 Text Generation Inference(TGI)

Hugging Face 的生产级推理方案。基于 Docker 部署。

# 使用 Docker(推荐)
docker run --gpus all -p 8080:80 \
    -v $PWD/data:/data \
    ghcr.io/huggingface/text-generation-inference:latest \
    --model-id Qwen/Qwen2.5-7B-Instruct \
    --max-input-tokens 4096 \
    --max-total-tokens 8192
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1", api_key="not-needed")
response = client.chat.completions.create(
    model="Qwen/Qwen2.5-7B-Instruct",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

本地部署工具速查对比

工具 最佳用途 是否需要 GPU 易用性
llama.cpp CPU 推理、边缘设备 可选 中等
Ollama 初学者、快速实验 推荐 非常简单
vLLM 生产服务、高吞吐量 简单
TGI HuggingFace 生态、Docker 环境 简单(Docker)

第四节:编程助手框架

4.1 Trae(字节跳动)

Trae 是字节跳动推出的 AI 编程 IDE 和助手。主要特点: - 集成 AI 对话的编辑器(类似 VS Code 的界面) - 由多种 LLM 驱动的代码补全和生成 - 支持中英文提示词 - 内置终端集成,可直接运行生成的代码 - 独立桌面应用程序(支持 macOS、Windows) - 提供免费版;使用字节跳动内部模型,同时支持第三方模型

工作原理: Trae 连接 LLM 后端(字节跳动的豆包模型及其他模型),提供行内建议、基于对话的代码生成和多文件编辑能力。

官网: https://www.trae.ai

4.2 OpenAI Codex CLI

OpenAI 的终端编程智能体。在终端中运行,可以读写文件、执行命令并迭代代码。

# 安装
npm install -g @openai/codex

# 运行
export OPENAI_API_KEY="sk-..."
codex "create a Python script that computes forward kinematics for a 3-DOF arm"

特点: - 在本地终端中运行 - 可读取和修改你的代码库 - 在你授权后执行 Shell 命令 - 沙箱执行模式(建议模式、自动编辑模式、全自动模式) - 使用 GPT-4o 或 o 系列模型

4.3 Claude Code(Anthropic)

Anthropic 的智能体编程工具,在终端中运行。

# 安装
npm install -g @anthropic-ai/claude-code

# 运行
claude "refactor this function to use async/await"

特点: - 终端原生,直接在现有 Shell 中使用 - 读取整个项目上下文 - 可运行测试、修复 Bug、创建 PR - 支持多文件重构 - 使用 Claude 3.5 Sonnet / Claude 4

4.4 Cursor

AI 原生代码编辑器(VS Code 的分支),深度集成 LLM。

特点: - 基于 VS Code 构建;界面和扩展完全兼容 - Cmd+K 行内编辑:用自然语言描述修改 - 具备代码库感知能力的对话面板 - Composer 模式支持多文件编辑 - 支持 GPT-4o、Claude 3.5 等多种模型 - 自定义模型驱动的 Tab 补全 - 官网:https://cursor.com

4.5 GitHub Copilot

GitHub 的 AI 结对编程助手,集成在 VS Code、JetBrains 和 Neovim 中。

特点: - 编写代码时提供行内建议 - 对话面板(Copilot Chat)用于问答和代码生成 - 工作区感知上下文 - 支持多种模型(GPT-4o、Claude 3.5 Sonnet) - 个人版 $10/月;学生和开源维护者免费 - 集成在 GitHub.com 中,支持 PR 摘要和代码审查

编程助手对比

特性 Trae Codex CLI Claude Code Cursor GitHub Copilot
类型 IDE 终端智能体 终端智能体 编辑器(IDE) 编辑器插件
平台 桌面应用 终端 终端 桌面应用(VS Code 分支) VS Code、JetBrains 等
默认模型 豆包 / 可配置 GPT-4o / o1 Claude Sonnet GPT-4o / Claude GPT-4o / Claude
代码库感知 是(强)
多文件编辑 是(Composer) 有限
免费版 需 ChatGPT Plus 需 API 密钥 有限免费额度 学生免费
最佳用途 中文开发生态 CLI 工作流 CLI、深度重构 完整 IDE 体验 广泛兼容性
语言 中文 / 英文 英文 英文 英文 英文

参考资料

API 文档

本地部署

编程助手