Расскажу, как на моём реальном проекте внедряются нейронки 🤖
Это не просто
«отправил данные по API с токеном и визуализировал результат»
1️⃣ Системный промпт 🧠
При любых интеграциях отдельно пишется системный промпт.
Он отвечает за:
🎭 роль модели (что она может и не может делать)
📐 формат ответа (строгая структура, строгая схема)
🚧 ограничения и правила
export const SYSTEM_PROMPT_V1 = `
You are an assistant helping to analyze user input.
Rules:
- Return JSON only
- If data is insufficient, return "INSUFFICIENT_DATA"
Output format:
{
"summary": string,
"confidence": number
}
`;
2️⃣ Анонимизация данных 🔐
Перед тем как отправить персональные данные, их обязательно нужно обезличить.
Мы сделали отдельный сервис анонимизации, который:
🧹 удаляет / маскирует персональные данные
🏷️ заменяет сущности на нейтральные имена
🛡️ гарантирует, что модель не видит реальные данные
Внутри сервиса анонимизации крутится отдельная логика замены данных.
POST /anonymize
{
"text": "Иван Иванов работает в компании X и живет в Москве"
}
function anonymize(text: string) {
return text
.replace(/[А-ЯЁ][а-яё]+ [А-ЯЁ][а-яё]+/g, "USER_NAME")
.replace(/Москва|Санкт-Петербург/g, "CITY");
}
3️⃣ Оркестратор вместо прямого вызова AI 🧩
Мы не дергаем ChatGPT напрямую ❌
Есть оркестратор, который:
🔁 управляет пайплайном
🤖 решает, какую модель использовать
🧠 оперирует контекстом, если он есть
async function aiPipeline(rawInput: UserInput) {
const anonymized = await anonymizeService(rawInput);
const preparedPrompt = buildPrompt({
system: promptRegistry.v1,
user: anonymized.text,
});
const aiResponse = await callLLM(preparedPrompt);
const validated = validate(aiResponse);
return postProcess(validated);
}
4️⃣ Пост-обработка ответа ✅
Ответ модели это не конец. После ответа LLM мы:
🧪 валидируем структуру
🚫 фильтруем некорректные данные
🎯 приводим результат к виду, пригодному для UI / API
Только после этого мы начинаем видеть результат.
Сам пайплайн в реальности куда сложнее,
но база именно такая.
При интеграции важно учесть архитектуру, безопасность, контроль и ограничения