5 сентября 2025 г. (изменено: 5 сентября 2025 г.)

Канал: @cherkashindev

1 138

Надеюсь, все уже перевернули календарь 🗓️, и теперь снова можно поговорить про AI.

Все вокруг только и говорят о том, как они используют AI для разработки, но как интегрировать AI в продукт?

Ещё недавно для этого использовался JSON Mode. Для этого было достаточно указать:

  • { "type": "json_object" }
  • И в системном промпте указать, что модель должна вернуть JSON.

Но JSON Mode гарантирует лишь то, что модель вернёт валидный JSON, при этом далеко не факт, что он будет соответствовать JSON-схеме, которая нужна вам.

Эту проблему решает более современный подход — Structured Output.

Structured Output позволяет задать схему данных, и модель обязана вернуть результат, который ей соответствует. То есть мы получаем не “похоже на JSON”, а чётко определённую структуру.

 
import OpenAI from "openai";
 
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
 
const response = await client.chat.completions.create({
  model: "gpt-4.1",
  messages: [
    { role: "system", content: "Ты ассистент, который советует фильмы." },
    { role: "user", content: "Подскажи хороший фильм для пятничного вечера." }
  ],
  response_format: {
    type: "json_schema",
    json_schema: {
      name: "movie_suggestion",
      schema: {
        type: "object",
        properties: {
          title: { type: "string" },
          genre: { type: "string" },
          year: { type: "integer" }
        },
        required: ["title", "genre", "year"]
      }
    }
  }
});
 
console.log(response.choices[0].message.parsed);

Что здесь происходит:

  • Системный промпт задаёт роль модели: она должна советовать фильмы.
  • json_schema описывает структуру ответа: объект с тремя обязательными полями — title (строка), genre (строка), year (число).

В итоге при любом запросе на тему фильмов модель вернёт именно такой объект, и его можно использовать в коде — например, выводить в UI или сохранять в базу. Но обработку пограничных случаев в любом случае добавить стоит.

Ещё по теме:


А вы интегрируете AI в свои продукты?

  • 😎 конечно
  • 👀 пока нет, присматриваемся
  • 😈 выпиливаем

@cherkashindev #ai

👀 10 👍 6 😈 4 😎 4 👎 1