diff --git a/src/components/ModelPicker.tsx b/src/components/ModelPicker.tsx index 1054483..26901b3 100644 --- a/src/components/ModelPicker.tsx +++ b/src/components/ModelPicker.tsx @@ -22,6 +22,7 @@ import { useLocalLMSModels } from "@/hooks/useLMStudioModels"; import { useLanguageModelsByProviders } from "@/hooks/useLanguageModelsByProviders"; import { ChevronDown } from "lucide-react"; import { LocalModel } from "@/ipc/ipc_types"; +import { useLanguageModelProviders } from "@/hooks/useLanguageModelProviders"; interface ModelPickerProps { selectedModel: LargeLanguageModel; onModelSelect: (model: LargeLanguageModel) => void; @@ -34,9 +35,13 @@ export function ModelPicker({ const [open, setOpen] = useState(false); // Cloud models from providers - const { data: modelsByProviders, isLoading: providersLoading } = + const { data: modelsByProviders, isLoading: modelsByProvidersLoading } = useLanguageModelsByProviders(); + const { data: providers, isLoading: providersLoading } = + useLanguageModelProviders(); + + const loading = modelsByProvidersLoading || providersLoading; // Ollama Models Hook const { models: ollamaModels, @@ -96,7 +101,7 @@ export function ModelPicker({ // Get auto provider models (if any) const autoModels = - !providersLoading && modelsByProviders && modelsByProviders["auto"] + !loading && modelsByProviders && modelsByProviders["auto"] ? modelsByProviders["auto"] : []; @@ -126,7 +131,7 @@ export function ModelPicker({ {/* Cloud models - loading state */} - {providersLoading ? ( + {loading ? (
Loading models...
@@ -190,18 +195,23 @@ export function ModelPicker({ // Skip auto provider as it's already handled if (providerId === "auto") return null; + const provider = providers?.find((p) => p.id === providerId); + if (models.length === 0) return null; + return (
- {providerId} + {provider?.name} {models.length} models
- {providerId} Models + + {provider?.name} Models + {models.map((model) => (