5 сентября 2025 г. (изменено: 5 сентября 2025 г.)
Канал: @cherkashindev
Надеюсь, все уже перевернули календарь 🗓️, и теперь снова можно поговорить про 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