UNPKG

doomiaichat

Version:

Doomisoft OpenAI

76 lines (75 loc) 3.65 kB
"use strict"; 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;