Adjust all Vendors ranks

This commit is contained in:
Enrico Ros
2024-10-02 15:25:28 -07:00
parent d5fd66f07c
commit f012b99b17
16 changed files with 19 additions and 18 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ import type { ModelVendorId } from './vendors.registry';
export interface IModelVendor<TServiceSettings = unknown, TAccess = unknown, TLLMOptions = unknown, TDLLM = DLLM<TLLMOptions>> {
readonly id: ModelVendorId;
readonly name: string;
readonly rank: number;
readonly displayRank: number; // [10...] Foundation Models, [30...] 3rd party Clouds, [40...] Aggregators, [50...] Local Models
readonly location: 'local' | 'cloud';
readonly brandColor?: string;
readonly instanceLimit?: number;
+1 -1
View File
@@ -22,7 +22,7 @@ interface DAnthropicServiceSettings {
export const ModelVendorAnthropic: IModelVendor<DAnthropicServiceSettings, AnthropicAccessSchema, DOpenAILLMOptions> = {
id: 'anthropic',
name: 'Anthropic',
rank: 13,
displayRank: 12,
location: 'cloud',
brandColor: '#cc785c',
instanceLimit: 1,
+1 -1
View File
@@ -36,7 +36,7 @@ interface DAzureServiceSettings {
export const ModelVendorAzure: IModelVendor<DAzureServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'azure',
name: 'Azure',
rank: 14,
displayRank: 30,
location: 'cloud',
instanceLimit: 2,
hasBackendCapKey: 'hasLlmAzureOpenAI',
+1 -1
View File
@@ -16,7 +16,7 @@ export interface DDeepseekServiceSettings {
export const ModelVendorDeepseek: IModelVendor<DDeepseekServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'deepseek',
name: 'Deepseek',
rank: 19,
displayRank: 16,
location: 'cloud',
instanceLimit: 1,
hasBackendCapKey: 'hasLlmDeepseek',
+1 -1
View File
@@ -28,7 +28,7 @@ interface LLMOptionsGemini {
export const ModelVendorGemini: IModelVendor<DGeminiServiceSettings, GeminiAccessSchema, LLMOptionsGemini> = {
id: 'googleai',
name: 'Gemini',
rank: 11,
displayRank: 14,
location: 'cloud',
instanceLimit: 1,
hasBackendCapKey: 'hasLlmGemini',
+1 -1
View File
@@ -16,7 +16,7 @@ interface DGroqServiceSettings {
export const ModelVendorGroq: IModelVendor<DGroqServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'groq',
name: 'Groq',
rank: 18,
displayRank: 32,
location: 'cloud',
instanceLimit: 1,
hasBackendCapKey: 'hasLlmGroq',
+1 -1
View File
@@ -15,7 +15,7 @@ interface DLMStudioServiceSettings {
export const ModelVendorLMStudio: IModelVendor<DLMStudioServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'lmstudio',
name: 'LM Studio',
rank: 21,
displayRank: 52,
location: 'local',
instanceLimit: 1,
+1 -1
View File
@@ -17,7 +17,7 @@ interface DLocalAIServiceSettings {
export const ModelVendorLocalAI: IModelVendor<DLocalAIServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'localai',
name: 'LocalAI',
rank: 20,
displayRank: 50,
location: 'local',
instanceLimit: 4,
hasBackendCapKey: 'hasLlmLocalAIHost',
+1 -1
View File
@@ -19,7 +19,7 @@ type DMistralServiceSettings = Pick<DOpenAIServiceSettings, 'oaiKey' | 'oaiHost'
export const ModelVendorMistral: IModelVendor<DMistralServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'mistral',
name: 'Mistral',
rank: 15,
displayRank: 18,
location: 'cloud',
instanceLimit: 1,
hasBackendCapKey: 'hasLlmMistral',
+1 -1
View File
@@ -19,7 +19,7 @@ interface DOllamaServiceSettings {
export const ModelVendorOllama: IModelVendor<DOllamaServiceSettings, OllamaAccessSchema, DOpenAILLMOptions> = {
id: 'ollama',
name: 'Ollama',
rank: 22,
displayRank: 54,
location: 'local',
instanceLimit: 2,
hasBackendCapKey: 'hasLlmOllama',
+1 -1
View File
@@ -33,7 +33,7 @@ export interface DOpenAILLMOptions {
export const ModelVendorOpenAI: IModelVendor<DOpenAIServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'openai',
name: 'OpenAI',
rank: 10,
displayRank: 10,
location: 'cloud',
instanceLimit: 5,
hasBackendCapKey: 'hasLlmOpenAI',
+1 -1
View File
@@ -17,7 +17,7 @@ export interface DOpenPipeServiceSettings {
export const ModelVendorOpenPipe: IModelVendor<DOpenPipeServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'openpipe',
name: 'OpenPipe',
rank: 16,
displayRank: 42,
location: 'cloud',
instanceLimit: 1,
hasBackendCapKey: 'hasLlmOpenPipe',
+1 -1
View File
@@ -32,7 +32,7 @@ export interface DOpenRouterServiceSettings {
export const ModelVendorOpenRouter: IModelVendor<DOpenRouterServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'openrouter',
name: 'OpenRouter',
rank: 12,
displayRank: 40,
location: 'cloud',
instanceLimit: 1,
hasFreeModels: true,
+1 -1
View File
@@ -16,7 +16,7 @@ interface DPerpexityServiceSettings {
export const ModelVendorPerplexity: IModelVendor<DPerpexityServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'perplexity',
name: 'Perplexity',
rank: 18,
displayRank: 20,
location: 'cloud',
instanceLimit: 1,
hasBackendCapKey: 'hasLlmPerplexity',
+1 -1
View File
@@ -18,7 +18,7 @@ interface DTogetherAIServiceSettings {
export const ModelVendorTogetherAI: IModelVendor<DTogetherAIServiceSettings, OpenAIAccessSchema, DOpenAILLMOptions> = {
id: 'togetherai',
name: 'Together AI',
rank: 17,
displayRank: 34,
location: 'cloud',
instanceLimit: 1,
hasBackendCapKey: 'hasLlmTogetherAI',
+4 -3
View File
@@ -19,6 +19,7 @@ import type { IModelVendor } from './IModelVendor';
export type ModelVendorId =
| 'anthropic'
| 'azure'
| 'deepseek'
| 'googleai'
| 'groq'
| 'lmstudio'
@@ -30,12 +31,13 @@ export type ModelVendorId =
| 'openrouter'
| 'perplexity'
| 'togetherai'
| 'deepseek';
;
/** Global: Vendor Instances Registry **/
const MODEL_VENDOR_REGISTRY: Record<ModelVendorId, IModelVendor> = {
anthropic: ModelVendorAnthropic,
azure: ModelVendorAzure,
deepseek: ModelVendorDeepseek,
googleai: ModelVendorGemini,
groq: ModelVendorGroq,
lmstudio: ModelVendorLMStudio,
@@ -47,13 +49,12 @@ const MODEL_VENDOR_REGISTRY: Record<ModelVendorId, IModelVendor> = {
openrouter: ModelVendorOpenRouter,
perplexity: ModelVendorPerplexity,
togetherai: ModelVendorTogetherAI,
deepseek: ModelVendorDeepseek,
} as Record<string, IModelVendor>;
export function findAllModelVendors(): IModelVendor[] {
const modelVendors = Object.values(MODEL_VENDOR_REGISTRY);
modelVendors.sort((a, b) => a.rank - b.rank);
modelVendors.sort((a, b) => a.displayRank - b.displayRank);
return modelVendors;
}