Newer
Older
TelosDB / tools / gemini-rag-tool / utils / gemini-client.mjs
@楽曲作りまくりおじさん 楽曲作りまくりおじさん 19 hours ago 1015 bytes Refactor: reorganization of root and source directories and fix Error 1412
import axios from 'axios';
import dotenv from 'dotenv';
dotenv.config();

const modelName = process.env.GEMINI_MODEL || 'gemini-2.0-flash';

export async function generateText(prompt) {
    const apiKey = process.env.GEMINI_API_KEY;
    if (!apiKey) throw new Error('GEMINI_API_KEY is not set in .env');

    const interval = parseInt(process.env.GEMINI_API_INTERVAL_MS) || 5000;
    console.log(`[generateText] Waiting ${interval}ms before API call...`);
    await new Promise(resolve => setTimeout(resolve, interval));

    const url = `https://generativelanguage.googleapis.com/v1beta/models/${modelName}:generateContent`;
    const payload = { contents: [{ parts: [{ text: prompt }] }] };

    try {
        const response = await axios.post(url, payload, {
            headers: { 'Content-Type': 'application/json', 'X-goog-api-key': apiKey },
            timeout: 60000
        });
        return response.data?.candidates?.[0]?.content?.parts?.[0]?.text || '';
    } catch (err) {
        throw err;
    }
}