Make providers more clear in model selector (#16480)
Nate Butler
created 1 year ago
Make providers more clear in model selector
Before:

After:

Release Notes:
- N/A
Change summary
assets/icons/ai_anthropic_hosted.svg | 11 ++++++-----
crates/assistant/src/model_selector.rs | 10 +++++++++-
2 files changed, 15 insertions(+), 6 deletions(-)
Detailed changes
@@ -1,11 +1,12 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<g clip-path="url(#clip0_1896_18)">
-<path d="M11.094 3.09999H8.952L12.858 12.9H15L11.094 3.09999Z" fill="#1F1F1E"/>
-<path d="M4.906 3.09999L1 12.9H3.184L3.98284 10.842H8.06915L8.868 12.9H11.052L7.146 3.09999H4.906ZM4.68928 9.02199L6.026 5.57799L7.3627 9.02199H4.68928Z" fill="#1F1F1E"/>
+<rect width="16" height="16" rx="2" fill="black" fill-opacity="0.2"/>
+<g clip-path="url(#clip0_1916_18)">
+<path d="M10.652 3.79999H8.816L12.164 12.2H14L10.652 3.79999Z" fill="#1F1F1E"/>
+<path d="M5.348 3.79999L2 12.2H3.872L4.55672 10.436H8.05927L8.744 12.2H10.616L7.268 3.79999H5.348ZM5.16224 8.87599L6.308 5.92399L7.45374 8.87599H5.16224Z" fill="#1F1F1E"/>
</g>
<defs>
-<clipPath id="clip0_1896_18">
-<rect width="14" height="9.8" fill="white" transform="translate(1 3.09999)"/>
+<clipPath id="clip0_1916_18">
+<rect width="12" height="8.4" fill="white" transform="translate(2 3.79999)"/>
</clipPath>
</defs>
</svg>
@@ -1,6 +1,7 @@
use feature_flags::ZedPro;
use gpui::Action;
use gpui::DismissEvent;
+
use language_model::{LanguageModel, LanguageModelAvailability, LanguageModelRegistry};
use proto::Plan;
use workspace::ShowConfiguration;
@@ -149,6 +150,8 @@ impl PickerDelegate for ModelPickerDelegate {
use feature_flags::FeatureFlagAppExt;
let model_info = self.filtered_models.get(ix)?;
let show_badges = cx.has_flag::<ZedPro>();
+ let provider_name: String = model_info.model.provider_name().0.into();
+
Some(
ListItem::new(ix)
.inset(true)
@@ -166,11 +169,16 @@ impl PickerDelegate for ModelPickerDelegate {
.w_full()
.justify_between()
.font_buffer(cx)
- .min_w(px(200.))
+ .min_w(px(240.))
.child(
h_flex()
.gap_2()
.child(Label::new(model_info.model.name().0.clone()))
+ .child(
+ Label::new(provider_name)
+ .size(LabelSize::XSmall)
+ .color(Color::Muted),
+ )
.children(match model_info.availability {
LanguageModelAvailability::Public => None,
LanguageModelAvailability::RequiresPlan(Plan::Free) => None,