开发者大模型 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 ask(question: str, model: str = "claude-sonnet-4-6") -> str:
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": question}],
)
return resp.choices[0].message.content
系统提示 + 多轮对话
class AIChat:
def __init__(self, system_prompt: str, model: str = "claude-sonnet-4-6"):
self.model = model
self.history = [{"role": "system", "content": system_prompt}]
def send(self, user_msg: str) -> str:
self.history.append({"role": "user", "content": user_msg})
resp = client.chat.completions.create(
model=self.model,
messages=self.history,
)
reply = resp.choices[0].message.content
self.history.append({"role": "assistant", "content": reply})
return reply
assistant = AIChat("你是一个专业的 Python 代码审查员,提供简洁但准确的反馈。")
print(assistant.send("这个函数有什么问题?def add(a, b): return a+b"))
print(assistant.send("能否针对 NumPy 数组优化一下?"))
流式输出
def stream_generate(prompt: str, model: str = "gpt-5.4"):
with client.chat.completions.stream(
model=model,
messages=[{"role": "user", "content": prompt}],
) as stream:
for text in stream.text_stream:
yield text
# 使用示例
for chunk in stream_generate("写一篇关于 Python 协程的技术博客"):
print(chunk, end="", flush=True)
JSON 结构化输出
import json
def extract_json(text: str, fields: list) -> dict:
prompt = f"从文本中提取以下字段:{fields},以 JSON 格式返回。\n\n文本:{text}"
resp = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": prompt}],
response_format={"type": "json_object"},
)
return json.loads(resp.choices[0].message.content)
result = extract_json(
"张明,北京科技公司 CTO,邮箱 zhangming@tech.com",
["姓名", "公司", "职位", "邮箱"]
)
print(result)
工具调用(Function Calling)
import json
tool_defs = [
{
"type": "function",
"function": {
"name": "执行SQL查询",
"description": "在数据库中执行只读查询",
"parameters": {
"type": "object",
"properties": {
"sql": {"type": "string"},
"数据库": {"type": "string", "enum": ["用户库", "订单库"]},
},
"required": ["sql", "数据库"],
},
},
}
]
def run_tool(tool_name, args):
# 你的实际实现
return {"result": "mock data"}
def smart_agent(user_question: str):
messages = [{"role": "user", "content": user_question}]
while True:
resp = client.chat.completions.create(
model="gpt-5.4",
messages=messages,
tools=tool_defs,
)
if resp.choices[0].finish_reason != "tool_calls":
return resp.choices[0].message.content
messages.append(resp.choices[0].message)
for tc in resp.choices[0].message.tool_calls:
result = run_tool(tc.function.name, json.loads(tc.function.arguments))
messages.append({"role": "tool", "tool_call_id": tc.id, "content": json.dumps(result, ensure_ascii=False)})
嵌入向量 + 语义搜索
import numpy as np
def get_embeddings(texts: list) -> list:
resp = client.embeddings.create(
model="text-embedding-3-small",
input=texts,
)
return [item.embedding for item in resp.data]
def semantic_search(query: str, corpus: list, top_k: int = 3) -> list:
query_vec = get_embeddings([query])[0]
doc_vecs = get_embeddings(corpus)
def cosine_sim(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
scores = [(i, cosine_sim(query_vec, v)) for i, v in enumerate(doc_vecs)]
scores.sort(key=lambda x: x[1], reverse=True)
return [corpus[i] for i, _ in scores[:top_k]]
RAG(检索增强生成)
def rag_qa(user_question: str, knowledge_base: list) -> str:
# 检索相关文档
relevant_docs = semantic_search(user_question, knowledge_base, top_k=3)
context = "\n\n".join(relevant_docs)
# 基于检索内容生成回答
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{"role": "system", "content": f"仅根据以下资料回答问题:\n\n{context}"},
{"role": "user", "content": user_question},
],
)
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 batch_process(tasks: list) -> list:
coros = [
async_client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": task}],
max_tokens=200,
)
for task in tasks
]
results = await asyncio.gather(*coros)
return [r.choices[0].message.content for r in results]
# 并发处理 50 篇文章摘要
summaries = asyncio.run(batch_process([f"总结:{a}" for a in articles]))
生产环境清单
- API Key 存储在环境变量,不写入代码
- 429/500 错误的指数退避重试逻辑
- 设置
max_tokens防止输出超长 - 长时任务使用流式输出
- 记录 Token 用量便于成本分析
- 根据任务复杂度路由到不同模型(节省成本)
模型选型速查
| 场景 | 推荐模型 | 原因 |
|---|---|---|
| 快速原型开发 | deepseek-v4-flash | 便宜,代码能力强 |
| 生产聊天机器人 | claude-haiku-4-5 | 快速、稳定 |
| 代码生成与审查 | deepseek-v4-flash / claude-sonnet-4-6 | 代码最佳性价比 |
| 复杂文档分析 | claude-sonnet-4-6 | 100 万 Token 上下文 |
| 批量文本处理 | gpt-4o-mini | 最便宜的通用模型 |