UNPKG

@microsoft/teams-ai

Version:

SDK focused on building AI based applications for Microsoft Teams.

70 lines 2.54 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LlamaModel = void 0; const axios_1 = __importDefault(require("axios")); const Colorize_1 = require("../internals/Colorize"); class LlamaModel { options; _httpClient; constructor(options) { this.options = options; // Create client this._httpClient = axios_1.default.create({ validateStatus: (status) => status < 400 || status == 429, headers: { Authorization: `Bearer ${options.apiKey}`, 'Content-Type': 'application/json', 'User-Agent': '@microsoft/teams-ai-v1' } }); } async completePrompt(context, memory, functions, tokenizer, template) { const max_input_tokens = template.config.completion.max_input_tokens; const result = await template.prompt.renderAsMessages(context, memory, functions, tokenizer, max_input_tokens); if (result.tooLong) { return { status: 'too_long', error: new Error('The generated prompt length was too long') }; } let last = result.output[result.output.length - 1]; if (last?.role !== 'user') { last = undefined; } let res; if (this.options.logRequests) { console.log(Colorize_1.Colorize.title('CHAT PROMPT:')); console.log(Colorize_1.Colorize.output(result.output)); } try { res = await this._httpClient.post(this.options.endpoint, { input_data: { input_string: result.output, parameters: template.config.completion } }); if (this.options.logRequests) { console.log(Colorize_1.Colorize.title('CHAT RESPONSE:')); console.log(Colorize_1.Colorize.value('status', res.status)); console.log(Colorize_1.Colorize.output(res.data.output)); } } catch (err) { console.error(err); throw err; } return { status: 'success', input: last, message: { role: 'assistant', content: res.data.output } }; } } exports.LlamaModel = LlamaModel; //# sourceMappingURL=LlamaModel.js.map