Use LLM service for tool call requests (#16046)

Release Notes:

- N/A

---------

Co-authored-by: Marshall <marshall@zed.dev>
This commit is contained in:
Max Brunsfeld 2024-08-09 13:22:58 -07:00 committed by GitHub
parent d96afde5bf
commit fbebb73d7b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 330 additions and 131 deletions

View file

@ -322,25 +322,33 @@ async fn perform_completion(
}
fn normalize_model_name(provider: LanguageModelProvider, name: String) -> String {
match provider {
LanguageModelProvider::Anthropic => {
for prefix in &[
"claude-3-5-sonnet",
"claude-3-haiku",
"claude-3-opus",
"claude-3-sonnet",
] {
if name.starts_with(prefix) {
return prefix.to_string();
}
}
}
LanguageModelProvider::OpenAi => {}
LanguageModelProvider::Google => {}
LanguageModelProvider::Zed => {}
}
let prefixes: &[_] = match provider {
LanguageModelProvider::Anthropic => &[
"claude-3-5-sonnet",
"claude-3-haiku",
"claude-3-opus",
"claude-3-sonnet",
],
LanguageModelProvider::OpenAi => &[
"gpt-3.5-turbo",
"gpt-4-turbo-preview",
"gpt-4o-mini",
"gpt-4o",
"gpt-4",
],
LanguageModelProvider::Google => &[],
LanguageModelProvider::Zed => &[],
};
name
if let Some(prefix) = prefixes
.iter()
.filter(|&&prefix| name.starts_with(prefix))
.max_by_key(|&&prefix| prefix.len())
{
prefix.to_string()
} else {
name
}
}
async fn check_usage_limit(