first commit
This commit is contained in:
57
services/geminiService.ts
Normal file
57
services/geminiService.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
import { GoogleGenAI } from "@google/genai";
|
||||
|
||||
// Initialize Gemini
|
||||
// Note: In a real production app, backend proxy is preferred for key safety.
|
||||
// For this demo, we assume environment variable usage as per instructions.
|
||||
const ai = new GoogleGenAI({ apiKey: process.env.API_KEY });
|
||||
|
||||
export const generateBusinessDescription = async (name: string, category: string, keywords: string): Promise<string> => {
|
||||
try {
|
||||
const model = 'gemini-2.5-flash';
|
||||
const prompt = `
|
||||
Tu es un expert en copywriting marketing pour Afropreunariat.
|
||||
Rédige une description professionnelle, attrayante et optimisée SEO pour une entreprise.
|
||||
|
||||
Nom de l'entreprise : ${name}
|
||||
Secteur : ${category}
|
||||
Mots-clés/Services : ${keywords}
|
||||
|
||||
La description doit faire environ 80-100 mots, être en français, inspirer confiance et professionnalisme.
|
||||
Ne mets pas de guillemets au début ou à la fin.
|
||||
`;
|
||||
|
||||
const response = await ai.models.generateContent({
|
||||
model,
|
||||
contents: prompt,
|
||||
});
|
||||
|
||||
return response.text || "Impossible de générer une description pour le moment.";
|
||||
} catch (error) {
|
||||
console.error("Gemini API Error:", error);
|
||||
return "Erreur lors de la génération. Veuillez rédiger votre description manuellement.";
|
||||
}
|
||||
};
|
||||
|
||||
export const generateBusinessIdeas = async (category: string): Promise<string[]> => {
|
||||
try {
|
||||
const model = 'gemini-2.5-flash';
|
||||
const prompt = `Donne-moi 3 idées de slogans courts et percutants pour une entreprise dans le secteur : ${category}. Retourne uniquement une liste JSON de chaînes de caractères.`;
|
||||
|
||||
// For simplicity in this demo, we ask for text and split lines,
|
||||
// but JSON schema is better for robust apps.
|
||||
const response = await ai.models.generateContent({
|
||||
model,
|
||||
contents: prompt,
|
||||
config: {
|
||||
responseMimeType: "application/json"
|
||||
}
|
||||
});
|
||||
|
||||
const json = JSON.parse(response.text || "[]");
|
||||
if (Array.isArray(json)) return json;
|
||||
return ["L'excellence au service de l'Afrique", "Innover pour demain", "Votre partenaire de confiance"];
|
||||
|
||||
} catch (error) {
|
||||
return ["Votre slogan ici"];
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user