Вопрос с собеседования · AI и LLM

Как получить от модели JSON по схеме Pydantic и проверить его?

JuniorПромпты и структурированный вывод
Ещё спрашивают так:
  • Как использовать Pydantic с LLM?
  • Как извлечь данные из текста в виде объекта?
Коротко

Описать результат классом Pydantic (поля, типы, обязательность, описания), передать его JSON-схему в API в режиме структурированного вывода (или как схему инструмента), получить ответ и провалидировать тем же классом. При ошибке валидации — повторить запрос с текстом ошибки или вернуть понятный отказ. Библиотеки вроде Instructor делают это за вас.

  • Описания полей попадают в схему и помогают модели понять, что туда писать
  • Необязательные поля — Optional, иначе модель выдумает значение
  • Валидация ловит форму и типы; смысл (верная ли сумма) проверяют отдельно

А ещё Ограничивайте значения перечислениями (Literal, Enum) там, где их набор известен

Подробно

Пример:

from typing import Literal, Optional
from pydantic import BaseModel, Field

class Ticket(BaseModel):
    category: Literal["доставка", "оплата", "возврат", "другое"]
    order_id: Optional[str] = Field(None, description="Номер заказа, если указан")
    urgent: bool

raw = call_model(text, schema=Ticket.model_json_schema())
ticket = Ticket.model_validate_json(raw)

Обработка ошибок: перехватить ValidationError, отправить модели сообщение с ошибкой и попросить исправить (1–2 попытки), затем записать случай в лог для разбора.

Что хотят услышать

  • Pydantic-класс и его JSON-схема.
  • Структурированный вывод в API.
  • Валидация и повтор при ошибке.
  • Optional и перечисления.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Достаточно написать в промпте «верни JSON» и разобрать ответ без проверки
  • ✗Pydantic проверяет, правильные ли факты извлекла модель
  • ✓Схему класса — в структурированный вывод, ответ — валидировать им же
  • ✗Все поля стоит делать обязательными — так модель точнее извлекает данные из текста

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования