UNPKG

llms-client

Version:

A powerful package that enables users to effortlessly connect to various Language Models, including Claude, Bard, and ChatGPT. Stay tuned for upcoming support for Vicuna and Alpaca!

36 lines (30 loc) 1.12 kB
import { BardAdapter, ChatGPTAdapter, ClaudeAIAdapter } from './adapters'; import { AdapterConfig, CompletionService, Message } from './interfaces'; export * from './interfaces'; export class CompletionServiceSelector implements CompletionService { private adapter: CompletionService; constructor(adapterConfig: AdapterConfig) { switch (adapterConfig.type) { case 'chatGPT': if (!adapterConfig.model) { throw Error('Model is required for ChatGPT adapter'); } this.adapter = new ChatGPTAdapter(adapterConfig); break; case 'claudeAI': this.adapter = new ClaudeAIAdapter(adapterConfig); break; case 'bard': this.adapter = new BardAdapter(adapterConfig); break; default: throw Error(`Invalid adapter: ${adapterConfig.type}`); } } getChatCompletions(messages: Message[], maxTokens: number): Promise<string> { return this.adapter.getChatCompletions(messages, maxTokens); } complete(prompt: string, maxTokens: number): Promise<string> { return this.adapter.complete(prompt, maxTokens); } }