Loosen provider type to a string (#144)
This commit is contained in:
@@ -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);
|
||||
}}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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(),
|
||||
});
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user