doomiaichat
Version:
Doomisoft OpenAI
76 lines (75 loc) • 3.65 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const declare_1 = require("./declare");
const gptbase_1 = __importDefault(require("./gptbase"));
class StabilityAI extends gptbase_1.default {
/**
*
* @param apiKey 调用OpenAI 的key
* @param azureOption 用作accesstoken的缓存
* @param apiOption 用作accesstoken的缓存
*/
constructor(apiKey, urlOption, apiOption = {}) {
super();
this.apiKey = apiKey;
this.apiSetting = urlOption;
this.apiOption = apiOption;
if (!this.apiSetting.endpoint.toLowerCase().startsWith('http')) {
this.apiSetting.endpoint = 'https://' + this.apiSetting.endpoint;
}
}
/**
* 请求Stable作画的接口
*/
chatRequest(chatText, paramOption, axiosOption = {}) {
return __awaiter(this, void 0, void 0, function* () {
if (!chatText)
return { successed: false, error: { errcode: 2, errmsg: '缺失聊天的内容' } };
axiosOption = Object.assign({}, axiosOption, {
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": `Bearer ${this.apiKey}`
}
});
try {
let param = Object.assign(Object.assign({}, axiosOption), { method: "post", url: `${this.apiSetting.endpoint}/v1/generation/${this.apiSetting.engine}/text-to-image`, data: {
text_prompts: [
{
text: chatText
}
],
cfg_scale: paramOption.cfg_scale || this.apiOption.cfg_scale || 7,
clip_guidance_preset: paramOption.clip_guidance_preset || this.apiOption.clip_guidance_preset || "FAST_BLUE",
height: paramOption.height || this.apiOption.height || 512,
width: paramOption.width || this.apiOption.width || 512,
samples: paramOption.samples || this.apiOption.samples || 1,
steps: paramOption.steps || this.apiOption.steps || 30,
} });
const response = yield (0, declare_1.request)(param);
if (response.successed) {
let data = response.data;
return { successed: true, type: 'image', data: data.artifacts, };
}
return Object.assign({ successed: false }, response.data);
}
catch (error) {
console.log('result is error ', error);
return { successed: false, error };
}
});
}
}
exports.default = StabilityAI;