2024-07-06 14:19:33 +05:30
|
|
|
import { loadGroqChatModels } from './groq';
|
2024-07-08 15:39:27 +05:30
|
|
|
import { loadOllamaChatModels, loadOllamaEmbeddingsModels } from './ollama';
|
|
|
|
import { loadOpenAIChatModels, loadOpenAIEmbeddingsModels } from './openai';
|
2024-07-15 21:20:16 +05:30
|
|
|
import { loadAnthropicChatModels } from './anthropic';
|
2024-07-08 15:39:27 +05:30
|
|
|
import { loadTransformersEmbeddingsModels } from './transformers';
|
2024-11-28 20:47:18 +05:30
|
|
|
import { loadGeminiChatModels, loadGeminiEmbeddingsModels } from './gemini';
|
2025-01-26 18:18:35 +04:00
|
|
|
import { loadLMStudioChatModels, loadLMStudioEmbeddingsModels } from './lmstudio';
|
2024-07-06 14:19:33 +05:30
|
|
|
|
|
|
|
const chatModelProviders = {
|
|
|
|
openai: loadOpenAIChatModels,
|
|
|
|
groq: loadGroqChatModels,
|
|
|
|
ollama: loadOllamaChatModels,
|
2024-07-15 21:20:16 +05:30
|
|
|
anthropic: loadAnthropicChatModels,
|
2024-11-28 20:47:18 +05:30
|
|
|
gemini: loadGeminiChatModels,
|
2025-01-26 18:18:35 +04:00
|
|
|
lm_studio: loadLMStudioChatModels,
|
2024-07-06 14:19:33 +05:30
|
|
|
};
|
|
|
|
|
|
|
|
const embeddingModelProviders = {
|
2024-07-08 15:39:27 +05:30
|
|
|
openai: loadOpenAIEmbeddingsModels,
|
|
|
|
local: loadTransformersEmbeddingsModels,
|
|
|
|
ollama: loadOllamaEmbeddingsModels,
|
2024-11-28 20:47:18 +05:30
|
|
|
gemini: loadGeminiEmbeddingsModels,
|
2025-01-26 18:18:35 +04:00
|
|
|
lm_studio: loadLMStudioEmbeddingsModels,
|
2024-07-06 14:19:33 +05:30
|
|
|
};
|
|
|
|
|
|
|
|
export const getAvailableChatModelProviders = async () => {
|
|
|
|
const models = {};
|
|
|
|
|
|
|
|
for (const provider in chatModelProviders) {
|
2024-07-08 15:39:27 +05:30
|
|
|
const providerModels = await chatModelProviders[provider]();
|
|
|
|
if (Object.keys(providerModels).length > 0) {
|
2024-07-15 21:20:16 +05:30
|
|
|
models[provider] = providerModels;
|
2024-07-08 15:39:27 +05:30
|
|
|
}
|
2024-07-06 14:19:33 +05:30
|
|
|
}
|
|
|
|
|
2024-07-15 21:20:16 +05:30
|
|
|
models['custom_openai'] = {};
|
2024-07-08 15:24:45 +05:30
|
|
|
|
2024-07-06 14:19:33 +05:30
|
|
|
return models;
|
|
|
|
};
|
|
|
|
|
|
|
|
export const getAvailableEmbeddingModelProviders = async () => {
|
|
|
|
const models = {};
|
|
|
|
|
|
|
|
for (const provider in embeddingModelProviders) {
|
2024-07-08 15:39:27 +05:30
|
|
|
const providerModels = await embeddingModelProviders[provider]();
|
|
|
|
if (Object.keys(providerModels).length > 0) {
|
2024-07-15 21:20:16 +05:30
|
|
|
models[provider] = providerModels;
|
2024-07-08 15:39:27 +05:30
|
|
|
}
|
2024-07-06 14:19:33 +05:30
|
|
|
}
|
|
|
|
|
|
|
|
return models;
|
|
|
|
};
|