Skip to content
Snippets Groups Projects

Update etas genai

Merged Tuan Hoang Dinh Anh requested to merge tuanh/backend-core:update-etas-genai into main
6 files
+ 361
60
Compare changes
  • Side-by-side
  • Inline
Files
6
@@ -267,8 +267,15 @@ const getInstance = (environment = 'prod') => {
const generateAIContent = async (req, res) => {
try {
res.writeHead(200, {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
Connection: 'keep-alive',
});
res.write('');
res.flush();
const { environment } = req.params;
const { prompt } = req.body;
const authorizationData = etasAuthorizationData.getAuthorizationData();
let token = authorizationData.accessToken;
if (!token || moment().diff(authorizationData.createdAt, 'seconds') >= authorizationData.expiresIn) {
@@ -279,30 +286,30 @@ const generateAIContent = async (req, res) => {
createdAt: new Date(),
});
}
const instance = getInstance(environment);
setupClient(token);
const response = await axios.post(
`https://${instance}/r2mm/GENERATE_AI`,
{ prompt },
{
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
Accept: 'application/json, text/plain, */*',
},
}
);
return res.status(200).json(response.data);
const response = await axios.post(`https://${instance}/generation`, req.body, {
headers: {
Authorization: `Bearer ${token}`,
},
responseType: 'stream',
});
const stream = response.data;
stream.on('data', (data) => {
res.write(data);
res.flush();
});
stream.on('end', () => {
res.end();
});
} catch (error) {
console.error('Error generating AI content:', error?.response || error);
if (axios.isAxiosError(error)) {
return res.status(error.response.status || 502).json(error.response.data);
}
return res.status(500).json({ message: 'Failed to generate AI content' });
res.write(
`data: ${JSON.stringify({
code: 500,
message: 'Error generating AI content',
})}\n\n`
);
res.end();
}
};
Loading