← Интеграции

SDK Anthropic (Python, TypeScript)

anthropic-python и @anthropic-ai/sdk — меняется только base_url

Что даёт

Свой код на официальных SDK Anthropic без изменений: system, блоки контента, инструменты, стрим.

Эндпоинт: POST https://api.morsmorii.ru/v1/messages

Какую модель брать

claude-sonnet-5-5 для ответов людям, claude-haiku-4-5 для классификации и извлечения

Sonnet 5.5 — лучшее соотношение качества и цены среди моделей Anthropic; Haiku в 2,5 раза дешевле на входе и достаточен для коротких структурированных задач.

Ориентир стоимости

обычный вопрос с контекстом файла на Sonnet 5.5: 5 000 токенов — 2–5 ₽

Конфигурация

Вместо sk-ВАШ_КЛЮЧ_MORSMORII подставьте ключ из раздела «API-ключи». Для инструмента лучше завести отдельный ключ с ограничением по моделям и бюджетом.

from anthropic import Anthropic

client = Anthropic(base_url="https://api.morsmorii.ru", api_key="sk-ВАШ_КЛЮЧ_MORSMORII")

msg = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=300,
    messages=[{"role": "user", "content": "Объясни, что такое идемпотентность"}],
)
# первым может прийти блок thinking — берём текстовые блоки
print("".join(b.text for b in msg.content if b.type == "text"))

with client.messages.stream(
    model="claude-haiku-4-5",
    max_tokens=200,
    messages=[{"role": "user", "content": "Три факта о Байкале"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Как ограничить ключ

  1. В разделе «API-ключи» создайте отдельный ключ для этого инструмента — так расход виден отдельно, а отзыв не заденет остальное.
  2. В поле «Модели» оставьте только рекомендованные выше: ключ ответит 403 на любую другую модель.
  3. Задайте месячный бюджет в рублях: после него — 429 key_budget_exceeded, списание останавливается.
  4. В команде каждый сотрудник заводит свои ключи: расход по людям видно в разделе «Команда» и в GET /v1/usage.

Тонкости

  • max_tokens обязателен, как и у Anthropic.
  • Sonnet 5.5 может сам начать ответ блоком thinking: читайте блоки с type "text", а не content[0].
  • Ошибки приходят в формате Anthropic: { type: "error", error: { type, message } }.
Как проверено: проверено запуском инструмента. 30.09.2026: примеры со страницы запущены как есть — anthropic-python 1.9.0 (вызов Sonnet 5.5 с блоком thinking перед текстом и стрим Haiku) и @anthropic-ai/sdk 0.129.0; ранее — стрим с usage, tool_use с input, 404 not_found_error на gpt-модель.