柿崎透真
feat: first application
55fc0a1
raw
history blame
3.98 kB
from typing import Final, Literal
from neollm.llm.platform import Platform
from neollm.utils.utils import cprint
def normalize_gpt_model_name(model_name: str, verbose: bool = True) -> str:
preview_models = {
"gpt-4-0125-preview": "gpt-4-turbo-0125",
"gpt-4-1106-preview": "gpt-4-turbo-1106",
"gpt-4-vision-preview": "gpt-4v-turbo-1106",
}
model_name = preview_models.get(model_name, model_name)
GPT_DATE_MAPPER: Final[dict[str, str]] = {
"gpt-4o": "gpt-4o-2024-05-13",
"gpt-4o-mini": "gpt-4o-mini-2024-07-18",
"gpt-3.5-turbo": "gpt-3.5-turbo-0613",
"gpt-3.5-turbo-16k": "gpt-3.5-turbo-16k-0613",
"gpt-4": "gpt-4-0613",
"gpt-4-32k": "gpt-4-32k-0613",
"gpt-4-turbo": "gpt-4-turbo-1106",
"gpt-4v-turbo": "gpt-4v-turbo-1106",
}
if model_name in GPT_DATE_MAPPER:
if verbose:
cprint(
f"WARNING: model_nameに日付を指定してください. {model_name} -> {GPT_DATE_MAPPER[model_name]}",
color="yellow",
background=True,
)
return GPT_DATE_MAPPER[model_name]
return model_name
def normalize_claude_model_name(model_name: str, platform: Platform, verbose: bool = True) -> str:
models: Final[list[dict[Literal["no_date"] | Platform, str]]] = [
{
"no_date": "claude-3-5-sonnet-v2",
Platform.GCP: "claude-3-5-sonnet-v2@20241022",
Platform.AWS: "anthropic.claude-3-5-sonnet-20241022-v2:0",
Platform.ANTHROPIC: "claude-3-5-sonnet-20241022",
},
{
"no_date": "claude-3-5-sonnet",
Platform.GCP: "claude-3-5-sonnet@20240620",
Platform.AWS: "anthropic.claude-3-5-sonnet-20240620-v1:0",
Platform.ANTHROPIC: "claude-3-5-sonnet-20240620",
},
{
"no_date": "claude-3-5-haiku",
Platform.GCP: "claude-3-5-haiku@20241022",
Platform.AWS: "anthropic.claude-3-5-haiku-20241022-v1:0",
Platform.ANTHROPIC: "claude-3-5-haiku-20241022",
},
{
"no_date": "claude-3-opus",
Platform.GCP: "claude-3-opus@20240229",
Platform.AWS: "anthropic.claude-3-opus-20240229-v1:0",
Platform.ANTHROPIC: "claude-3-opus-20240229",
},
{
"no_date": "claude-3-sonnet",
Platform.GCP: "claude-3-sonnet@20240229",
Platform.AWS: "anthropic.claude-3-sonnet-20240229-v1:0",
Platform.ANTHROPIC: "claude-3-sonnet-20240229",
},
{
"no_date": "claude-3-haiku",
Platform.GCP: "claude-3-haiku@20240307",
Platform.AWS: "anthropic.claude-3-haiku-20240307-v1:0",
Platform.ANTHROPIC: "claude-3-haiku-20240307",
},
]
# 日付を追加
CLAUDE_DATE_MAPPER: Final[dict[str, str]] = {model["no_date"]: model[platform] for model in models}
if model_name in CLAUDE_DATE_MAPPER:
if verbose:
cprint(
f"WARNING: model_nameに日付を指定してください. {model_name} -> {CLAUDE_DATE_MAPPER[model_name]}",
color="yellow",
background=True,
)
return CLAUDE_DATE_MAPPER[model_name]
# 他platformからの変換
CLAUDE_FOR_PLATFORM_MAPPER: Final[dict[str, str]] = {
model[other_platform]: model[platform]
for model in models
for other_platform in [Platform.GCP, Platform.AWS, Platform.ANTHROPIC]
if platform != other_platform
}
if model_name in CLAUDE_FOR_PLATFORM_MAPPER:
if verbose:
cprint(
f"WARNING: model_nameを{platform}用に変更してください. {model_name} -> {CLAUDE_FOR_PLATFORM_MAPPER[model_name]}",
color="yellow",
background=True,
)
return CLAUDE_FOR_PLATFORM_MAPPER[model_name]
return model_name