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
JavaScript
;
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;