Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

调用API

生成API Key

需要去每个ai的platform网站上单独生成。

安装依赖

1
pip install openai
服务 推荐安装
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:

1
echo $SHELL

如果输出类似:

1
/bin/bash

就编辑 ~/.bashrc

1
nano ~/.bashrc

在文件最后加一行:

1
export DEEPSEEK_API_KEY="你的_api_key"

保存后运行:

1
source ~/.bashrc

之后新开的 terminal 也能用。

如果输出类似:

1
/bin/zsh

就编辑 ~/.zshrc

1
nano ~/.zshrc

加同样这一行:

1
export DEEPSEEK_API_KEY="你的_api_key"

然后:

1
source ~/.zshrc

脚本调用

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(默认)、minimallowmediumhighxhigh

普通聊天:

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”:

image-20260410235351137

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

运行

在项目/工作目录下执行:

1
claude

如果希望给它最高权限,且永不询问,则需要用这个命令打开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 写进:

1
~/.zshrc

或:

1
~/.bashrc

然后执行:

1
source ~/.zshrc

本地部署大模型

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)