Files
vendoo/lib/ai-router.mjs
Masterluke77andGitHub 6f48827f4d Vendoo 1.41.2 – Git Ignore Boundary & Module Tracking Hotfix (#18)
* docs: prepare Vendoo 1.41.2 git-ignore boundary hotfix

* fix: track native source modules with root-anchored runtime ignores
2026-07-09 17:09:00 +02:00

41 lines
1.3 KiB
JavaScript

import * as claude from './ai-claude.mjs';
import * as openai from './ai-openai.mjs';
import * as openrouter from './ai-openrouter.mjs';
import * as local from './ai-local.mjs';
const providers = { claude, openai, openrouter, local };
export async function generate(provider, images, systemPrompt, model) {
const ai = providers[provider];
if (!ai) throw new Error(`Unknown AI provider: ${provider}`);
return ai.generate(images, systemPrompt, model);
}
export async function generateText(provider, systemPrompt, userPrompt, model) {
const ai = providers[provider];
if (!ai) throw new Error(`Unknown AI provider: ${provider}`);
if (typeof ai.generateText !== 'function') throw new Error(`Textgenerierung wird von ${provider} nicht unterstützt.`);
return ai.generateText(systemPrompt, userPrompt, model);
}
export function getProviders() {
return [
{ id: 'claude', name: 'Claude', hasModels: false, needsKey: 'ANTHROPIC_API_KEY' },
{ id: 'openai', name: 'OpenAI', hasModels: false, needsKey: 'OPENAI_API_KEY' },
{
id: 'openrouter',
name: 'OpenRouter',
hasModels: true,
models: openrouter.MODELS,
needsKey: 'OPENROUTER_API_KEY',
},
{
id: 'local',
name: 'Lokal (Ollama)',
hasModels: true,
models: local.MODELS,
needsKey: null,
},
];
}