Unverified 提交 d1027622 authored 作者: Will Chen's avatar Will Chen 提交者: GitHub

Loosen provider type to a string (#144)

上级 f628c81f
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(),
});
/**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论