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

Разработка эффективных промптов (инструкций) для больших языковых моделей (LLM), таких как Claude, — это одновременно искусство и наука. Часто инженеры промптов полагаются на интуицию, но для создания по-настоящему надежных и высокопроизводительных систем требуется более строгий подход. Именно здесь на помощь приходит систематическая оценка промптов, или eval workflow. Этот процесс позволяет объективно измерять качество ответов Claude, сравнивать различные версии промптов и целенаправленно улучшать их.

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

Шаг 1: Разработка исходного промпта

Первый шаг в любом процессе оценки — это создание базового промпта. Это отправная точка, которую мы будем стремиться улучшить. Цель состоит в том, чтобы начать с чего-то простого, что выполняет основную задачу, а затем постепенно добавлять детали и уточнения.

Для нашего примера мы используем очень простой промпт, который просит Claude ответить на вопрос пользователя:

prompt = f"""
Пожалуйста, ответьте на вопрос пользователя:
{question}
"""

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

Шаг 2: Создание оценочного набора данных (Eval Dataset)

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

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

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

Шаг 3: Прогон через Claude

Теперь, когда у нас есть промпт и набор данных, пришло время "прогнать" их через Claude. На этом этапе мы берем каждый вопрос из нашего Eval Dataset, объединяем его с шаблоном промпта, чтобы создать полный промпт, а затем отправляем каждый из них в Claude для получения ответов.

Например, первый вопрос из нашего набора данных ("Сколько будет 2+2?") будет объединен с шаблоном промпта, формируя запрос:

Пожалуйста, ответьте на вопрос пользователя:
Сколько будет 2+2?

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

Например, Claude может ответить:

Эти ответы являются сырым материалом, который мы будем оценивать на следующем шаге.

Шаг 4: Оценка ответов с помощью "Грейдера"

После того как Claude сгенерировал ответы на все вопросы из нашего набора данных, наступает критический этап — оценка этих ответов. Для этого используется "грейдер" (grader). Грейдер — это система или человек, который оценивает качество ответов Claude, анализируя как исходный вопрос, так и полученный ответ.

Цель этого шага — получить объективную оценку. Обычно это делается по шкале, например, от 1 до 10, где 10 представляет собой идеальный ответ, а более низкие баллы указывают на необходимость улучшения. Грейдер может быть реализован как другой LLM, специально настроенный для оценки, или как группа экспертов-людей, которые вручную просматривают и оценивают каждый ответ.

В нашем примере грейдер может присвоить следующие оценки:

Средний балл по всем вопросам дает нам объективную меру производительности нашего текущего промпта: (10 + 4 + 9) ÷ 3 = 7.66. Этот средний балл становится нашей базовой метрикой, с которой мы будем сравнивать будущие итерации промпта.

Шаг 5: Итерация и улучшение промпта

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

Предположим, мы заметили, что ответы Claude на некоторые вопросы были слишком краткими. Мы можем модифицировать наш промпт, добавив дополнительное указание на детализацию:

prompt = f"""
Пожалуйста, ответьте на вопрос пользователя:
{question}
Ответьте на вопрос с достаточной детализацией.
"""

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

Этот цикл "изменение промпта -> оценка -> анализ -> изменение промпта" является основой эффективного инжиниринга промптов. Вы можете продолжать итерации, добавляя или изменяя инструкции, экспериментируя с различными формулировками, пока не достигнете желаемого уровня производительности.

Преимущества систематической оценки промптов

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

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