PlanOpticon

chore: default to cheap models for chat tasks - Anthropic: claude-haiku-4-5 instead of claude-sonnet-4-5 - OpenAI: gpt-4o-mini instead of gpt-4o - Gemini was already on gemini-2.5-flash Users can still override with --chat-model or /model in the companion.

lmata 2026-03-07 23:44 trunk
Commit d0d4d18a096559b94d7c3bea1a009629eb32a94a715982d78143f3ce1f3a2e30
--- video_processor/providers/anthropic_provider.py
+++ video_processor/providers/anthropic_provider.py
@@ -31,11 +31,11 @@
3131
messages: list[dict],
3232
max_tokens: int = 4096,
3333
temperature: float = 0.7,
3434
model: Optional[str] = None,
3535
) -> str:
36
- model = model or "claude-sonnet-4-5-20250929"
36
+ model = model or "claude-haiku-4-5-20251001"
3737
3838
# Anthropic requires system messages as a top-level parameter
3939
system_parts = []
4040
chat_messages = []
4141
for msg in messages:
@@ -65,11 +65,11 @@
6565
image_bytes: bytes,
6666
prompt: str,
6767
max_tokens: int = 4096,
6868
model: Optional[str] = None,
6969
) -> str:
70
- model = model or "claude-sonnet-4-5-20250929"
70
+ model = model or "claude-haiku-4-5-20251001"
7171
b64 = base64.b64encode(image_bytes).decode()
7272
response = self.client.messages.create(
7373
model=model,
7474
messages=[
7575
{
@@ -130,10 +130,10 @@
130130
name="anthropic",
131131
provider_class=AnthropicProvider,
132132
env_var="ANTHROPIC_API_KEY",
133133
model_prefixes=["claude-"],
134134
default_models={
135
- "chat": "claude-sonnet-4-5-20250929",
136
- "vision": "claude-sonnet-4-5-20250929",
135
+ "chat": "claude-haiku-4-5-20251001",
136
+ "vision": "claude-haiku-4-5-20251001",
137137
"audio": "",
138138
},
139139
)
140140
--- video_processor/providers/anthropic_provider.py
+++ video_processor/providers/anthropic_provider.py
@@ -31,11 +31,11 @@
31 messages: list[dict],
32 max_tokens: int = 4096,
33 temperature: float = 0.7,
34 model: Optional[str] = None,
35 ) -> str:
36 model = model or "claude-sonnet-4-5-20250929"
37
38 # Anthropic requires system messages as a top-level parameter
39 system_parts = []
40 chat_messages = []
41 for msg in messages:
@@ -65,11 +65,11 @@
65 image_bytes: bytes,
66 prompt: str,
67 max_tokens: int = 4096,
68 model: Optional[str] = None,
69 ) -> str:
70 model = model or "claude-sonnet-4-5-20250929"
71 b64 = base64.b64encode(image_bytes).decode()
72 response = self.client.messages.create(
73 model=model,
74 messages=[
75 {
@@ -130,10 +130,10 @@
130 name="anthropic",
131 provider_class=AnthropicProvider,
132 env_var="ANTHROPIC_API_KEY",
133 model_prefixes=["claude-"],
134 default_models={
135 "chat": "claude-sonnet-4-5-20250929",
136 "vision": "claude-sonnet-4-5-20250929",
137 "audio": "",
138 },
139 )
140
--- video_processor/providers/anthropic_provider.py
+++ video_processor/providers/anthropic_provider.py
@@ -31,11 +31,11 @@
31 messages: list[dict],
32 max_tokens: int = 4096,
33 temperature: float = 0.7,
34 model: Optional[str] = None,
35 ) -> str:
36 model = model or "claude-haiku-4-5-20251001"
37
38 # Anthropic requires system messages as a top-level parameter
39 system_parts = []
40 chat_messages = []
41 for msg in messages:
@@ -65,11 +65,11 @@
65 image_bytes: bytes,
66 prompt: str,
67 max_tokens: int = 4096,
68 model: Optional[str] = None,
69 ) -> str:
70 model = model or "claude-haiku-4-5-20251001"
71 b64 = base64.b64encode(image_bytes).decode()
72 response = self.client.messages.create(
73 model=model,
74 messages=[
75 {
@@ -130,10 +130,10 @@
130 name="anthropic",
131 provider_class=AnthropicProvider,
132 env_var="ANTHROPIC_API_KEY",
133 model_prefixes=["claude-"],
134 default_models={
135 "chat": "claude-haiku-4-5-20251001",
136 "vision": "claude-haiku-4-5-20251001",
137 "audio": "",
138 },
139 )
140
--- video_processor/providers/openai_provider.py
+++ video_processor/providers/openai_provider.py
@@ -46,11 +46,11 @@
4646
messages: list[dict],
4747
max_tokens: int = 4096,
4848
temperature: float = 0.7,
4949
model: Optional[str] = None,
5050
) -> str:
51
- model = model or "gpt-4o"
51
+ model = model or "gpt-4o-mini"
5252
response = self.client.chat.completions.create(
5353
model=model,
5454
messages=messages,
5555
max_tokens=max_tokens,
5656
temperature=temperature,
@@ -68,11 +68,11 @@
6868
image_bytes: bytes,
6969
prompt: str,
7070
max_tokens: int = 4096,
7171
model: Optional[str] = None,
7272
) -> str:
73
- model = model or "gpt-4o"
73
+ model = model or "gpt-4o-mini"
7474
b64 = base64.b64encode(image_bytes).decode()
7575
response = self.client.chat.completions.create(
7676
model=model,
7777
messages=[
7878
{
@@ -232,7 +232,7 @@
232232
ProviderRegistry.register(
233233
name="openai",
234234
provider_class=OpenAIProvider,
235235
env_var="OPENAI_API_KEY",
236236
model_prefixes=["gpt-", "o1", "o3", "o4", "whisper"],
237
- default_models={"chat": "gpt-4o", "vision": "gpt-4o", "audio": "whisper-1"},
237
+ default_models={"chat": "gpt-4o-mini", "vision": "gpt-4o-mini", "audio": "whisper-1"},
238238
)
239239
--- video_processor/providers/openai_provider.py
+++ video_processor/providers/openai_provider.py
@@ -46,11 +46,11 @@
46 messages: list[dict],
47 max_tokens: int = 4096,
48 temperature: float = 0.7,
49 model: Optional[str] = None,
50 ) -> str:
51 model = model or "gpt-4o"
52 response = self.client.chat.completions.create(
53 model=model,
54 messages=messages,
55 max_tokens=max_tokens,
56 temperature=temperature,
@@ -68,11 +68,11 @@
68 image_bytes: bytes,
69 prompt: str,
70 max_tokens: int = 4096,
71 model: Optional[str] = None,
72 ) -> str:
73 model = model or "gpt-4o"
74 b64 = base64.b64encode(image_bytes).decode()
75 response = self.client.chat.completions.create(
76 model=model,
77 messages=[
78 {
@@ -232,7 +232,7 @@
232 ProviderRegistry.register(
233 name="openai",
234 provider_class=OpenAIProvider,
235 env_var="OPENAI_API_KEY",
236 model_prefixes=["gpt-", "o1", "o3", "o4", "whisper"],
237 default_models={"chat": "gpt-4o", "vision": "gpt-4o", "audio": "whisper-1"},
238 )
239
--- video_processor/providers/openai_provider.py
+++ video_processor/providers/openai_provider.py
@@ -46,11 +46,11 @@
46 messages: list[dict],
47 max_tokens: int = 4096,
48 temperature: float = 0.7,
49 model: Optional[str] = None,
50 ) -> str:
51 model = model or "gpt-4o-mini"
52 response = self.client.chat.completions.create(
53 model=model,
54 messages=messages,
55 max_tokens=max_tokens,
56 temperature=temperature,
@@ -68,11 +68,11 @@
68 image_bytes: bytes,
69 prompt: str,
70 max_tokens: int = 4096,
71 model: Optional[str] = None,
72 ) -> str:
73 model = model or "gpt-4o-mini"
74 b64 = base64.b64encode(image_bytes).decode()
75 response = self.client.chat.completions.create(
76 model=model,
77 messages=[
78 {
@@ -232,7 +232,7 @@
232 ProviderRegistry.register(
233 name="openai",
234 provider_class=OpenAIProvider,
235 env_var="OPENAI_API_KEY",
236 model_prefixes=["gpt-", "o1", "o3", "o4", "whisper"],
237 default_models={"chat": "gpt-4o-mini", "vision": "gpt-4o-mini", "audio": "whisper-1"},
238 )
239

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button