V 2.2.6 增加了MJ的api

This commit is contained in:
2024-06-01 15:08:22 +08:00
parent 941a86d07a
commit 8b011856c2
52 changed files with 3255 additions and 2376 deletions
+26 -3
View File
@@ -4,6 +4,8 @@ import { DEFINE_STRING } from "../../define/define_string";
import { define } from "../../define/define";
let fspromises = require("fs").promises;
import { gptDefine } from "../../define/gptDefine";
import { apiUrl } from "../../define/api/apiUrlDefine";
import { successMessage } from "../generalTools";
export class GPT {
constructor(global) {
@@ -255,6 +257,18 @@ export class GPT {
gpt_key = this.global.config.gpt_key,
gpt_model = this.global.config.gpt_model) {
try {
// 还有自定义的
let all_options = (await this.GetGPTBusinessOption("all", (value) => value.gpt_url)).data;
// 判断gpt_business 是不是一个http开头的
if (!gpt_url.includes("http")) {
// 获取对应Id的gpt_url
let index = all_options.findIndex(item => item.value == gpt_url && item.gpt_url);
if (index < 0) {
throw new Error("获取GPT的服务商配置失败");
}
gpt_url = all_options[index].gpt_url;
}
let data = {
"model": gpt_model,
@@ -268,7 +282,8 @@ export class GPT {
url: gpt_url,
headers: {
'Authorization': `Bearer ${gpt_key}`,
'Content-Type': 'application/json'
'Content-Type': 'application/json',
"Accept": "application/json"
},
data: JSON.stringify(data)
};
@@ -317,8 +332,16 @@ export class GPT {
* 获取GPT的服务商配置,默认的和自定义的
* @returns
*/
async GetGPTBusinessOption(value) {
return await gptDefine.getGptDataByTypeAndProperty(value, "gpt_options", []);
async GetGPTBusinessOption(value, callback = null) {
let res = await gptDefine.getGptDataByTypeAndProperty(value, "gpt_options", []);
if (res.code == 0) {
return res;
} else {
if (callback) {
callback(res.data)
}
return successMessage(res.data)
}
}
/**
+48
View File
@@ -0,0 +1,48 @@
import { errorMessage, successMessage } from "../generalTools";
import path from "path";
import { Tools } from "../tools";
export class Image {
constructor(global) {
this.global = global;
this.tools = new Tools();
}
// 将指定的文件夹复制到四个文件夹中
async OneSplitFour(value) {
try {
value = JSON.parse(value);
let count = value[1];
let data = value[0];
// 先创建输出文件
if (count <= 1) {
throw new Error("可选择的图片的数量必须大于1");
}
for (let i = 1; i < count; i++) {
let out_folder = path.join(this.global.config.project_path, `tmp/output_crop_0000${i + 1}`);
// 判断当前的文件夹是不是存在,存在删除
let isH = await this.tools.checkExists(out_folder);
if (isH) {
await this.tools.deleteFileOrDirectory(out_folder);
}
await this.tools.checkFolderExistsOrCreate(out_folder)
}
for (let i = 0; i < data.length; i++) {
const element = data[i];
let subImagePath = element.subImagePath;
for (let j = 1; j < count; j++) {
let out_file = path.join(this.global.config.project_path, `tmp/output_crop_0000${j + 1}/${element.name}`);
if (subImagePath[j] && subImagePath[j].startsWith("file")) {
subImagePath[j] = subImagePath[j].replace("file://", "");
subImagePath[j] = subImagePath[j].replace(/\?time=.*$/, '');
}
await this.tools.copyFileOrDirectory(subImagePath[j], out_file);
}
}
return successMessage("拆分成功");
} catch (error) {
return errorMessage(error.message);
}
}
}