CognxSafeTrack commited on
Commit ·
6da0dd6
1
Parent(s): b073e6a
chore(qa): final QA adjustments for multimodal and search
Browse files
apps/api/src/services/ai/gemini-provider.ts
CHANGED
|
@@ -8,9 +8,11 @@ export class GeminiProvider implements LLMProvider {
|
|
| 8 |
private proModel: GenerativeModel;
|
| 9 |
|
| 10 |
constructor(apiKey: string) {
|
| 11 |
-
console.log('[GEMINI] Initializing
|
| 12 |
this.genAI = new GoogleGenerativeAI(apiKey);
|
|
|
|
| 13 |
this.flashModel = this.genAI.getGenerativeModel({ model: 'gemini-2.0-flash' });
|
|
|
|
| 14 |
this.proModel = this.genAI.getGenerativeModel({ model: 'gemini-1.5-pro' });
|
| 15 |
}
|
| 16 |
|
|
@@ -19,7 +21,7 @@ export class GeminiProvider implements LLMProvider {
|
|
| 19 |
// Use Pro for complex docs (OnePager/PitchDeck) - detected by prompt length or keyword
|
| 20 |
const isComplex = prompt.includes('PITCH_DECK') || prompt.includes('ONE_PAGER') || prompt.length > 2000;
|
| 21 |
const model = isComplex ? this.proModel : this.flashModel;
|
| 22 |
-
const modelName = isComplex ? 'gemini-1.5-pro' : 'gemini-
|
| 23 |
|
| 24 |
console.log(`[GEMINI] Generating structured data with ${modelName}... (Vision: ${!!imageUrl})`);
|
| 25 |
|
|
|
|
| 8 |
private proModel: GenerativeModel;
|
| 9 |
|
| 10 |
constructor(apiKey: string) {
|
| 11 |
+
console.log('[GEMINI] Initializing SDK...');
|
| 12 |
this.genAI = new GoogleGenerativeAI(apiKey);
|
| 13 |
+
// Standard model for normal requests
|
| 14 |
this.flashModel = this.genAI.getGenerativeModel({ model: 'gemini-2.0-flash' });
|
| 15 |
+
// Pro model for long context & complex doc generation
|
| 16 |
this.proModel = this.genAI.getGenerativeModel({ model: 'gemini-1.5-pro' });
|
| 17 |
}
|
| 18 |
|
|
|
|
| 21 |
// Use Pro for complex docs (OnePager/PitchDeck) - detected by prompt length or keyword
|
| 22 |
const isComplex = prompt.includes('PITCH_DECK') || prompt.includes('ONE_PAGER') || prompt.length > 2000;
|
| 23 |
const model = isComplex ? this.proModel : this.flashModel;
|
| 24 |
+
const modelName = isComplex ? 'gemini-1.5-pro' : 'gemini-2.0-flash';
|
| 25 |
|
| 26 |
console.log(`[GEMINI] Generating structured data with ${modelName}... (Vision: ${!!imageUrl})`);
|
| 27 |
|
apps/api/src/services/ai/index.ts
CHANGED
|
@@ -214,6 +214,8 @@ class AIService {
|
|
| 214 |
query = `startups concurrents ${cleanActivity} ${region} Sénégal solutions paiement UEMOA`;
|
| 215 |
} else if (dayNumber === 11) {
|
| 216 |
query = `benchmarks marges rentabilité ${cleanActivity} Afrique de l'Ouest tech business model`;
|
|
|
|
|
|
|
| 217 |
}
|
| 218 |
|
| 219 |
try {
|
|
@@ -284,7 +286,7 @@ class AIService {
|
|
| 284 |
📸 ANALYSE VISUELLE (MULTIMODAL) :
|
| 285 |
- L'utilisateur a envoyé une image comme preuve ou illustration.
|
| 286 |
- TU DOIS analyser visuellement cette image et intégrer ton constat dans le feedback.
|
| 287 |
-
-
|
| 288 |
- Si l'image contient des chiffres ou des contrats, extrais-les pour confirmer les données financières.` : ''}
|
| 289 |
|
| 290 |
⚠️ INTERDICTION ABSOLUE (Anti-Remediation Loop) :
|
|
|
|
| 214 |
query = `startups concurrents ${cleanActivity} ${region} Sénégal solutions paiement UEMOA`;
|
| 215 |
} else if (dayNumber === 11) {
|
| 216 |
query = `benchmarks marges rentabilité ${cleanActivity} Afrique de l'Ouest tech business model`;
|
| 217 |
+
} else if (dayNumber === 12) {
|
| 218 |
+
query = `benchmarks revenus levée de fonds analyse concurrents locaux ${cleanActivity} Afrique de l'Ouest`;
|
| 219 |
}
|
| 220 |
|
| 221 |
try {
|
|
|
|
| 286 |
📸 ANALYSE VISUELLE (MULTIMODAL) :
|
| 287 |
- L'utilisateur a envoyé une image comme preuve ou illustration.
|
| 288 |
- TU DOIS analyser visuellement cette image et intégrer ton constat dans le feedback.
|
| 289 |
+
- Analyse l'image jointe (photo, diplôme, capture d'écran) et intègre sa description comme une preuve de crédibilité dans le feedback et les métadonnées de la Slide Confiance.
|
| 290 |
- Si l'image contient des chiffres ou des contrats, extrais-les pour confirmer les données financières.` : ''}
|
| 291 |
|
| 292 |
⚠️ INTERDICTION ABSOLUE (Anti-Remediation Loop) :
|