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!

44 lines (36 loc) 1.27 kB
import axios from 'axios'; import { CompletionService } from '../interfaces/completion.interface'; import { AdapterConfig, Message } from '../interfaces'; export class BardAdapter implements CompletionService { private readonly apiUrl: string; private readonly apiKey: string; constructor(adapterConfig: AdapterConfig) { this.apiUrl = adapterConfig.baseurl; this.apiKey = adapterConfig.apiKey; } async complete(prompt: string, maxTokens: number): Promise<string> { try { axios.defaults.headers.common.Authorization = `Bearer ${this.apiKey}`; axios.defaults.headers.common['Content-Type'] = `application/json`; const response = await axios.post<BardAiResponse>(this.apiUrl, { prompt, maxTokens, }); if (response.status === 200) { return response.data.completion; } else { throw new Error(`Error completing prompt: ${response.status}`); } } catch (error) { console.error('Error completing prompt:', error); throw error; } } getChatCompletions(messages: Message[], maxTokens: number): Promise<string> { console.log({ messages, maxTokens }); throw new Error('Method not implemented.'); } } interface BardAiResponse { completion: string; }