f3371ac1e3
* 📝 (README.md): add support for custom AI models and update documentation to reflect new environment variable OCO_ AI_PROVIDER (#351) * feat/add gemini (#349) * fix: prompt-module/@commitlint (#336) * docs: spelling fix (#325) --------- Co-authored-by: tumf <y.takahara@gmail.com> Co-authored-by: Drew Payment <drew.payment@gmail.com> Co-authored-by: Takanori Matsumoto <matscube@gmail.com> Co-authored-by: Kellan Stevens <kellan@kellanstevens.com> Co-authored-by: JMN09 <jmn09@mail.aub.edu> Co-authored-by: JMN09 <157629053+JMN09@users.noreply.github.com>
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { AiEngine } from '../engine/Engine';
|
|
import { OpenAi } from '../engine/openAi';
|
|
import { Gemini } from '../engine/gemini';
|
|
import { getConfig } from '../commands/config';
|
|
import { OllamaAi } from '../engine/ollama';
|
|
import { AnthropicAi } from '../engine/anthropic'
|
|
import { TestAi } from '../engine/testAi';
|
|
import { Azure } from '../engine/azure';
|
|
import { FlowiseAi } from '../engine/flowise'
|
|
|
|
export function getEngine(): AiEngine {
|
|
const config = getConfig();
|
|
const provider = config?.OCO_AI_PROVIDER;
|
|
|
|
if (provider?.startsWith('ollama')) {
|
|
const ollamaAi = new OllamaAi();
|
|
const model = provider.substring('ollama/'.length);
|
|
if (model) {
|
|
ollamaAi.setModel(model);
|
|
ollamaAi.setUrl(config?.OCO_OLLAMA_API_URL);
|
|
}
|
|
return ollamaAi;
|
|
} else if (provider == 'anthropic') {
|
|
return new AnthropicAi();
|
|
} else if (provider == 'test') {
|
|
return new TestAi();
|
|
} else if (provider == 'gemini') {
|
|
return new Gemini();
|
|
} else if (provider == 'azure') {
|
|
return new Azure();
|
|
} else if( provider == 'flowise'){
|
|
return new FlowiseAi();
|
|
}
|
|
|
|
//open ai gpt by default
|
|
return new OpenAi();
|
|
}
|