import * as KnowYourAI from '@know-your-ai/node';
import { GoogleGenAI } from '@google/genai';
KnowYourAI.init({
dsn: process.env.KNOW_YOUR_AI_DSN!,
traceMode: true,
integrations: [KnowYourAI.googleGenAIIntegration()],
});
const genAI = new GoogleGenAI({ apiKey: process.env.GOOGLE_API_KEY! });
const ai = KnowYourAI.instrumentGoogleGenAIClient(genAI);
await KnowYourAI.withTrace({ name: 'support-ticket-agent', userId: 'user-789' }, async () => {
// Step 1: Classify intent
const classification = await KnowYourAI.withGeneration('classify', async (gen) => {
gen.setModel('gemini-2.0-flash');
const res = await ai.models.generateContent({
model: 'gemini-2.0-flash',
contents: 'User says: I cannot log in to my account',
});
return res.text;
});
// Step 2: Retrieve context
const retriever = KnowYourAI.startRetriever('knowledge-base', {});
retriever.setQuery('login issues troubleshooting');
const docs = await searchKnowledgeBase('login issues');
retriever.setDocuments(docs);
retriever.end();
// Step 3: Generate response
await KnowYourAI.withGeneration('respond', async (gen) => {
gen.setModel('gemini-2.0-flash');
const res = await ai.models.generateContent({
model: 'gemini-2.0-flash',
contents: `Classification: ${classification}\nContext: ${JSON.stringify(docs)}\nGenerate a helpful response.`,
});
return res.text;
});
});