UNPKG

ts-chatgpt-api

Version:

ChatGPT API is a powerful tool developed on TypeScript that allows developers to easily integrate natural language processing capabilities into their applications. As a large language model trained by OpenAI, ChatGPT is capable of understanding and gener

91 lines (90 loc) 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BuildRequest = void 0; const types_1 = require("./types"); /** * @deprecated * This class is used for backward capability */ class BuildRequest { constructor(apiKey, aiModel = 'gpt-3.5-turbo', role = types_1.ChatGptRoleList.USER) { this.apiKey = apiKey; this.aiModel = aiModel; this.role = role; // list of messages which will send by Chat GPT API this.messages = []; } /** * Set AI engine model for generating response * @param aiModel */ setAiModel(aiModel) { this.aiModel = aiModel; } /** * Set role for single * @param role */ setRole(role) { this.role = role; } /** * Clean messages * @private */ resetMessages() { this.messages = []; } /** * Build request data for sending to ChatGPT API * @private */ buildRequest() { const requestBody = { model: this.aiModel, messages: this.messages }; return { method: 'POST', body: JSON.stringify(requestBody), headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${this.apiKey}` } }; } /** * Add new message * @param role * @param content */ addMessage(role, content) { this.messages.push({ role, content }); } /** * Return answers for multiple requests */ async processMultipleMessages() { const requestData = this.buildRequest(); const response = await fetch('https://api.openai.com/v1/chat/completions', requestData); const jsonResponse = await response.json(); this.resetMessages(); return jsonResponse; } /** * Return answer for single request * @param content */ async getAnswer(content) { this.resetMessages(); this.addMessage(this.role, content); const requestData = this.buildRequest(); const response = await fetch('https://api.openai.com/v1/chat/completions', requestData); const jsonResponse = await response.json(); return jsonResponse; } } exports.BuildRequest = BuildRequest;