如何使用大语言模型:API 调用、AI Agent 与本地部署
调用API
生成API Key
需要去每个ai的platform网站上单独生成。
安装依赖
| 服务 |
推荐安装 |
| OpenAI |
pip install openai |
| DeepSeek |
pip install openai |
| MiniMax |
pip install openai |
| Claude / Anthropic |
pip install anthropic |
| Google Gemini |
pip install google-genai |
| Mistral |
pip install mistralai |
把API key放到环境变量里
macOS / Linux:
1
| export DEEPSEEK_API_KEY="你的_api_key"
|
Windows PowerShell:
1
| $env:DEEPSEEK_API_KEY="你的_api_key"
|
不要把 key 直接写进代码里,也不要提交到 GitHub。
注意,上面的命令创建的是临时的环境变量。如果想要永久保存,则需要写进shell配置文件:
Linux:
先看自己用的是哪种 shell:
如果输出类似:
就编辑 ~/.bashrc:
在文件最后加一行:
1
| export DEEPSEEK_API_KEY="你的_api_key"
|
保存后运行:
之后新开的 terminal 也能用。
如果输出类似:
就编辑 ~/.zshrc:
加同样这一行:
1
| export DEEPSEEK_API_KEY="你的_api_key"
|
然后:
脚本调用
Openai
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import os from openai import OpenAI
client = OpenAI( api_key=os.environ.get("OPENAI_API_KEY") )
response = client.responses.create( model="gpt-5.5", input=[ {"role": "system", "content": ""}, {"role": "user", "content": "你好"} ], reasoning={ "effort": "high" } )
print(response.output_text)
|
reasoning={"effort": "low"} 这类参数控制推理强度。目前的GPT-5.5支持:none(默认)、minimal、low、medium、high、xhigh。
普通聊天:
1 2 3 4 5 6 7 8 9 10 11
| import os from openai import OpenAI
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
response = client.responses.create( model="gpt-5.5", input="你好" )
print(response.output_text)
|
以OpenAI接口来说,最常见的role有这几个:
| role |
谁说的 |
作用 |
system |
系统/开发者 |
旧版 Chat Completions 里常用的全局规则 |
developer |
应用开发者 |
新版 OpenAI Responses API 更推荐,用来放应用规则 |
user |
最终用户 |
用户的问题、输入、需求 |
assistant |
模型 |
模型之前的回复,用于多轮对话历史 |
tool |
工具/API结果 |
函数调用、搜索、数据库查询等工具返回结果 |
DeepSeek
DeepSeek因为也是用的openai包,所以需要自己修改一下base_url:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| import os from openai import OpenAI
client = OpenAI( api_key=os.environ.get("DEEPSEEK_API_KEY"), base_url="https://api.deepseek.com" )
response = client.chat.completions.create( model="deepseek-v4-pro", messages=[ {"role": "system", "content": ""}, {"role": "user", "content": "你好"} ], stream=False, reasoning_effort="high", extra_body={ "thinking": {"type": "enabled"} } )
print(response.choices[0].message.content)
|
AI Agent
Codex
建议用vscode里的codex插件。
修改一下配置文件config.toml:
在codex的配置设置里选择“打开 config.toml”:

1 2 3 4
| model = "gpt-5.4" model_reasoning_effort = "xhigh" approval_policy = "never" sandbox_mode = "danger-full-access"
|
给最高权限,且不询问。
Claude Code(CC)
Claude Code建议用在terminal上用程序,因为vscode的插件有很多bug。
安装
1 2
| npm install -g @anthropic-ai/claude-code claude --version
|
运行
在项目/工作目录下执行:
如果希望给它最高权限,且永不询问,则需要用这个命令打开cc:
1
| claude --dangerously-skip-permissions
|
接DeepSeek API
macOS / Linux:
最小必需:
1 2
| export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKEN=<你的 DeepSeek API Key>
|
DeepSeek官方文档里的完整Claude Code配置(https://api-docs.deepseek.com/quick_start/agent_integrations/claude_code?utm_source=chatgpt.com ):
1 2 3 4 5 6 7 8 9 10
| export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKEN=<你的 DeepSeek API Key>
export ANTHROPIC_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m] export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash export CLAUDE_CODE_EFFORT_LEVEL=max
|
想永久生效,就把上面这些 export 写进:
或:
然后执行:
本地部署大模型
Qwen 千问
Mac
Mac电脑配置:M2芯片(arm架构)。
创建环境:
1 2 3 4
| conda create -n qwen python=3.11 -y conda activate qwen python -m pip install -U pip setuptools wheel pip install mlx mlx-lm huggingface_hub
|
下载:
1 2
| python -m mlx_lm.chat --model Qwen/Qwen3.5-0.8B python -m mlx_lm.chat --model Qwen/Qwen3.5-4B
|
测试:
1
| mlx_lm.generate --model Qwen/Qwen3.5-0.8B --prompt "你好"
|
1
| mlx_lm.generate --model Qwen/Qwen3.5-4B --prompt "你好"
|
在python里调用:
Qwen3.5-0.8B模型开启思考容易陷入死循环,所以建议不开。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| from mlx_lm import load, generate
MODEL_ID = "Qwen/Qwen3.5-0.8B"
model, tokenizer = load(MODEL_ID)
messages = [ {"role": "user", "content": "你好,请用一句话介绍你自己。"} ]
prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, enable_thinking=False, )
text = generate( model, tokenizer, prompt=prompt, max_tokens=256, verbose=False, )
print(text)
|
Qwen3.5-0.8B模型默认是开启思考的,但是因为思考过程容易很长,所以max_tokens一定要设置地大一点,不然会输出到一半就停止了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| from mlx_lm import load, generate
MODEL_ID = "Qwen/Qwen3.5-4B"
model, tokenizer = load(MODEL_ID)
messages = [ {"role": "user", "content": "你好,请用一句话介绍你自己。"} ]
prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, )
text = generate( model, tokenizer, prompt=prompt, max_tokens=16384, verbose=False, )
print(text)
|
如果只需要最终思考后的输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| from mlx_lm import load, generate
MODEL_ID = "Qwen/Qwen3.5-4B"
model, tokenizer = load(MODEL_ID)
messages = [ {"role": "user", "content": "你好,请用一句话介绍你自己。"} ]
prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, )
text = generate( model, tokenizer, prompt=prompt, max_tokens=16384, verbose=False, )
if "</think>" in text: thinking, answer = text.split("</think>", 1) else: thinking, answer = "", text
print(answer)
|