Hướng dẫn Claude API Python 2026 | APIMaster.ai
Cách sử dụng Claude API với Python. Các ví dụ hoàn chỉnh sử dụng Anthropic SDK và client tương thích OpenAI—chat, streaming, vision, và function calling—qua APIMaster.ai.
Hướng dẫn Claude API Python
Hướng dẫn này bao gồm cách sử dụng Claude API trong Python với cả Anthropic SDK gốc và client tương thích OpenAI. Tất cả các ví dụ đều hoạt động với APIMaster.ai—hãy thay thế base URL và API key của riêng bạn.
Cài đặt
pip install anthropic # Anthropic SDK gốc
pip install openai # Tương thích OpenAI (tùy chọn)
Thiết lập cơ bản
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai", # Không có /v1 cho Anthropic SDK
)
Hoặc với OpenAI SDK (dễ hơn nếu bạn đã sử dụng OpenAI):
from openai import OpenAI
client = OpenAI(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai/v1",
)
Lời gọi Claude API đầu tiên của bạn
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Giải thích sự khác biệt giữa list và tuple trong Python."}
],
)
print(message.content[0].text)
System Prompts
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
system="Bạn là một kỹ sư Python cao cấp. Hãy ngắn gọn và sử dụng các ví dụ mã.",
messages=[
{"role": "user", "content": "Cách nhanh nhất để làm phẳng một danh sách lồng nhau là gì?"}
],
)
print(response.content[0].text)
Hội thoại nhiều lượt
conversation = []
def chat(user_message):
conversation.append({"role": "user", "content": user_message})
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=conversation,
)
assistant_message = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_message})
return assistant_message
print(chat("Decorator trong Python là gì?"))
print(chat("Bạn có thể cho tôi xem một ví dụ thực tế không?"))
Streaming Phản hồi
Streaming trả về các token khi chúng được tạo ra—trải nghiệm người dùng tốt hơn cho đầu ra dài:
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Viết một trình thu thập dữ liệu web Python sử dụng requests và BeautifulSoup."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print() # xuống dòng ở cuối
Vision: Phân tích Hình ảnh
Claude Sonnet và Opus hỗ trợ đầu vào hình ảnh (base64 hoặc URL):
import base64
with open("chart.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data,
},
},
{"type": "text", "text": "Tóm tắt biểu đồ này hiển thị điều gì."},
],
}
],
)
print(response.content[0].text)
Sử dụng Công cụ (Function Calling)
tools = [
{
"name": "get_weather",
"description": "Lấy thời tiết hiện tại cho một thành phố",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "Tên thành phố"},
},
"required": ["city"],
},
}
]
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
tools=tools,
messages=[{"role": "user", "content": "Thời tiết ở Tokyo thế nào?"}],
)
# Kiểm tra xem Claude có muốn gọi một công cụ không
if response.stop_reason == "tool_use":
tool_call = next(b for b in response.content if b.type == "tool_use")
print(f"Công cụ: {tool_call.name}, Đầu vào: {tool_call.input}")
Sử dụng Bất đồng bộ
import asyncio
import anthropic
async def main():
client = anthropic.AsyncAnthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai",
)
response = await client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Xin chào!"}],
)
print(response.content[0].text)
asyncio.run(main())
Xử lý Lỗi
import anthropic
try:
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Xin chào"}],
)
except anthropic.AuthenticationError:
print("API key không hợp lệ")
except anthropic.RateLimitError:
print("Giới hạn tốc độ—thêm logic thử lại")
except anthropic.APIStatusError as e:
print(f"Lỗi API {e.status_code}: {e.message}")
Chọn Mô hình Claude Phù hợp cho Dự án Python
| Tác vụ | Mô hình | Lý do |
|---|---|---|
| Chatbot, Hỏi đáp | claude-haiku-4-5 | Nhanh + rẻ |
| Sinh mã | claude-sonnet-4-6 | Cân bằng tốt nhất |
| Suy luận phức tạp | claude-opus-4-8 | Độ chính xác cao nhất |
| Phân tích tài liệu | claude-sonnet-4-6 | Ngữ cảnh 1M |
Nhận Quyền truy cập Claude API
Các Câu hỏi Thường gặp
Làm thế nào để cài đặt thư viện Python cho Claude API?
Chạy pip install anthropic cho SDK chính thức, hoặc pip install openai để sử dụng endpoint tương thích OpenAI của APIMaster với các mô hình Claude.
Tôi nên sử dụng Python SDK nào cho Claude API?
SDK anthropic là lựa chọn chính thức và hỗ trợ tất cả các tính năng đặc thù của Claude (tool use, vision, streaming). SDK openai hoạt động thông qua lớp tương thích của APIMaster—hữu ích nếu bạn đã sử dụng OpenAI và muốn chuyển đổi mô hình.
Làm thế nào để stream phản hồi Claude API trong Python?
Truyền stream=True với thư viện openai, hoặc sử dụng client.messages.stream() với SDK anthropic. Xem ví dụ streaming ở trên.
Claude API có hỗ trợ function calling (tool use) không?
Có—Claude hỗ trợ tool use cả trong Anthropic SDK gốc và thông qua endpoint tương thích OpenAI của APIMaster bằng tham số tools tiêu chuẩn.
Kích thước cửa sổ ngữ cảnh tối đa cho Claude trong Python là bao nhiêu?
Claude Sonnet 4.6 và Opus 4.8 hỗ trợ 1M token mỗi mô hình. Bạn có thể truyền trực tiếp các tài liệu rất dài trong mảng messages.
Đăng ký tại APIMaster.ai để nhận quyền truy cập Claude API thông qua một endpoint hợp nhất, với giá trực tiếp và dữ liệu xác minh dấu vân tay.
Xem thêm: Định giá Claude API · Cách lấy Claude API Key