← back to AbramsOS
lib/chat-providers/index.js
25 lines
// Uniform provider dispatcher. Each adapter exposes async chat({system,messages,providerModel}) -> {text}.
const gemini = require('./gemini');
const ollama = require('./ollama');
const claudeCli = require('./claude-cli');
const openai = require('./openai');
async function dispatch(model, { system, messages }) {
const args = { system, messages, providerModel: model.providerModel };
switch (model.provider) {
case 'gemini':
return gemini.chat(args);
case 'ollama':
return ollama.chat(args);
case 'claude-cli':
return claudeCli.chat(args);
case 'openai':
return openai.chat(args);
default:
throw new Error(`unknown provider: ${model.provider}`);
}
}
module.exports = { dispatch, availableModels: ollama.availableModels };