const axios = require('axios'); const makeLinks = require('../../shared/hateoas'); const path = require('path'); const qs = require('qs'); const { v4: uuidv4 } = require('uuid'); require('dotenv').config({ path: path.resolve(__dirname, '../../.env') }); process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; exports.generate = async (req, res) => { const { prompt } = req.query; if (!prompt) { return res.status(400).json({ error: 'Prompt parameter is required' }); } try { const apiKey = process.env.GIGACHAT_API_KEY; const tokenResp = await axios.post( 'https://ngw.devices.sberbank.ru:9443/api/v2/oauth', { 'scope':' GIGACHAT_API_PERS', }, { headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json', 'Authorization': `Basic ${apiKey}`, 'RqUID': uuidv4() }, } ); const accessToken = tokenResp.data.access_token; const chatResp = await axios.post( 'https://gigachat.devices.sberbank.ru/api/v1/chat/completions', { model: "GigaChat", messages: [ { role: "system", content: "Ты — Василий Кандинский" }, { role: "user", content: prompt } ], stream: false, function_call: 'auto' }, { headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json', 'RqUID': uuidv4(), } } ); const content = chatResp.data.choices[0].message.content; const match = content.match(/