Разработка с 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

Добро пожаловать в курс по разработке с Claude API! В этом модуле мы погрузимся в увлекательный практический проект, который научит Claude устанавливать напоминания на будущие даты. На первый взгляд задача может показаться простой, но она выявляет несколько интересных проблем, которые мы будем решать с помощью мощного механизма пользовательских инструментов (custom tools).

Наша цель предельно ясна: мы хотим иметь возможность обратиться к Claude с запросом, например, "Установи напоминание о приеме у врача. Это через неделю, в четверг", и получить от него подтверждение вроде "Хорошо, я напомню вам". Однако, чтобы эта, казалось бы, простая функция заработала, нам предстоит преодолеть ряд ограничений в том, как Claude обрабатывает время и управляет напоминаниями.

Почему создание системы напоминаний для Claude является сложной задачей?

Хотя Claude — это передовая большая языковая модель (LLM), способная понимать и генерировать текст на человеческом языке, у нее есть определенные врожденные ограничения, особенно когда речь идет о взаимодействии с динамичным реальным миром и выполнении точных временных расчетов. Для нашей системы напоминаний мы сталкиваемся с тремя ключевыми проблемами:

Каждое из этих ограничений представляет собой разрыв между тем, что Claude может делать "естественным" образом, и тем, что нам необходимо для создания полноценной и надежной системы напоминаний. Именно здесь на помощь приходят инструменты.

Решение: Расширение возможностей Claude с помощью инструментов (Tools)

Вместо того чтобы пытаться заставить Claude делать то, для чего он не предназначен, мы будем использовать подход, который является краеугольным камнем современной разработки с LLM: расширение возможностей модели с помощью инструментов (tools). Инструменты — это по сути функции или API-вызовы, которые мы предоставляем Claude. Когда Claude сталкивается с задачей, которую он не может решить самостоятельно, он может "вызвать" один из этих инструментов, передать ему необходимые параметры и использовать результат для формирования ответа или выполнения действия.

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

Разработка необходимых инструментов для нашей системы

Для решения описанных выше проблем мы разработаем три отдельных инструмента, каждый из которых будет выполнять свою специфическую функцию:

  1. Инструмент для получения текущей даты и времени (get_current_datetime):

    Claude необходимо точно знать текущую дату и время, чтобы правильно рассчитывать будущие события. Этот инструмент будет представлять собой простую функцию, которая при вызове возвращает актуальную текущую дату и время в стандартизированном формате (например, ISO 8601). Когда пользователь говорит "Напомни мне завтра", Claude может сначала вызвать get_current_datetime, чтобы узнать, что "завтра" означает относительно текущего момента.

  2. Инструмент для добавления продолжительности к дате и времени (add_duration_to_datetime):

    Поскольку Claude не всегда точен в арифметике дат, мы предоставим ему надежный инструмент для этой цели. Этот инструмент будет принимать начальную дату/время (полученную, например, от get_current_datetime) и продолжительность (например, "через неделю", "через 3 дня", "через 2 часа") в качестве параметров, а затем возвращать новую, точно рассчитанную дату и время. Это гарантирует, что все временные расчеты будут выполнены корректно и без ошибок, присущих LLM.

  3. Инструмент для установки напоминания в системе (set_reminder):

    Это ключевой инструмент, который позволит Claude фактически "установить" напоминание. Он будет принимать дату/время (вычисленную с помощью предыдущих инструментов) и текст напоминания, а затем взаимодействовать с внешней системой (например, базой данных, API календаря или сервисом уведомлений) для сохранения и активации напоминания. Этот инструмент является "руками" Claude, позволяющими ему выполнять действия за пределами своей языковой модели.

Мы будем реализовывать эти инструменты по очереди, начиная с самого простого. Такой подход позволит нам глубоко понять, как работает механизм вызова инструментов (tool calling), прежде чем переходить к более сложным функциям. В конечном итоге Claude сможет обрабатывать запросы на естественном языке, такие как "напомни мне через неделю о встрече", комбинируя эти инструменты для вычисления точного времени и установки напоминания в вашей системе.

Ключевой принцип работы с ИИ: Расширение через инструменты

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

В рамках этого курса мы подробно рассмотрим, как проектировать, реализовывать и интегрировать такие инструменты с Claude API, используя различные методы, включая tool use. К концу этого модуля вы не только создадите функциональную систему напоминаний, но и получите глубокое понимание того, как эффективно использовать инструменты для преодоления ограничений LLM и создания по-настоящему полезных и интерактивных приложений на базе Claude.