Claude в Google Vertex AI

Подключение Claude через Google Cloud — авторизация, регионы, биллинг.

100 уроков, первые 3 бесплатно. Полный доступ: 1490 руб.

Уроки курса

  1. Welcome to the course
  2. Overview of Claude models
  3. Accessing the API
  4. Vertex AI Setup
  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. Controlling model output
  14. Structured data
  15. Structured data exercise
  16. Quiz on accessing Claude with the API
  17. Prompt evaluation
  18. A typical eval workflow
  19. Generating test datasets
  20. Running the eval
  21. Model based grading
  22. Code based grading
  23. Exercise on prompt evals
  24. Quiz on prompt evaluation
  25. Prompt engineering
  26. Being clear and direct
  27. Being specific
  28. Structure with XML tags
  29. Providing examples
  30. Exercise on prompting
  31. Quiz on prompt engineering techniques
  32. Introducing tool use
  33. Project overview
  34. Tool functions
  35. Tool schemas
  36. Handling message blocks
  37. Sending tool results
  38. Multi-turn conversations with tools
  39. Implementing multiple turns
  40. Using multiple tools
  41. The batch tool
  42. Tools for structured data
  43. The text edit tool
  44. The web search tool
  45. Quiz on tool use with Claude
  46. Introducing Retrieval Augmented Generation
  47. Text chunking strategies
  48. Text embeddings
  49. The full RAG flow
  50. Implementing the RAG flow
  51. BM25 lexical search
  52. A Multi-index RAG pipeline
  53. Reranking results
  54. Contextual retrieval
  55. Quiz on Retrieval Augmented Generation
  56. Extended thinking
  57. Image support
  58. PDF support
  59. Citations
  60. Prompt caching
  61. Rules of prompt caching
  62. Prompt caching in action
  63. Quiz on features of Claude
  64. Introducing MCP
  65. MCP clients
  66. Project setup
  67. Defining tools with MCP
  68. The server inspector
  69. Implementing a client
  70. Defining resources
  71. Accessing resources
  72. Defining prompts
  73. Prompts in the client
  74. MCP review
  75. Quiz on Model Context Protocol
  76. Anthropic apps
  77. Claude Code setup
  78. Claude Code in action
  79. Enhancements with MCP servers
  80. Parallelizing Claude Code
  81. Automated debugging
  82. Computer use
  83. How computer use works
  84. Agents and workflows
  85. Parallelization workflows
  86. Chaining workflows
  87. Routing workflows
  88. Agents and tools
  89. Environment inspection
  90. Workflows vs agents
  91. Quiz on agents and workflows
  92. Final assessment quiz
  93. Course Wrap Up
  94. Course Description
  95. Course Description
  96. Course Description
  97. Course Description
  98. Course Description
  99. Course Description
  100. Course Description

Оценка кода, сгенерированного ИИ: Зачем нужна автоматическая проверка синтаксиса?

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

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

Принципы работы автоматической оценки кода

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

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

Механизмы проверки синтаксиса

Для проверки синтаксической корректности сгенерированного кода можно использовать специализированные функции-помощники. Эти функции пытаются разобрать (спарсить) выходные данные модели, используя стандартные библиотеки соответствующего языка или формата. Если парсинг проходит успешно, это означает, что синтаксис верен; в противном случае — есть ошибка.

Рассмотрим, как это работает на примерах для различных форматов:

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

Требования к формату набора данных для оценки

Чтобы система оценки кода знала, какой именно валидатор использовать (для JSON, Python или Regex), ваши тестовые примеры должны явно указывать ожидаемый формат вывода. Это критически важно для корректной работы автоматической проверки.

Вы можете обновить свои промпты для генерации набора данных таким образом, чтобы они автоматически включали это поле формата в структуру ожидаемого вывода. Например, в вашем тестовом случае может быть поле "expected_format": "python" или "expected_format": "json". Это позволяет системе оценки динамически выбирать соответствующую функцию валидации для каждого конкретного ответа модели.

Улучшение ясности промптов для генерации кода

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

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

"Ответьте только кодом на Python. Не добавляйте никаких комментариев или пояснений."

Кроме того, вы можете использовать предварительно заполненное сообщение от ассистента, начинающееся с блока кода, чтобы побудить модель возвращать только "сырой" код. Например, добавление add_assistant_message(messages, "```code") в историю диалога перед запросом к Claude подсказывает модели начать генерацию содержимого кода без необходимости явно указывать, будет ли это Python, JSON или Regex в самом ответе. Это помогает Claude сразу перейти к сути, генерируя чистый код.

Объединение оценок: Комплексный подход

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

model_score = grade_by_model(test_case, output)

syntax_score = grade_syntax(output, test_case)

final_score = (model_score + syntax_score) / 2

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

Тестирование и итеративное улучшение

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

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