50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
const axios = require('axios');
|
|
const dotenv = require('dotenv');
|
|
|
|
dotenv.config();
|
|
|
|
const apiKey = process.env.GOOGLE_GEMINI_API_KEY;
|
|
|
|
/**
|
|
* Formatea y organiza un texto con buena indentación y explicaciones.
|
|
* @param {String} text - Texto a formatear y organizar.
|
|
* @returns {Promise<String>} - Texto formateado y organizado.
|
|
*/
|
|
const formatText = async (text) => {
|
|
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=${apiKey}`;
|
|
|
|
// Definimos un prompt específico para pedir una reformateación y organización del texto
|
|
const prompt = `
|
|
Por favor, organiza y formatea el siguiente texto con buena indentación y estructura,
|
|
proporciona explicaciones claras y usa subtítulos si es necesario.
|
|
No modifiques el contenido, pero haz que sea fácil de leer y entender.
|
|
|
|
Texto a organizar:
|
|
|
|
${text}
|
|
`;
|
|
|
|
try {
|
|
const response = await axios.post(
|
|
url,
|
|
{
|
|
contents: [{ parts: [{ text: prompt }] }]
|
|
},
|
|
{
|
|
headers: { 'Content-Type': 'application/json' }
|
|
}
|
|
);
|
|
|
|
// Extrae el texto organizado de la respuesta
|
|
const formattedText = response.data.candidates[0].content.parts[0].text;
|
|
return formattedText;
|
|
} catch (error) {
|
|
console.error('Error al formatear el texto:', JSON.stringify(error.response?.data, null, 2));
|
|
return text; // Devuelve el texto original en caso de error
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
formatText
|
|
};
|