UNPKG

textsynth

Version:
50 lines (39 loc) 1.26 kB
"use strict"; const config = require('./config'); const axios = require('axios'); const DEFAULT_ENGINE = "gptj_6B"; class Synth { constructor(api_key) { this._api_key = api_key; } _send_request(url, method, opts = {}) { let camelToUnderscore = (key) => { let result = key.replace(/([A-Z])/g, " $1"); return result.split(' ').join('_').toLowerCase(); } const data = {}; for (const key in opts) { data[camelToUnderscore(key)] = opts[key]; } return axios({ url, headers: { 'Authorization': `Bearer ${this._api_key}`, 'Content-Type': 'application/json' }, data: Object.keys(data).length ? data : '', method, }); } complete(opts) { const url = config.completionURL(opts.engine || DEFAULT_ENGINE); delete opts.engine; return this._send_request(url, 'post', opts); } logprob(opts) { const url = config.logprobURL(opts.engine || DEFAULT_ENGINE); delete opts.engine; return this._send_request(url, 'post', opts); } } module.exports = Synth;