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
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 输出
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
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 输出(性价比极高)
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 输入;开源权重模型可免费自部署
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 | 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 后端(字节跳动的豆包模型及其他模型),提供行内建议、基于对话的代码生成和多文件编辑能力。
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 文档¶
- OpenAI API:https://platform.openai.com/docs
- Anthropic API:https://docs.anthropic.com/en/docs
- Google Gemini API:https://ai.google.dev/docs
- DeepSeek API:https://platform.deepseek.com/api-docs
- Qwen / DashScope:https://help.aliyun.com/zh/dashscope/
- OpenRouter:https://openrouter.ai/docs
本地部署¶
- llama.cpp:https://github.com/ggerganov/llama.cpp
- Ollama:https://ollama.com
- vLLM:https://docs.vllm.ai
- TGI:https://huggingface.co/docs/text-generation-inference
- GGUF 模型:https://huggingface.co/models?search=gguf
编程助手¶
- Trae:https://www.trae.ai
- OpenAI Codex CLI:https://github.com/openai/codex
- Claude Code:https://docs.anthropic.com/en/docs/claude-code
- Cursor:https://cursor.com
- GitHub Copilot:https://github.com/features/copilot