Skip to content

Commit 4ef4d81

Browse files
committed
fix: skip AI summary if model isn't available
We use a Gemini model to generate an AI summary, but Gemini might not be available. Fixes #147.
1 parent 9d4bc14 commit 4ef4d81

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

runner/orchestration/generate-summary.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,17 @@ export async function prepareSummary(
4444
console.log(`✨ Generating AI summary for evaluation run..`);
4545
try {
4646
const result = await summarizeReportWithAI(genkit, abortSignal, assessments);
47-
inputTokens += result.usage.inputTokens;
48-
outputTokens += result.usage.outputTokens;
49-
totalTokens += result.usage.totalTokens;
50-
aiSummary = result.responseHtml;
51-
console.log(`✅ Generated AI summary.`);
47+
48+
if (result !== null) {
49+
inputTokens += result.usage.inputTokens;
50+
outputTokens += result.usage.outputTokens;
51+
totalTokens += result.usage.totalTokens;
52+
aiSummary = result.responseHtml;
53+
console.log(`✅ Generated AI summary.`);
54+
}
5255
} catch (e) {
5356
console.log(`${redX()} Failed to generate AI summary, skipping summary.`);
57+
5458
if ((e as Partial<Error>).stack) {
5559
console.error((e as Error).stack);
5660
}

runner/reporting/report-ai-summary.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
import {GenkitRunner} from '../codegen/genkit/genkit-runner.js';
2-
import {
3-
AssessmentResult,
4-
ReportContextFilter,
5-
RatingContextFilter,
6-
AiChatContextFilters,
7-
} from '../shared-interfaces.js';
2+
import {AssessmentResult, ReportContextFilter, RatingContextFilter} from '../shared-interfaces.js';
83
import {chatWithReportAI} from './report-ai-chat.js';
94

105
export async function summarizeReportWithAI(
116
llm: GenkitRunner,
127
abortSignal: AbortSignal,
138
assessments: AssessmentResult[],
149
) {
10+
const model = 'gemini-2.5-flash-lite';
11+
12+
if (!llm.getSupportedModels().includes(model)) {
13+
return null;
14+
}
15+
1516
return chatWithReportAI(
1617
llm,
1718
`Strictly follow the instructions here.
@@ -31,7 +32,7 @@ Categorize the failures and provide a brief summary of the report. Keep it short
3132
assessments,
3233
[],
3334
// For AI summaries we use lite model as it's faster and cheaper (+ reduces rate limiting)
34-
'gemini-2.5-flash-lite',
35+
model,
3536
{
3637
reportContextFilter: ReportContextFilter.NonPerfectReports,
3738
ratingContextFilter: RatingContextFilter.NonPerfectRatings,

0 commit comments

Comments
 (0)