Разработка с Claude API

Запросы, потоковые ответы, tool use, структурированный вывод и стоимость.

92 уроков, первые 3 бесплатно. Полный доступ: 1490 руб.

Уроки курса

  1. Welcome to the course
  2. Overview of Claude models
  3. Accessing the API
  4. Getting an API key
  5. Making a request
  6. Multi-Turn conversations
  7. Chat exercise
  8. System prompts
  9. System prompts exercise
  10. Temperature
  11. Course satisfaction survey
  12. Response streaming
  13. Structured data
  14. Structured data exercise
  15. Quiz on accessing Claude with the API
  16. Prompt evaluation
  17. A typical eval workflow
  18. Generating test datasets
  19. Running the eval
  20. Model based grading
  21. Code based grading
  22. Exercise on prompt evals
  23. Quiz on prompt evaluation
  24. Prompt engineering
  25. Being clear and direct
  26. Being specific
  27. Structure with XML tags
  28. Providing examples
  29. Exercise on prompting
  30. Quiz on prompt engineering techniques
  31. Introducing tool use
  32. Project overview
  33. Tool functions
  34. Tool schemas
  35. Handling message blocks
  36. Sending tool results
  37. Multi-turn conversations with tools
  38. Implementing multiple turns
  39. Using multiple tools
  40. Fine grained tool calling
  41. The text edit tool
  42. The web search tool
  43. Quiz on tool use with Claude
  44. Introducing Retrieval Augmented Generation
  45. Text chunking strategies
  46. Text embeddings
  47. The full RAG flow
  48. Implementing the RAG flow
  49. BM25 lexical search
  50. A Multi-Index RAG pipeline
  51. Extended thinking
  52. Image support
  53. PDF support
  54. Citations
  55. Prompt caching
  56. Rules of prompt caching
  57. Prompt caching in action
  58. Code execution and the Files API
  59. Quiz on features of Claude
  60. Introducing MCP
  61. MCP clients
  62. Project setup
  63. Defining tools with MCP
  64. The server inspector
  65. Implementing a client
  66. Defining resources
  67. Accessing resources
  68. Defining prompts
  69. Prompts in the client
  70. MCP review
  71. Quiz on Model Context Protocol
  72. Anthropic apps
  73. Claude Code setup
  74. Claude Code in action
  75. Enhancements with MCP servers
  76. Agents and workflows
  77. Parallelization workflows
  78. Chaining workflows
  79. Routing workflows
  80. Agents and tools
  81. Environment inspection
  82. Workflows vs agents
  83. Quiz on Agents and Workflows
  84. Final Assessment
  85. Course Wrap Up
  86. What You'll Learn
  87. What You'll Learn
  88. What You'll Learn
  89. What You'll Learn
  90. What You'll Learn
  91. What You'll Learn
  92. What You'll Learn

Введение: Ваш первый запрос к Claude API

Добро пожаловать в Anthropic Academy! Этот урок является вашим первым шагом к разработке с использованием Claude API. Мы покажем, как отправить ваш первый запрос к Claude и получить от него ответ, используя Python. Понимание этих основ критически важно для создания более сложных интерактивных приложений и систем на базе больших языковых моделей (LLM).

В этом руководстве мы рассмотрим все необходимые шаги: от настройки вашей среды разработки до отправки запроса и извлечения полезной информации из ответа Claude.

Подготовка к работе с API Claude

Прежде чем мы сможем отправить наш первый запрос к Claude, необходимо подготовить рабочую среду. Это включает установку необходимых библиотек и безопасную настройку вашего API-ключа.

Установка зависимостей

Для начала установим библиотеки anthropic (официальный Python SDK для Claude API) и python-dotenv (для безопасного управления переменными окружения). Если вы работаете в Jupyter Notebook или IPython, используйте префикс %pip:

%pip install anthropic python-dotenv

Если вы используете обычный Python скрипт, достаточно команды pip install в вашей командной строке или терминале.

Безопасное хранение API-ключа

Ваш API-ключ — это конфиденциальная информация, которую никогда не следует напрямую встраивать в код или коммитить в систему контроля версий (например, Git). Лучший и наиболее безопасный способ — использовать файл .env для хранения ключа.

