Loosen provider type to a string (#144)

This commit is contained in:
Will Chen
2025-05-12 22:29:36 -07:00
committed by GitHub
parent f628c81f4c
commit d1027622b4
3 changed files with 6 additions and 21 deletions

View File

@@ -1,4 +1,4 @@
import type { LargeLanguageModel, ModelProvider } from "@/lib/schemas";
import type { LargeLanguageModel } from "@/lib/schemas";
import { Button } from "@/components/ui/button";
import {
Tooltip,
@@ -216,7 +216,7 @@ export function ModelPicker({
onClick={() => {
onModelSelect({
name: model.apiName,
provider: providerId as ModelProvider,
provider: providerId,
});
setOpen(false);
}}

View File

@@ -5,7 +5,6 @@ import {
} from "@/db/schema";
import type { LanguageModelProvider, LanguageModel } from "@/ipc/ipc_types";
import { eq } from "drizzle-orm";
import { ModelProvider } from "@/lib/schemas";
export interface ModelOption {
name: string;
@@ -16,12 +15,7 @@ export interface ModelOption {
contextWindow?: number;
}
export type RegularModelProvider = Exclude<
ModelProvider,
"ollama" | "lmstudio"
>;
export const MODEL_OPTIONS: Record<RegularModelProvider, ModelOption[]> = {
export const MODEL_OPTIONS: Record<string, ModelOption[]> = {
openai: [
// https://platform.openai.com/docs/models/gpt-4.1
{
@@ -109,7 +103,7 @@ export const PROVIDER_TO_ENV_VAR: Record<string, string> = {
};
export const PROVIDERS: Record<
RegularModelProvider,
string,
{
displayName: string;
hasFreeTier?: boolean;
@@ -286,7 +280,7 @@ export async function getLanguageModels({
let hardcodedModels: LanguageModel[] = [];
if (provider.type === "cloud") {
if (providerId in MODEL_OPTIONS) {
const models = MODEL_OPTIONS[providerId as RegularModelProvider] || [];
const models = MODEL_OPTIONS[providerId] || [];
hardcodedModels = models.map((model) => ({
...model,
apiName: model.name,

View File

@@ -35,26 +35,17 @@ const providers = [
"ollama",
"lmstudio",
] as const;
/**
* Zod schema for model provider
*/
export const ModelProviderSchema = z.enum(providers);
export const cloudProviders = providers.filter(
(provider) => provider !== "ollama" && provider !== "lmstudio",
);
/**
* Type derived from the ModelProviderSchema
*/
export type ModelProvider = z.infer<typeof ModelProviderSchema>;
/**
* Zod schema for large language model configuration
*/
export const LargeLanguageModelSchema = z.object({
name: z.string(),
provider: ModelProviderSchema,
provider: z.string(),
});
/**