Hướng dẫn Python cho API OpenAI 2026 | APIMaster.ai
Hướng dẫn Python toàn diện cho API OpenAI—cài đặt SDK, tạo chat completions, stream phản hồi, sử dụng function calling và xây dựng ứng dụng bất đồng bộ. Hoạt động với APIMaster.ai để truy cập ưu đãi.
Hướng dẫn Python cho API OpenAI
Hướng dẫn này bao gồm cách sử dụng API OpenAI với Python từ cài đặt cho đến các trường hợp sử dụng nâng cao. Tất cả các ví dụ đều hoạt động với APIMaster.ai—chỉ cần thay đổi api_key và base_url.
Cài đặt
pip install openai
Yêu cầu Python 3.8+. Gói openai là SDK Python chính thức của OpenAI (phiên bản 1.x).
Thiết lập ban đầu
from openai import OpenAI
client = OpenAI(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai/v1",
)
Hoặc sử dụng biến môi trường (khuyến nghị):
export OPENAI_API_KEY="YOUR_APIMASTER_KEY"
export OPENAI_BASE_URL="https://apimaster.ai/v1"
from openai import OpenAI
client = OpenAI() # tự động đọc biến môi trường
Chat Completions cơ bản
response = client.chat.completions.create(
model="gpt-5.4",
messages=[
{"role": "system", "content": "You are a Python expert."},
{"role": "user", "content": "What is a generator in Python?"},
],
)
print(response.choices[0].message.content)
print(f"Tokens used: {response.usage.total_tokens}")
Stream phản hồi
stream = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Write a binary search in Python."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
print()
Hội thoại nhiều lượt
messages = [
{"role": "system", "content": "You are a helpful coding assistant."}
]
def send(user_text):
messages.append({"role": "user", "content": user_text})
resp = client.chat.completions.create(model="gpt-5.4", messages=messages)
reply = resp.choices[0].message.content
messages.append({"role": "assistant", "content": reply})
return reply
print(send("Explain list comprehensions."))
print(send("Give me a harder example."))
Đầu ra có cấu trúc (Chế độ JSON)
Buộc mô hình trả về JSON hợp lệ:
import json
response = client.chat.completions.create(
model="gpt-5.4",
messages=[
{
"role": "user",
"content": "Extract the name, email, and company from: 'Contact Jane Smith (jane@acme.com) at Acme Corp.'",
}
],
response_format={"type": "json_object"},
)
data = json.loads(response.choices[0].message.content)
print(data) # {"name": "Jane Smith", "email": "jane@acme.com", "company": "Acme Corp"}
Function Calling (Sử dụng công cụ)
import json
tools = [
{
"type": "function",
"function": {
"name": "get_stock_price",
"description": "Get the current stock price for a ticker symbol",
"parameters": {
"type": "object",
"properties": {
"ticker": {"type": "string", "description": "Stock ticker, e.g. AAPL"},
},
"required": ["ticker"],
},
},
}
]
messages = [{"role": "user", "content": "What's the current price of Apple stock?"}]
response = client.chat.completions.create(
model="gpt-5.4",
messages=messages,
tools=tools,
tool_choice="auto",
)
# Process tool call
if response.choices[0].finish_reason == "tool_calls":
tool_call = response.choices[0].message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
print(f"Calling {tool_call.function.name} with {args}")
# Simulate function result
result = {"ticker": args["ticker"], "price": 189.50}
# Send result back
messages.append(response.choices[0].message)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": json.dumps(result),
})
final = client.chat.completions.create(model="gpt-5.4", messages=messages)
print(final.choices[0].message.content)
Embeddings
response = client.embeddings.create(
model="text-embedding-3-small",
input=["OpenAI API Python tutorial", "Machine learning basics"],
)
embeddings = [item.embedding for item in response.data]
print(f"Embedding dimensions: {len(embeddings[0])}")
Sử dụng bất đồng bộ
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai/v1",
)
async def generate(prompt: str) -> str:
resp = await client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": prompt}],
)
return resp.choices[0].message.content
async def main():
# Run 5 requests concurrently
prompts = [f"Explain concept #{i}" for i in range(5)]
results = await asyncio.gather(*[generate(p) for p in prompts])
for r in results:
print(r[:100])
asyncio.run(main())
Xử lý lỗi
from openai import OpenAI, AuthenticationError, RateLimitError, APIError
import time
def safe_call(client, **kwargs):
for attempt in range(3):
try:
return client.chat.completions.create(**kwargs)
except AuthenticationError:
raise # Don't retry auth errors
except RateLimitError:
time.sleep(2 ** attempt)
except APIError as e:
if e.status_code >= 500:
time.sleep(1)
else:
raise
raise RuntimeError("Max retries exceeded")
Hướng dẫn chọn mô hình
| Tác vụ | Mô hình | Lý do |
|---|---|---|
| Tóm tắt, phân loại | gpt-4o-mini | Chi phí thấp |
| Viết mã, viết văn bản tổng quát | gpt-5.4 | Cân bằng tốt nhất |
| Suy luận phức tạp | gpt-5.5 hoặc o3 | Khả năng cao |
| Xử lý hàng loạt | gpt-4o-mini hoặc gpt-5.4 | Chọn theo chất lượng và ngân sách |
Các câu hỏi thường gặp
Làm thế nào để cài đặt thư viện Python OpenAI?
Chạy pip install openai. Để truy cập qua APIMaster, không cần gói bổ sung—chỉ cần đặt base_url và api_key khi khởi tạo client.
Phiên bản Python nào được yêu cầu cho thư viện OpenAI? Python 3.8 trở lên. Client bất đồng bộ yêu cầu Python 3.10+ để tương thích tốt nhất.
Làm thế nào để xử lý giới hạn tốc độ API OpenAI trong Python?
Sử dụng backoff theo cấp số nhân—bắt RateLimitError và thử lại với độ trễ tăng dần. Thư viện tenacity giúp đơn giản hóa việc này. Định tuyến của APIMaster cung cấp thêm độ ổn định.
Tôi có thể sử dụng thư viện Python OpenAI với các mô hình Claude không?
Có—thông qua APIMaster. Đặt base_url="https://apimaster.ai/v1" và sử dụng ID mô hình như claude-sonnet-4-6. Định dạng phản hồi giống hệt phản hồi của GPT.
Làm thế nào để sử dụng các lệnh gọi OpenAI bất đồng bộ trong Python?
Sử dụng AsyncOpenAI thay vì OpenAI, và await các lệnh gọi API. Xem ví dụ bất đồng bộ trong hướng dẫn ở trên.