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

Введение в Retrieval Augmented Generation (RAG)

В мире больших языковых моделей (LLM), таких как Claude, мы часто сталкиваемся с необходимостью обработки огромных объемов информации. Эти модели невероятно мощны, но у них есть одно фундаментальное ограничение: размер контекстного окна (context window), то есть максимальное количество token'ов, которое они могут обработать за один запрос (prompt). Именно здесь на помощь приходит техника, известная как Retrieval Augmented Generation (RAG). RAG — это подход, который позволяет Claude эффективно работать с очень большими документами или целыми базами знаний, которые значительно превышают лимиты одного запроса, предоставляя модели только самую релевантную информацию в нужный момент.

Проблема работы с большими документами

Представьте, что у вас есть 800-страничный финансовый отчет, и вы хотите задать Claude очень конкретный вопрос, например: "Какие факторы риска указаны для этой компании?". Чтобы получить точный ответ, Claude должен иметь доступ к соответствующей информации из документа. Однако, как мы уже упоминали, существует жесткий лимит на объем текста, который можно включить в один prompt.

Первый, самый очевидный подход — это попытаться включить весь текст документа в ваш prompt вместе с вопросом пользователя. Ваш запрос мог бы выглядеть примерно так:

Ответь на вопрос пользователя, используя информацию из финансового документа.

<user_question>
{user_question}
</user_question>

<financial_document>
{financial_document}
</financial_document>

Этот подход имеет серьезные ограничения, которые делают его непрактичным для большинства реальных сценариев:

Таким образом, простое "запихивание" всего документа в prompt не является масштабируемым или экономически эффективным решением.

Решение: Retrieval Augmented Generation (RAG)

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

  1. Предварительная обработка (Chunking): На этом этапе вы берете большой документ (или набор документов) и разбиваете его на более мелкие, управляемые фрагменты, или "чанки" (chunks). Существует множество стратегий для разбиения: можно делить на части фиксированного размера, по абзацам, по разделам документа (например, на основе заголовков), или даже использовать семантическое разбиение, чтобы каждый чанк содержал одну связную мысль.
  2. Механизм поиска (Retrieval): Когда пользователь задает вопрос, система RAG немедленно ищет наиболее релевантные чанки из вашей коллекции, которые, вероятно, содержат ответ на этот вопрос. Этот поиск может осуществляться различными способами, например, с помощью векторного поиска (используя embeddings для сравнения семантической близости запроса и чанков) или традиционного полнотекстового поиска по ключевым словам.
  3. Генерация (Generation): Только после того, как наиболее релевантные чанки найдены, они включаются в prompt вместе с исходным вопросом пользователя и отправляются Claude. Таким образом, Claude получает только ту информацию, которая необходима для ответа, без лишнего "шума".

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

Преимущества RAG очевидны:

Вызовы и соображения при использовании RAG

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

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

Заключение

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