Chuyển đến nội dung chính

Tổng quan

LemonData hỗ trợ định dạng Anthropic Messages API gốc. Sử dụng Anthropic SDK chính thức với LemonData để truy cập các mô hình Claude.

Cài đặt

pip install anthropic

Cấu hình

from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-lemondata-key",
    base_url="https://api.lemondata.cc"
)
Lưu ý: Base URL là https://api.lemondata.cc (không có /v1) đối với Anthropic SDK.

Cách sử dụng cơ bản

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Claude!"}
    ]
)

print(message.content[0].text)

Với System Prompt

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system="You are a helpful coding assistant.",
    messages=[
        {"role": "user", "content": "Write a Python function to reverse a string"}
    ]
)

Streaming

with client.messages.stream(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Tell me a story"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Vision

import base64

# Từ URL
message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "What's in this image?"},
            {
                "type": "image",
                "source": {
                    "type": "url",
                    "url": "https://example.com/image.jpg"
                }
            }
        ]
    }]
)

# Từ base64
with open("image.png", "rb") as f:
    image_data = base64.b64encode(f.read()).decode()

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Describe this image"},
            {
                "type": "image",
                "source": {
                    "type": "base64",
                    "media_type": "image/png",
                    "data": image_data
                }
            }
        ]
    }]
)

Sử dụng Tool

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    tools=[{
        "name": "get_weather",
        "description": "Get the weather for a location",
        "input_schema": {
            "type": "object",
            "properties": {
                "location": {"type": "string", "description": "City name"}
            },
            "required": ["location"]
        }
    }],
    messages=[{"role": "user", "content": "What's the weather in Tokyo?"}]
)

# Kiểm tra việc sử dụng tool
for block in message.content:
    if block.type == "tool_use":
        print(f"Tool: {block.name}")
        print(f"Input: {block.input}")

Extended Thinking (Claude Opus 4.5)

Đối với các mô hình hỗ trợ extended thinking:
message = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this complex math problem..."}]
)

# Truy cập các thinking block
for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")

Các mô hình Claude hiện có

ModelPhù hợp nhất cho
claude-opus-4-5Suy luận phức tạp, extended thinking
claude-sonnet-4-5Mục đích tổng quát, lập trình
claude-haiku-4-5Phản hồi nhanh

Xử lý lỗi

from anthropic import APIError, APIStatusError, APIConnectionError

try:
    message = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=1024,
        messages=[{"role": "user", "content": "Hello"}]
    )
except APIStatusError as e:
    if e.status_code == 401:
        print("Invalid API key")
    elif e.status_code == 429:
        print("Rate limit exceeded")
    else:
        print(f"API error: {e.status_code}")
except APIConnectionError:
    print("Connection error")
except APIError as e:
    print(f"Unexpected error: {e}")

So sánh: OpenAI SDK và Anthropic SDK

Cả hai đều hoạt động với LemonData cho các mô hình Claude:
Tính năngOpenAI SDKAnthropic SDK
Base URLhttps://api.lemondata.cc/v1https://api.lemondata.cc
Endpoint/chat/completions/v1/messages
System promptTrong mảng messagesTham số system riêng biệt
Extended thinkingKhông được hỗ trợĐược hỗ trợ
Chọn dựa trên sở thích của bạn hoặc cơ sở mã nguồn hiện có.