Skip to content

Commit cb74210

Browse files
authored
feat(opentrons-ai-server): change model to claude 4 sonnet (#18423)
# Overview Closes AUTH-1915 This PR changes the model to Claude-4-sonnet which is the latest model as of 22 May, 2025 ## Test Plan and Hands on Testing CI ## Review requests Create a test protocol ## Risk assessment Mid
1 parent 2dacdc0 commit cb74210

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

opentrons-ai-server/api/domain/anthropic_predict.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
from api.domain.config_pd import DOCUMENTS_PD, PROMPT_PD, SYSTEM_PROMPT_PD
1616
from api.settings import Settings
1717

18-
weave.init("opentronsai/OpentronsAI-Phase-march-25")
18+
MessageType = Literal["create", "update"]
19+
20+
weave.init("opentronsai/OpentronsAI-Phase-May-23-25")
1921
settings: Settings = Settings()
2022
logger = structlog.stdlib.get_logger(settings.logger_name)
2123
ROOT_PATH: Path = Path(Path(__file__)).parent.parent.parent
@@ -25,6 +27,7 @@
2527
class AnthropicPredict:
2628
def __init__(self, settings: Settings) -> None:
2729
self.settings: Settings = settings
30+
self.max_tokens: int = 20000
2831
self.client: Anthropic = Anthropic(api_key=settings.anthropic_api_key.get_secret_value())
2932
self.model_name: str = settings.anthropic_model_name
3033
self.model_helper: str = settings.model_helper
@@ -176,7 +179,7 @@ def get_relevant_api_docs(self, query: str, user_id: str) -> str:
176179
]
177180

178181
response = self.client.messages.create( # type: ignore[call-overload]
179-
max_tokens=2048,
182+
max_tokens=4096,
180183
temperature=0.0,
181184
messages=msg,
182185
model=self.model_helper,
@@ -188,16 +191,14 @@ def get_relevant_api_docs(self, query: str, user_id: str) -> str:
188191
return response.content[0].text # type: ignore[no-any-return]
189192

190193
@tracer.wrap()
191-
def _process_message(
192-
self, user_id: str, messages: List[MessageParam], message_type: Literal["create", "update"], max_tokens: int = 4096
193-
) -> Message:
194+
def _process_message(self, user_id: str, messages: List[MessageParam], message_type: MessageType) -> Message:
194195
"""
195196
Internal method to handle message processing with different system prompts.
196197
For now, system prompt is the same.
197198
"""
198199

199200
response: Message = self.client.messages.create( # type: ignore[call-overload]
200-
max_tokens=max_tokens,
201+
max_tokens=self.max_tokens,
201202
messages=messages,
202203
model=self.model_name,
203204
system=self.system_prompt,
@@ -219,7 +220,7 @@ def _process_message(
219220

220221
@tracer.wrap()
221222
def process_message(
222-
self, user_id: str, prompt: str, history: List[MessageParam] | None = None, message_type: Literal["create", "update"] = "create"
223+
self, user_id: str, prompt: str, history: List[MessageParam] | None = None, message_type: MessageType = "create"
223224
) -> str | None:
224225
"""Unified method for creating and updating messages"""
225226
try:
@@ -269,7 +270,7 @@ def process_message(
269270

270271
@tracer.wrap()
271272
def process_message_pd(
272-
self, user_id: str, prompt: str, history: List[MessageParam] | None = None, message_type: Literal["create", "update"] = "create"
273+
self, user_id: str, prompt: str, history: List[MessageParam] | None = None, message_type: MessageType = "create"
273274
) -> str | None:
274275
"""return a partial json protocol"""
275276
try:
@@ -281,7 +282,7 @@ def process_message_pd(
281282
messages.append({"role": "user", "content": self.PROMPT_PD.format(USER_PROMPT=prompt)})
282283

283284
response: Message = self.client.messages.create(
284-
max_tokens=20000,
285+
max_tokens=self.max_tokens,
285286
messages=messages,
286287
model=self.model_name,
287288
system=cast(Iterable[TextBlockParam], self.system_prompt_pd),

opentrons-ai-server/api/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class Settings(BaseSettings):
2828
log_level: str = "info"
2929
service_name: str = "local-ai-api"
3030
openai_model_name: str = "gpt-4-1106-preview"
31-
anthropic_model_name: str = "claude-3-7-sonnet-20250219"
31+
anthropic_model_name: str = "claude-sonnet-4-20250514"
3232
model_helper: str = "claude-3-5-haiku-20241022"
3333
model: str = "claude"
3434
auth0_domain: str = "opentrons-dev.us.auth0.com"

0 commit comments

Comments
 (0)