|
|
@@ -0,0 +1,135 @@
|
|
|
+import type { AuthConfig, DeploymentStatus, RuntimeTemplate } from './types';
|
|
|
+
|
|
|
+const MODEL_CATEGORIES: { value: ModelCategory; label: string }[] = [
|
|
|
+ { value: 'language', label: 'Language' },
|
|
|
+ { value: 'embedding', label: 'Embedding' },
|
|
|
+ { value: 'reranker', label: 'Reranker' },
|
|
|
+];
|
|
|
+
|
|
|
+const MODEL_MODALITIES = [
|
|
|
+ { value: 'text', label: 'Text' },
|
|
|
+ { value: 'image', label: 'Image' },
|
|
|
+ { value: 'video', label: 'Video' },
|
|
|
+ { value: 'audio', label: 'Audio' },
|
|
|
+];
|
|
|
+
|
|
|
+const MODEL_PROVIDERS = [
|
|
|
+ { value: 'openai', label: 'OpenAI' },
|
|
|
+ { value: 'anthropic', label: 'Anthropic' },
|
|
|
+ { value: 'cohere', label: 'Cohere' },
|
|
|
+ { value: 'google', label: 'Google' },
|
|
|
+ { value: 'azure', label: 'Azure' },
|
|
|
+ { value: 'aws', label: 'AWS' },
|
|
|
+ { value: 'deepseek', label: 'DeepSeek' },
|
|
|
+ { value: 'minimax', label: 'MiniMax' },
|
|
|
+ { value: 'moonshot', label: 'Moonshot AI' },
|
|
|
+ { value: 'qwen', label: 'Qwen' },
|
|
|
+ { value: 'zai', label: 'Z.ai' },
|
|
|
+ { value: 'other', label: 'Other' },
|
|
|
+];
|
|
|
+
|
|
|
+const MODEL_RUNTIMES = [
|
|
|
+ {
|
|
|
+ value: 'llama.cpp',
|
|
|
+ label: 'llama.cpp',
|
|
|
+ supports: new Set(['language', 'embedding', 'reranker']),
|
|
|
+ versions: [
|
|
|
+ { value: 'llama.cpp', label: 'CPU' },
|
|
|
+ { value: 'llama.cpp-embedding', label: 'Embedding CPU' },
|
|
|
+ { value: 'llama.cpp-reranker', label: 'Reranker CPU' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+type ModelCategory = 'language' | 'embedding' | 'reranker';
|
|
|
+type ModelModality = 'text' | 'image' | 'video' | 'audio';
|
|
|
+type ModelRuntime = 'llama.cpp' | 'vllm' | 'sglang' | 'tgi' | 'tei' | 'infinity';
|
|
|
+type ModelInferenceParameters = {
|
|
|
+ temperature?: string;
|
|
|
+ topP?: string;
|
|
|
+ maxTokens?: number;
|
|
|
+ extra?: {
|
|
|
+ [key: string]: string;
|
|
|
+ };
|
|
|
+};
|
|
|
+type ModelRuntimeInferenceParameters = {
|
|
|
+ chatTemplate?: string;
|
|
|
+ contextWindow?: number;
|
|
|
+ temperature?: string;
|
|
|
+ topK?: number;
|
|
|
+ topP?: string;
|
|
|
+ extra?: {
|
|
|
+ [key: string]: string;
|
|
|
+ };
|
|
|
+};
|
|
|
+type ExternalModelStatus = 'available' | 'error' | 'degraded' | 'rate-limited' | 'out-of-budget';
|
|
|
+
|
|
|
+type ModelInfo = {
|
|
|
+ family?: string;
|
|
|
+ baseModelId?: string;
|
|
|
+ releaseDate?: string;
|
|
|
+ displayName?: string;
|
|
|
+ parameterCount?: string;
|
|
|
+ // language models
|
|
|
+ contextWindow?: number;
|
|
|
+ inputs?: ModelModality[];
|
|
|
+ outputs?: ModelModality[];
|
|
|
+ capabilities?: string[];
|
|
|
+ // embedding models
|
|
|
+ embeddingDimensions?: number;
|
|
|
+ maxInputTokens?: number;
|
|
|
+ // all models
|
|
|
+ languages?: string[];
|
|
|
+};
|
|
|
+
|
|
|
+type ModelBase = {
|
|
|
+ id: string;
|
|
|
+ stack?: string;
|
|
|
+ name: string;
|
|
|
+ icon?: string;
|
|
|
+ description: string;
|
|
|
+ tags: string[];
|
|
|
+ info: ModelInfo;
|
|
|
+ category: ModelCategory;
|
|
|
+};
|
|
|
+
|
|
|
+type ExternalModel = ModelBase & {
|
|
|
+ mode: 'external';
|
|
|
+ provider: string;
|
|
|
+ providerModel: string;
|
|
|
+ apiBase?: string;
|
|
|
+ apiVersion?: string;
|
|
|
+ auth: AuthConfig;
|
|
|
+ extraParams?: Record<string, string>;
|
|
|
+ defaultInferenceParams?: ModelInferenceParameters;
|
|
|
+ status?: ExternalModelStatus;
|
|
|
+};
|
|
|
+
|
|
|
+type ManagedModel = ModelBase & {
|
|
|
+ mode: 'managed';
|
|
|
+ huggingFace?: {
|
|
|
+ endpoint?: string;
|
|
|
+ repo: string;
|
|
|
+ revision?: string;
|
|
|
+ fileName?: string;
|
|
|
+ };
|
|
|
+ runtime: RuntimeTemplate;
|
|
|
+ runtimeInferenceParameters?: ModelRuntimeInferenceParameters;
|
|
|
+ status?: DeploymentStatus;
|
|
|
+};
|
|
|
+
|
|
|
+type Model = ExternalModel | ManagedModel;
|
|
|
+
|
|
|
+export type {
|
|
|
+ ExternalModel,
|
|
|
+ ExternalModelStatus,
|
|
|
+ ManagedModel,
|
|
|
+ Model,
|
|
|
+ ModelBase,
|
|
|
+ ModelCategory,
|
|
|
+ ModelInferenceParameters,
|
|
|
+ ModelModality,
|
|
|
+ ModelRuntime,
|
|
|
+ ModelRuntimeInferenceParameters,
|
|
|
+};
|
|
|
+export { MODEL_CATEGORIES, MODEL_MODALITIES, MODEL_PROVIDERS, MODEL_RUNTIMES };
|