assistant: Overhaul provider infrastructure (#14929)
<img width="624" alt="image" src="https://github.com/user-attachments/assets/f492b0bd-14c3-49e2-b2ff-dc78e52b0815"> - [x] Correctly set custom model token count - [x] How to count tokens for Gemini models? - [x] Feature flag zed.dev provider - [x] Figure out how to configure custom models - [ ] Update docs Release Notes: - Added support for quickly switching between multiple language model providers in the assistant panel --------- Co-authored-by: Antonio <antonio@zed.dev>
This commit is contained in:
parent
17ef9a367f
commit
d0f52e90e6
55 changed files with 2757 additions and 2023 deletions
|
@ -1,4 +1,5 @@
|
|||
pub use anthropic::Model as AnthropicModel;
|
||||
use anyhow::{anyhow, Result};
|
||||
pub use ollama::Model as OllamaModel;
|
||||
pub use open_ai::Model as OpenAiModel;
|
||||
use schemars::JsonSchema;
|
||||
|
@ -38,6 +39,23 @@ pub enum CloudModel {
|
|||
}
|
||||
|
||||
impl CloudModel {
|
||||
pub fn from_id(value: &str) -> Result<Self> {
|
||||
match value {
|
||||
"gpt-3.5-turbo" => Ok(Self::Gpt3Point5Turbo),
|
||||
"gpt-4" => Ok(Self::Gpt4),
|
||||
"gpt-4-turbo-preview" => Ok(Self::Gpt4Turbo),
|
||||
"gpt-4o" => Ok(Self::Gpt4Omni),
|
||||
"gpt-4o-mini" => Ok(Self::Gpt4OmniMini),
|
||||
"claude-3-5-sonnet" => Ok(Self::Claude3_5Sonnet),
|
||||
"claude-3-opus" => Ok(Self::Claude3Opus),
|
||||
"claude-3-sonnet" => Ok(Self::Claude3Sonnet),
|
||||
"claude-3-haiku" => Ok(Self::Claude3Haiku),
|
||||
"gemini-1.5-pro" => Ok(Self::Gemini15Pro),
|
||||
"gemini-1.5-flash" => Ok(Self::Gemini15Flash),
|
||||
_ => Err(anyhow!("invalid model id")),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn id(&self) -> &str {
|
||||
match self {
|
||||
Self::Gpt3Point5Turbo => "gpt-3.5-turbo",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue