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

Введение в использование инструментов (Tool Use)

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

Проблема без инструментов

Когда пользователи задают Claude вопросы, требующие актуальной информации, модель сталкивается с ограничениями. Например, если кто-то спросит: «Какая сейчас погода в Сан-Франциско, Калифорния?», Claude вынужден будет ответить что-то вроде: «Извините, но у меня нет доступа к актуальной информации о погоде». Это создает разочаровывающий пользовательский опыт, поскольку люди ожидают, что ИИ сможет помочь с данными в реальном времени, особенно когда теоретически это возможно, если бы у модели был доступ к нужным источникам.

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

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

Как работает использование инструментов (Tool Use)

Использование инструментов — это структурированный процесс взаимодействия между вашим приложением и Claude, который позволяет модели запрашивать и получать свежую информацию. Этот процесс следует определенному шаблону «запрос-ответ»:

  1. Начальный запрос от пользователя: Ваше приложение получает запрос от пользователя (например, «Какая погода в Нью-Йорке?»). Вместе с этим запросом вы отправляете Claude инструкции о том, как получить дополнительные данные из внешних источников. Эти инструкции, часто называемые определениями инструментов (tool definitions), описывают доступные функции (например, get_current_weather(location)) и их параметры.
  2. Анализ и запрос инструмента от Claude: Claude анализирует вопрос пользователя и предоставленные определения инструментов. Если модель определяет, что для ответа ей нужна дополнительная информация, она «решает» использовать один из доступных инструментов. Claude генерирует запрос на вызов инструмента, указывая, какой инструмент ей нужен и с какими аргументами (например, call_tool(name='get_current_weather', location='New York')).
  3. Выполнение инструмента на вашем сервере: Ваше приложение или сервер перехватывает запрос Claude на вызов инструмента. Затем ваш сервер выполняет соответствующий код, который вызывает внешний API (например, погодный API) или обращается к базе данных, чтобы получить запрошенную информацию.
  4. Возврат результата инструмента Claude: После получения данных от внешнего источника, ваш сервер отправляет эти данные обратно Claude. Эти данные представляются как «результат» выполнения инструмента.
  5. Генерация окончательного ответа Claude: Claude получает результат выполнения инструмента. Теперь у него есть как исходный вопрос пользователя, так и свежие данные. Используя всю эту информацию, Claude генерирует полный, точный и актуальный ответ для пользователя.

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

Пример на практике: Запрос погоды

Давайте рассмотрим, как этот процесс работает на примере вопроса о погоде:

  1. Пользовательский запрос: Пользователь спрашивает: «Какая сейчас погода в Лондоне?» Ваше приложение отправляет этот запрос Claude, а также описание инструмента get_current_weather, который принимает параметр location.
  2. Решение Claude: Claude понимает, что для ответа ему нужна актуальная информация о погоде. Он «решает» вызвать инструмент get_current_weather с аргументом location='London'.
  3. Действие сервера: Ваш сервер получает от Claude запрос на вызов get_current_weather('London'). Ваш код выполняет вызов внешнего погодного API, передавая «London» в качестве параметра.
  4. Получение данных: Погодный API возвращает данные, например: «Температура: 15°C, облачно, небольшой дождь».
  5. Отправка данных Claude: Ваш сервер отправляет эти данные обратно Claude как результат выполнения инструмента.
  6. Окончательный ответ: Claude получает данные о погоде и формулирует ответ: «В Лондоне сейчас 15°C, облачно, возможен небольшой дождь.»

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

Преимущества использования инструментов

Внедрение инструментов для Claude открывает множество возможностей и приносит значительные преимущества:

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