开发者大模型 API 接入指南 2026 | APIMaster.ai
开发者使用大模型 API 完整指南:鉴权、流式输出、Function Calling、嵌入向量、RAG、异步并发、成本控制。Claude/GPT/DeepSeek 统一 OpenAI 格式。
开发者大模型 API 接入指南
本文是面向开发者的大模型 API 实战手册,覆盖从基础接入到生产环境的完整知识:鉴权配置、流式输出、工具调用、RAG 构建、异步并发和成本控制。
环境配置
pip install openai anthropic
from openai import OpenAI
client = OpenAI(
api_key="你的 APIMaster Key",
base_url="https://apimaster.ai/v1",
)
推荐用环境变量管理密钥:
# .env 文件(不要提交到 git)
OPENAI_API_KEY=你的APIMaster Key
OPENAI_BASE_URL=https://apimaster.ai/v1
核心用法
基础对话
def 问答(问题: str, 模型: str = "claude-sonnet-4-6") -> str:
resp = client.chat.completions.create(
model=模型,
messages=[{"role": "user", "content": 问题}],
)
return resp.choices[0].message.content
系统提示 + 多轮对话
class AI对话:
def __init__(self, 系统提示: str, 模型: str = "claude-sonnet-4-6"):
self.模型 = 模型
self.消息历史 = [{"role": "system", "content": 系统提示}]
def 发送(self, 用户消息: str) -> str:
self.消息历史.append({"role": "user", "content": 用户消息})
resp = client.chat.completions.create(
model=self.模型,
messages=self.消息历史,
)
回复 = resp.choices[0].message.content
self.消息历史.append({"role": "assistant", "content": 回复})
return 回复
助手 = AI对话("你是一个专业的 Python 代码审查员,提供简洁但准确的反馈。")
print(助手.发送("这个函数有什么问题?def add(a, b): return a+b"))
print(助手.发送("能否针对 NumPy 数组优化一下?"))
流式输出
def 流式生成(提示词: str, 模型: str = "gpt-4o"):
with client.chat.completions.stream(
model=模型,
messages=[{"role": "user", "content": 提示词}],
) as stream:
for text in stream.text_stream:
yield text
# 使用示例
for 片段 in 流式生成("写一篇关于 Python 协程的技术博客"):
print(片段, end="", flush=True)
JSON 结构化输出
import json
def 结构化提取(文本: str, 要提取的字段: list) -> dict:
提示 = f"从文本中提取以下字段:{要提取的字段},以 JSON 格式返回。\n\n文本:{文本}"
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": 提示}],
response_format={"type": "json_object"},
)
return json.loads(resp.choices[0].message.content)
结果 = 结构化提取(
"张明,北京科技公司 CTO,邮箱 zhangming@tech.com",
["姓名", "公司", "职位", "邮箱"]
)
print(结果)
工具调用(Function Calling)
import json
工具定义 = [
{
"type": "function",
"function": {
"name": "执行SQL查询",
"description": "在数据库中执行只读查询",
"parameters": {
"type": "object",
"properties": {
"sql": {"type": "string"},
"数据库": {"type": "string", "enum": ["用户库", "订单库"]},
},
"required": ["sql", "数据库"],
},
},
}
]
def 执行工具(工具名, 参数):
# 你的实际实现
return {"结果": "模拟数据"}
def 智能代理(用户问题: str):
消息 = [{"role": "user", "content": 用户问题}]
while True:
resp = client.chat.completions.create(
model="gpt-4o",
messages=消息,
tools=工具定义,
)
if resp.choices[0].finish_reason != "tool_calls":
return resp.choices[0].message.content
消息.append(resp.choices[0].message)
for tc in resp.choices[0].message.tool_calls:
结果 = 执行工具(tc.function.name, json.loads(tc.function.arguments))
消息.append({"role": "tool", "tool_call_id": tc.id, "content": json.dumps(结果, ensure_ascii=False)})
嵌入向量 + 语义搜索
import numpy as np
def 获取嵌入(文本列表: list) -> list:
resp = client.embeddings.create(
model="text-embedding-3-small",
input=文本列表,
)
return [item.embedding for item in resp.data]
def 语义搜索(查询: str, 文档库: list, top_k: int = 3) -> list:
查询向量 = 获取嵌入([查询])[0]
文档向量 = 获取嵌入(文档库)
def 余弦相似度(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
相似度 = [(i, 余弦相似度(查询向量, v)) for i, v in enumerate(文档向量)]
相似度.sort(key=lambda x: x[1], reverse=True)
return [文档库[i] for i, _ in 相似度[:top_k]]
RAG(检索增强生成)
def RAG问答(用户问题: str, 知识库: list) -> str:
# 检索相关文档
相关文档 = 语义搜索(用户问题, 知识库, top_k=3)
上下文 = "\n\n".join(相关文档)
# 基于检索内容生成回答
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{"role": "system", "content": f"仅根据以下资料回答问题:\n\n{上下文}"},
{"role": "user", "content": 用户问题},
],
)
return resp.choices[0].message.content
异步并发(批量处理)
import asyncio
from openai import AsyncOpenAI
async_client = AsyncOpenAI(
api_key="你的Key",
base_url="https://apimaster.ai/v1",
)
async def 批量处理(任务列表: list) -> list:
协程列表 = [
async_client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": 任务}],
max_tokens=200,
)
for 任务 in 任务列表
]
结果 = await asyncio.gather(*协程列表)
return [r.choices[0].message.content for r in 结果]
# 并发处理 50 篇文章摘要
摘要列表 = asyncio.run(批量处理([f"总结:{a}" for a in 文章列表]))
生产环境清单
- API Key 存储在环境变量,不写入代码
- 429/500 错误的指数退避重试逻辑
- 设置
max_tokens防止输出超长 - 长时任务使用流式输出
- 记录 Token 用量便于成本分析
- 根据任务复杂度路由到不同模型(节省成本)
模型选型速查
| 场景 | 推荐模型 | 原因 |
|---|---|---|
| 快速原型开发 | deepseek-v4 | 便宜,代码能力强 |
| 生产聊天机器人 | claude-haiku-4-5 | 快速、稳定 |
| 代码生成与审查 | deepseek-v4 / claude-sonnet-4-6 | 代码最佳性价比 |
| 复杂文档分析 | claude-sonnet-4-6 | 20 万 Token 上下文 |
| 批量文本处理 | gpt-4o-mini | 最便宜的通用模型 |