parent
278620df33
commit
a0aea6ef62
1 changed files with 13 additions and 5 deletions
|
@ -7,8 +7,10 @@ use strum::EnumIter;
|
||||||
pub enum Model {
|
pub enum Model {
|
||||||
// Anthropic models (already included)
|
// Anthropic models (already included)
|
||||||
#[default]
|
#[default]
|
||||||
#[serde(rename = "claude-3-5-sonnet", alias = "claude-3-5-sonnet-latest")]
|
#[serde(rename = "claude-3-5-sonnet-v2", alias = "claude-3-5-sonnet-latest")]
|
||||||
Claude3_5Sonnet,
|
Claude3_5Sonnet,
|
||||||
|
#[serde(rename = "claude-3-7-sonnet", alias = "claude-3-7-sonnet-latest")]
|
||||||
|
Claude3_7Sonnet,
|
||||||
#[serde(rename = "claude-3-opus", alias = "claude-3-opus-latest")]
|
#[serde(rename = "claude-3-opus", alias = "claude-3-opus-latest")]
|
||||||
Claude3Opus,
|
Claude3Opus,
|
||||||
#[serde(rename = "claude-3-sonnet", alias = "claude-3-sonnet-latest")]
|
#[serde(rename = "claude-3-sonnet", alias = "claude-3-sonnet-latest")]
|
||||||
|
@ -64,7 +66,7 @@ pub enum Model {
|
||||||
|
|
||||||
impl Model {
|
impl Model {
|
||||||
pub fn from_id(id: &str) -> anyhow::Result<Self> {
|
pub fn from_id(id: &str) -> anyhow::Result<Self> {
|
||||||
if id.starts_with("claude-3-5-sonnet") {
|
if id.starts_with("claude-3-5-sonnet-v2") {
|
||||||
Ok(Self::Claude3_5Sonnet)
|
Ok(Self::Claude3_5Sonnet)
|
||||||
} else if id.starts_with("claude-3-opus") {
|
} else if id.starts_with("claude-3-opus") {
|
||||||
Ok(Self::Claude3Opus)
|
Ok(Self::Claude3Opus)
|
||||||
|
@ -72,6 +74,8 @@ impl Model {
|
||||||
Ok(Self::Claude3Sonnet)
|
Ok(Self::Claude3Sonnet)
|
||||||
} else if id.starts_with("claude-3-5-haiku") {
|
} else if id.starts_with("claude-3-5-haiku") {
|
||||||
Ok(Self::Claude3_5Haiku)
|
Ok(Self::Claude3_5Haiku)
|
||||||
|
} else if id.starts_with("claude-3-7-sonnet") {
|
||||||
|
Ok(Self::Claude3_7Sonnet)
|
||||||
} else {
|
} else {
|
||||||
Err(anyhow!("invalid model id"))
|
Err(anyhow!("invalid model id"))
|
||||||
}
|
}
|
||||||
|
@ -83,6 +87,7 @@ impl Model {
|
||||||
Model::Claude3Opus => "us.anthropic.claude-3-opus-20240229-v1:0",
|
Model::Claude3Opus => "us.anthropic.claude-3-opus-20240229-v1:0",
|
||||||
Model::Claude3Sonnet => "us.anthropic.claude-3-sonnet-20240229-v1:0",
|
Model::Claude3Sonnet => "us.anthropic.claude-3-sonnet-20240229-v1:0",
|
||||||
Model::Claude3_5Haiku => "us.anthropic.claude-3-5-haiku-20241022-v1:0",
|
Model::Claude3_5Haiku => "us.anthropic.claude-3-5-haiku-20241022-v1:0",
|
||||||
|
Model::Claude3_7Sonnet => "us.anthropic.claude-3-7-sonnet-20250219-v1:0",
|
||||||
Model::AmazonNovaLite => "us.amazon.nova-lite-v1:0",
|
Model::AmazonNovaLite => "us.amazon.nova-lite-v1:0",
|
||||||
Model::AmazonNovaMicro => "us.amazon.nova-micro-v1:0",
|
Model::AmazonNovaMicro => "us.amazon.nova-micro-v1:0",
|
||||||
Model::AmazonNovaPro => "us.amazon.nova-pro-v1:0",
|
Model::AmazonNovaPro => "us.amazon.nova-pro-v1:0",
|
||||||
|
@ -120,10 +125,11 @@ impl Model {
|
||||||
|
|
||||||
pub fn display_name(&self) -> &str {
|
pub fn display_name(&self) -> &str {
|
||||||
match self {
|
match self {
|
||||||
Self::Claude3_5Sonnet => "Claude 3.5 Sonnet",
|
Self::Claude3_5Sonnet => "Claude 3.5 Sonnet v2",
|
||||||
Self::Claude3Opus => "Claude 3 Opus",
|
Self::Claude3Opus => "Claude 3 Opus",
|
||||||
Self::Claude3Sonnet => "Claude 3 Sonnet",
|
Self::Claude3Sonnet => "Claude 3 Sonnet",
|
||||||
Self::Claude3_5Haiku => "Claude 3.5 Haiku",
|
Self::Claude3_5Haiku => "Claude 3.5 Haiku",
|
||||||
|
Self::Claude3_7Sonnet => "Claude 3.7 Sonnet",
|
||||||
Self::AmazonNovaLite => "Amazon Nova Lite",
|
Self::AmazonNovaLite => "Amazon Nova Lite",
|
||||||
Self::AmazonNovaMicro => "Amazon Nova Micro",
|
Self::AmazonNovaMicro => "Amazon Nova Micro",
|
||||||
Self::AmazonNovaPro => "Amazon Nova Pro",
|
Self::AmazonNovaPro => "Amazon Nova Pro",
|
||||||
|
@ -166,7 +172,8 @@ impl Model {
|
||||||
Self::Claude3_5Sonnet
|
Self::Claude3_5Sonnet
|
||||||
| Self::Claude3Opus
|
| Self::Claude3Opus
|
||||||
| Self::Claude3Sonnet
|
| Self::Claude3Sonnet
|
||||||
| Self::Claude3_5Haiku => 200_000,
|
| Self::Claude3_5Haiku
|
||||||
|
| Self::Claude3_7Sonnet => 200_000,
|
||||||
Self::Custom { max_tokens, .. } => *max_tokens,
|
Self::Custom { max_tokens, .. } => *max_tokens,
|
||||||
_ => 200_000,
|
_ => 200_000,
|
||||||
}
|
}
|
||||||
|
@ -188,7 +195,8 @@ impl Model {
|
||||||
Self::Claude3_5Sonnet
|
Self::Claude3_5Sonnet
|
||||||
| Self::Claude3Opus
|
| Self::Claude3Opus
|
||||||
| Self::Claude3Sonnet
|
| Self::Claude3Sonnet
|
||||||
| Self::Claude3_5Haiku => 1.0,
|
| Self::Claude3_5Haiku
|
||||||
|
| Self::Claude3_7Sonnet => 1.0,
|
||||||
Self::Custom {
|
Self::Custom {
|
||||||
default_temperature,
|
default_temperature,
|
||||||
..
|
..
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue