Skip to content

Commit 1dee7ec

Browse files
chore: bump support for gemini 3 flash (#77)
* gemini 3 flash support * gitignore update * Bump minor version --------- Co-authored-by: Phil <[email protected]>
1 parent 32b1996 commit 1dee7ec

File tree

15 files changed

+70
-45
lines changed

15 files changed

+70
-45
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ build/
2424
*.swo
2525
*~
2626

27+
#cursor
28+
.cursor/*
29+
/branch-explained.md
30+
2731
# OS generated files
2832
.DS_Store
2933
.DS_Store?

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,12 @@ S3_SECRET_ACCESS_KEY=your-secret-key
8383

8484
| Workflow | Description | Providers | Default Models | Mux Asset Requirements | Cloud Infrastructure Requirements |
8585
| ------------------------------------------------------------------------ | ----------------------------------------------------------------- | ------------------------- | ------------------------------------------------------------------ | ---------------------- | --------------------------------- |
86-
| [`getSummaryAndTags`](./docs/WORKFLOWS.md#video-summarization)<br/>[API](./docs/API.md#getsummaryandtagsassetid-options) · [Source](./src/workflows/summarization.ts) | Generate titles, descriptions, and tags for an asset | OpenAI, Anthropic, Google | `gpt-5.1` (OpenAI), `claude-sonnet-4-5` (Anthropic), `gemini-2.5-flash` (Google) | Video (required), Captions (optional) | None |
86+
| [`getSummaryAndTags`](./docs/WORKFLOWS.md#video-summarization)<br/>[API](./docs/API.md#getsummaryandtagsassetid-options) · [Source](./src/workflows/summarization.ts) | Generate titles, descriptions, and tags for an asset | OpenAI, Anthropic, Google | `gpt-5.1` (OpenAI), `claude-sonnet-4-5` (Anthropic), `gemini-3-flash-preview` (Google) | Video (required), Captions (optional) | None |
8787
| [`getModerationScores`](./docs/WORKFLOWS.md#content-moderation)<br/>[API](./docs/API.md#getmoderationscoresassetid-options) · [Source](./src/workflows/moderation.ts) | Detect inappropriate (sexual or violent) content in an asset | OpenAI, Hive | `omni-moderation-latest` (OpenAI) or Hive visual moderation task | Video (required) | None |
88-
| [`hasBurnedInCaptions`](./docs/WORKFLOWS.md#burned-in-caption-detection)<br/>[API](./docs/API.md#hasburnedincaptionsassetid-options) · [Source](./src/workflows/burned-in-captions.ts) | Detect burned-in captions (hardcoded subtitles) in an asset | OpenAI, Anthropic, Google | `gpt-5.1` (OpenAI), `claude-sonnet-4-5` (Anthropic), `gemini-2.5-flash` (Google) | Video (required) | None |
89-
| [`generateChapters`](./docs/WORKFLOWS.md#chapter-generation)<br/>[API](./docs/API.md#generatechaptersassetid-languagecode-options) · [Source](./src/workflows/chapters.ts) | Generate chapter markers for an asset using the transcript | OpenAI, Anthropic, Google | `gpt-5.1` (OpenAI), `claude-sonnet-4-5` (Anthropic), `gemini-2.5-flash` (Google) | Video (required), Captions (required) | None |
88+
| [`hasBurnedInCaptions`](./docs/WORKFLOWS.md#burned-in-caption-detection)<br/>[API](./docs/API.md#hasburnedincaptionsassetid-options) · [Source](./src/workflows/burned-in-captions.ts) | Detect burned-in captions (hardcoded subtitles) in an asset | OpenAI, Anthropic, Google | `gpt-5.1` (OpenAI), `claude-sonnet-4-5` (Anthropic), `gemini-3-flash-preview` (Google) | Video (required) | None |
89+
| [`generateChapters`](./docs/WORKFLOWS.md#chapter-generation)<br/>[API](./docs/API.md#generatechaptersassetid-languagecode-options) · [Source](./src/workflows/chapters.ts) | Generate chapter markers for an asset using the transcript | OpenAI, Anthropic, Google | `gpt-5.1` (OpenAI), `claude-sonnet-4-5` (Anthropic), `gemini-3-flash-preview` (Google) | Video (required), Captions (required) | None |
9090
| [`generateVideoEmbeddings`](./docs/WORKFLOWS.md#video-embeddings)<br/>[API](./docs/API.md#generatevideoembeddingsassetid-options) · [Source](./src/workflows/embeddings.ts) | Generate vector embeddings for an asset's transcript chunks | OpenAI, Google | `text-embedding-3-small` (OpenAI), `gemini-embedding-001` (Google) | Video (required), Captions (required) | None |
91-
| [`translateCaptions`](./docs/WORKFLOWS.md#caption-translation)<br/>[API](./docs/API.md#translatecaptionsassetid-fromlanguagecode-tolanguagecode-options) · [Source](./src/workflows/translate-captions.ts) | Translate an asset's captions into different languages | OpenAI, Anthropic, Google | `gpt-5.1` (OpenAI), `claude-sonnet-4-5` (Anthropic), `gemini-2.5-flash` (Google) | Video (required), Captions (required) | AWS S3 (if `uploadToMux=true`) |
91+
| [`translateCaptions`](./docs/WORKFLOWS.md#caption-translation)<br/>[API](./docs/API.md#translatecaptionsassetid-fromlanguagecode-tolanguagecode-options) · [Source](./src/workflows/translate-captions.ts) | Translate an asset's captions into different languages | OpenAI, Anthropic, Google | `gpt-5.1` (OpenAI), `claude-sonnet-4-5` (Anthropic), `gemini-3-flash-preview` (Google) | Video (required), Captions (required) | AWS S3 (if `uploadToMux=true`) |
9292
| [`translateAudio`](./docs/WORKFLOWS.md#audio-dubbing)<br/>[API](./docs/API.md#translateaudioassetid-tolanguagecode-options) · [Source](./src/workflows/translate-audio.ts) | Create AI-dubbed audio tracks in different languages for an asset | ElevenLabs only | ElevenLabs Dubbing API | Video (required), Audio (required) | AWS S3 (if `uploadToMux=true`) |
9393

9494
## Compatability with Workflow DevKit
@@ -233,7 +233,7 @@ for (const chunk of result.chunks) {
233233

234234
# Key Features
235235

236-
- **Cost-Effective by Default**: Uses affordable frontier models like `gpt-5.1`, `claude-sonnet-4-5`, and `gemini-2.5-flash` to keep analysis costs low while maintaining high quality results
236+
- **Cost-Effective by Default**: Uses affordable frontier models like `gpt-5.1`, `claude-sonnet-4-5`, and `gemini-3-flash-preview` to keep analysis costs low while maintaining high quality results
237237
- **Multi-modal Analysis**: Combines storyboard images with video transcripts for richer understanding
238238
- **Tone Control**: Choose between neutral, playful, or professional analysis styles for summarization
239239
- **Prompt Customization**: Override specific prompt sections to tune workflows to your exact use case

docs/API.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Analyzes a Mux video asset and returns AI-generated metadata.
1313

1414
- `provider?: 'openai' | 'anthropic' | 'google'` - AI provider (default: 'openai')
1515
- `tone?: 'neutral' | 'playful' | 'professional'` - Analysis tone (default: 'neutral')
16-
- `model?: string` - AI model to use (defaults: `gpt-5.1`, `claude-sonnet-4-5`, or `gemini-2.5-flash`)
16+
- `model?: string` - AI model to use (defaults: `gpt-5.1`, `claude-sonnet-4-5`, or `gemini-3-flash-preview`)
1717
- `includeTranscript?: boolean` - Include video transcript in analysis (default: true)
1818
- `cleanTranscript?: boolean` - Remove VTT timestamps and formatting from transcript (default: true)
1919
- `imageSubmissionMode?: 'url' | 'base64'` - How to submit storyboard to AI providers (default: 'url')
@@ -104,7 +104,7 @@ Analyzes video frames to detect burned-in captions (hardcoded subtitles) that ar
104104
**Options:**
105105

106106
- `provider?: 'openai' | 'anthropic' | 'google'` - AI provider (default: 'openai')
107-
- `model?: string` - AI model to use (defaults: `gpt-5.1`, `claude-sonnet-4-5`, or `gemini-2.5-flash`)
107+
- `model?: string` - AI model to use (defaults: `gpt-5.1`, `claude-sonnet-4-5`, or `gemini-3-flash-preview`)
108108
- `imageSubmissionMode?: 'url' | 'base64'` - How to submit storyboard to AI providers (default: 'url')
109109
- `imageDownloadOptions?: object` - Options for image download when using base64 mode
110110
- `timeout?: number` - Request timeout in milliseconds (default: 10000)
@@ -183,7 +183,7 @@ Generates AI-powered chapter markers by analyzing video captions. Creates logica
183183
**Options:**
184184

185185
- `provider?: 'openai' | 'anthropic' | 'google'` - AI provider (default: 'openai')
186-
- `model?: string` - AI model to use (defaults: `gpt-5.1`, `claude-sonnet-4-5`, or `gemini-2.5-flash`)
186+
- `model?: string` - AI model to use (defaults: `gpt-5.1`, `claude-sonnet-4-5`, or `gemini-3-flash-preview`)
187187

188188
**Returns:**
189189

docs/EVALS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ Evals calculate estimated costs using provider pricing for the default models:
209209
|----------|-------|----------------------|------------------------|
210210
| OpenAI | gpt-5.1 | $1.25 | $10.00 |
211211
| Anthropic | claude-sonnet-4-5 | $3.00 | $15.00 |
212-
| Google | gemini-2.5-flash | $0.30 | $2.50 |
212+
| Google | gemini-3-flash-preview | $0.50 | $3.00 |
213213

214214
Pricing sources (verify periodically):
215215
- [OpenAI Pricing](https://openai.com/api/pricing)

docs/WORKFLOWS.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ const result = await translateCaptions(
223223
"es", // to language
224224
{
225225
provider: "google",
226-
model: "gemini-2.5-flash"
226+
model: "gemini-3-flash-preview"
227227
}
228228
);
229229

@@ -354,7 +354,7 @@ const anthropicResult = await getSummaryAndTags(assetId, {
354354
tone: "professional"
355355
});
356356

357-
// Google Gemini analysis (default: gemini-2.5-flash)
357+
// Google Gemini analysis (default: gemini-3-flash-preview)
358358
const googleResult = await getSummaryAndTags(assetId, {
359359
provider: "google",
360360
tone: "professional"
@@ -381,7 +381,7 @@ const anthropicChapters = await generateChapters(assetId, "en", {
381381
provider: "anthropic"
382382
});
383383

384-
// Google (default: gemini-2.5-flash)
384+
// Google (default: gemini-3-flash-preview)
385385
const googleChapters = await generateChapters(assetId, "en", {
386386
provider: "google"
387387
});
@@ -407,4 +407,4 @@ const fastResult = await getSummaryAndTags(assetId, {
407407
});
408408
```
409409

410-
**Cost Optimization Tip:** The defaults (`gpt-5.1`, `claude-sonnet-4-5`, `gemini-2.5-flash`) are optimized for cost/quality balance. Only upgrade to more powerful models when quality needs justify the higher cost.
410+
**Cost Optimization Tip:** The defaults (`gpt-5.1`, `claude-sonnet-4-5`, `gemini-3-flash-preview`) are optimized for cost/quality balance. Only upgrade to more powerful models when quality needs justify the higher cost.

evalite.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { defineConfig } from "evalite/config";
22

33
// See: https://v1.evalite.dev/guides/configuration
44
export default defineConfig({
5-
testTimeout: 60000, // 60 seconds
5+
testTimeout: 120000, // 120 seconds
66
maxConcurrency: 6, // Run up to 6 tests in parallel
77
hideTable: false, // Show the table of results
88
});

examples/signed-playback/signed-summarization.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type Provider = "openai" | "anthropic" | "google";
1616
const DEFAULT_MODELS: Record<Provider, string> = {
1717
openai: "gpt-5.1",
1818
anthropic: "claude-sonnet-4-5",
19-
google: "gemini-2.5-flash",
19+
google: "gemini-3-flash-preview",
2020
};
2121

2222
const program = new Command();

examples/summarization/basic-example.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ type Provider = "openai" | "anthropic" | "google";
88
const DEFAULT_MODELS: Record<Provider, string> = {
99
openai: "gpt-5.1",
1010
anthropic: "claude-sonnet-4-5",
11-
google: "gemini-2.5-flash",
11+
google: "gemini-3-flash-preview",
1212
};
1313

1414
const program = new Command();

examples/summarization/custom-prompt-example.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ type Preset = "seo" | "social" | "technical" | "ecommerce";
3535
const DEFAULT_MODELS: Record<Provider, string> = {
3636
openai: "gpt-5.1",
3737
anthropic: "claude-sonnet-4-5",
38-
google: "gemini-2.5-flash",
38+
google: "gemini-3-flash-preview",
3939
};
4040

4141
/**

examples/summarization/provider-comparison.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ program
2828
const providers = [
2929
{ name: "OpenAI", provider: "openai" as const, model: "gpt-5.1" },
3030
{ name: "Anthropic", provider: "anthropic" as const, model: "claude-sonnet-4-5" },
31-
{ name: "Google", provider: "google" as const, model: "gemini-2.5-flash" },
31+
{ name: "Google", provider: "google" as const, model: "gemini-3-flash-preview" },
3232
];
3333

3434
for (const config of providers) {

0 commit comments

Comments
 (0)