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

Введение в инженерию промптов

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

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

Итеративный процесс улучшения промптов

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

Вы повторяете последние два шага (применение техник и проверка) до тех пор, пока не будете полностью удовлетворены производительностью промпта. Каждая итерация должна демонстрировать измеримое улучшение в ваших показателях оценки.

Настройка системы оценки: Пример с планом питания

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

Для эффективной инженерии промптов необходима надежная система оценки. В реальных проектах это часто реализуется с помощью специализированных классов или функций, которые автоматизируют генерацию тестовых данных и оценку ответов модели. Например, можно представить себе некий класс PromptEvaluator, который управляет процессом. При работе с API LLM важно учитывать ограничения по количеству запросов (rate limits). Поэтому такие системы часто позволяют контролировать параллелизм выполнения задач, например, с помощью параметра max_concurrent_tasks, чтобы избежать ошибок и оптимизировать использование API.

Генерация тестовых данных

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

На этапе разработки рекомендуется использовать небольшое количество тестовых случаев (например, 2-3), чтобы ускорить цикл итераций. Это позволяет быстро проверять изменения, не дожидаясь обработки большого объема данных. Для окончательной валидации количество тестовых случаев можно увеличить.

Создание базового промпта

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

Что должен есть этот человек?
- Рост: [рост_спортсмена] см
- Вес: [вес_спортсмена] кг
- Цель: [цель_спортсмена]
- Диетические ограничения: [ограничения_спортсмена]

Этот базовый промпт, вероятно, даст неоптимальные результаты. Модель Claude может выдать общие рекомендации, но, скорее всего, не предоставит детализированный, структурированный план. Однако он дает вам отправную точку, относительно которой можно измерять прогресс. В реальном приложении этот промпт будет обернут в функцию, которая динамически подставляет значения из тестовых данных и отправляет их модели через API, например, как часть пользовательского сообщения (user message) в диалоге с Claude.

Определение критериев оценки

При проведении оценки важно не только получить ответ, но и понять, насколько хорошо он соответствует вашим ожиданиям. Поэтому при запуске оценки вы можете указать дополнительные критерии, которые модель-оценщик должна учитывать. Для нашего примера с планом питания это могут быть:

Эти дополнительные критерии помогают гарантировать, что ваш промпт оценивается по конкретным требованиям, которые важны для вашего сценария использования. Они направляют модель-оценщик в ее анализе и позволяют получить более объективную и детализированную обратную связь.

Анализ результатов и дальнейшие шаги

После проведения оценки вы получите как числовую оценку, так и подробный отчет, часто в формате HTML. Отчет покажет вам, как именно был выполнен каждый тестовый случай, включая обоснование оценки, данное моделью-оценщиком. Не расстраивайтесь из-за низких начальных оценок — оценка 2.3 из 10 является типичной для первой попытки. Цель состоит в том, чтобы видеть последовательное улучшение по мере применения инженерных методов.

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

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

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