Создайте файл с именем .env в той же директории, что и ваш скрипт или Jupyter-ноутбук, и добавьте в него следующую строку, заменив "your-api-key-here" на ваш реальный API-ключ, который вы получили от Anthropic:

ANTHROPIC_API_KEY="your-api-key-here"

Всегда добавляйте .env в ваш файл .gitignore, чтобы случайно не опубликовать ключ в публичном репозитории.

Инициализация клиента API

Теперь, когда ключ настроен, мы можем загрузить его из файла .env и инициализировать клиент Anthropic. Этот клиент будет служить основным интерфейсом для всех ваших запросов к API Claude.

from dotenv import load_dotenv
load_dotenv()

from anthropic import Anthropic

client = Anthropic()
model = "claude-sonnet-4-0"

Здесь мы сначала загружаем переменные окружения с помощью load_dotenv(). Затем мы импортируем класс Anthropic и создаем его экземпляр, который сохраняем в переменной client. Также мы определяем, какую конкретную модель Claude будем использовать для наших запросов; в данном случае это claude-sonnet-4-0.

Отправка запросов с помощью client.messages.create()

Основная функция для взаимодействия с Claude через API — это client.messages.create(). Она позволяет отправить сообщение (или серию сообщений) модели и получить от нее ответ.

Эта функция принимает несколько ключевых параметров:

Понимание max_tokens

Параметр max_tokens очень важен. Если вы установите его, скажем, в 1000, Claude прекратит генерацию ответа после достижения 1000 токенов, даже если у него есть что еще сказать. Важно понимать, что Claude не стремится достичь этого лимита; он просто генерирует ответ, который считает уместным, и останавливается, если достигает максимального значения. Это помогает контролировать расходы и предотвращать слишком длинные ответы, которые могут быть нежелательны для вашего приложения.

Структура параметра messages

Параметр messages представляет собой историю беседы между вами и Claude, очень похожую на чат. Это список словарей, где каждый словарь описывает одно сообщение. Существует два основных типа сообщений:

Каждое сообщение должно быть словарем с двумя ключами: "role" (либо "user", либо "assistant") и "content" (собственно текст сообщения).

Ваш первый запрос к Claude

Теперь, когда мы понимаем основные компоненты, давайте соберем все вместе и отправим наш первый запрос к Claude. Предположим, что вы уже выполнили шаги по установке и инициализации клиента, как описано выше. Вот полный пример кода для отправки простого запроса:

message = client.messages.create(
    model=model,
    max_tokens=1000,
    messages=[
        {
            "role": "user",
            "content": "What is quantum computing? Answer in one sentence"
        }
    ]
)

В этом примере мы просим Claude объяснить, что такое квантовые вычисления, одним предложением. Мы используем модель, определенную ранее (claude-sonnet-4-0), и устанавливаем максимальный лимит токенов в 1000. Список messages содержит одно сообщение от пользователя с нашим запросом.

Когда вы запустите этот код, Claude обработает ваш запрос и вернет объект ответа, содержащий сгенерированный текст, а также метаданные о запросе, такие как использованные токены и идентификатор сообщения.

Извлечение ответа Claude

Объект ответа, который возвращает client.messages.create(), содержит много полезной информации, но чаще всего вам нужен только сгенерированный текст. Вы можете получить его, обратившись к атрибутам объекта следующим образом:

print(message.content[0].text)

Этот код извлечет чистый, читаемый текст из ответа Claude. Например, вы можете получить что-то вроде:

"Quantum computing is a type of computation that leverages quantum mechanics principles like superposition and entanglement to process information using quantum bits (qubits), potentially solving certain complex problems exponentially faster than classical computers."

Обратите внимание, что message.content — это список, так как Claude может генерировать несколько частей контента (например, текст и изображения, хотя в этом простом случае это будет только одна текстовая часть). Поэтому мы обращаемся к первому элементу списка ([0]), а затем к его текстовому атрибуту (.text).

Заключение

Поздравляем! Теперь вы знаете, как сделать свой первый запрос к Claude API. Освоив эти основы, вы можете начать экспериментировать с различными промптами, строить более сложные диалоги и интегрировать возможности Claude в свои приложения. Это лишь первый шаг в увлекательном мире разработки с большими языковыми моделями (LLM). В следующих уроках мы углубимся в такие темы, как потоковая передача ответов, использование инструментов, RAG (Retrieval Augmented Generation) и многое другое.