1. 文案处理后端服务迁移(此版本之前的后端服务持续到12月1日) 2. 新增默认动图方式 3. (聚合推文)实现原创分类的图生视频(runway,luma,可灵) 4. 修复软件内配音 5. 删除旧的原创生图(原创,SD反推,MJ反推等操作在聚合推文中) 6. 导出剪映适配(视频) 7. 新增四个单句推理模式
139 lines
4.4 KiB
TypeScript
139 lines
4.4 KiB
TypeScript
import path from 'path'
|
||
import os from 'os'
|
||
import { define } from '../../define/define'
|
||
import { errorMessage, successMessage } from '../Public/generalTools'
|
||
import axios from 'axios'
|
||
import { ServiceBase } from '../../define/db/service/serviceBase'
|
||
import { isEmpty } from 'lodash'
|
||
import { ValidateJson } from '../../define/Tools/validate'
|
||
import { SyncGptKeyType } from '../../define/enum/softwareEnum'
|
||
import { GeneralResponse } from '../../model/generalResponse'
|
||
import { SoftWareServiceBasic } from '../Service/ServiceBasic/softwareServiceBasic'
|
||
import { SubtitleService } from '../Service/Subtitle/subtitleService'
|
||
import { SubtitleModel } from '../../model/subtitle'
|
||
|
||
export class GptSetting extends ServiceBase {
|
||
softWareServiceBasic: SoftWareServiceBasic
|
||
subtitleService: SubtitleService
|
||
constructor() {
|
||
super()
|
||
axios.defaults.baseURL = define.serverUrl
|
||
this.softWareServiceBasic = new SoftWareServiceBasic();
|
||
this.subtitleService = new SubtitleService()
|
||
}
|
||
|
||
/**
|
||
* 初始化数据
|
||
* @returns
|
||
*/
|
||
async InitAISetting() {
|
||
let defaultData = {
|
||
laiapi: {
|
||
gpt_url: 'https://api.laitool.cc',
|
||
api_key: "请输入你的LAI API 的 Key",
|
||
model: "请输入你的LAI API 的 Model名称"
|
||
},
|
||
kimi: {
|
||
gpt_url: 'https://api.moonshot.cn',
|
||
api_key: "请输入你的Kimi API 的 Key",
|
||
model: "请输入你的Kimi API 的 Model名称"
|
||
},
|
||
doubao: {
|
||
gpt_url: 'https://ark.cn-beijing.volces.com/api',
|
||
api_key: "请输入你的Doubao API 的 Key",
|
||
model: "请输入你的Doubao API 的 Model名称"
|
||
}
|
||
}
|
||
await this.SaveAISetting(defaultData)
|
||
return defaultData
|
||
}
|
||
|
||
/**
|
||
* 获取服务强上面的提示词相关的数据
|
||
*/
|
||
async InitServerGptOptions() {
|
||
try {
|
||
// 获取提示词类型数据
|
||
let promptRes = await axios.get<GeneralResponse.SuccessItem>('/lms/Prompt/GetPromptTypeOptions');
|
||
if (promptRes.data.code != 1) {
|
||
throw new Error(promptRes.data.message)
|
||
}
|
||
let promptType = promptRes.data.data
|
||
|
||
// 获取提示词数据
|
||
let prompt = await axios.get('/lms/Prompt/GetPromptOptions/all');
|
||
if (prompt.data.code != 1) {
|
||
throw new Error(prompt.data.message)
|
||
}
|
||
let promptData = prompt.data.data
|
||
|
||
let gptOptions = {
|
||
promptType: promptType,
|
||
promptData: promptData
|
||
}
|
||
return successMessage(gptOptions, '请求成功', 'GptSetting_InitServerGptOptions')
|
||
} catch (error) {
|
||
return errorMessage(
|
||
'获取服务端提示词数据错误,错误信息如下:' + error.toString(),
|
||
'GptSetting_InitServerGptOptions'
|
||
)
|
||
}
|
||
}
|
||
|
||
// 获取软件设置里面的AI设置,没有的话设置初始值
|
||
async GetAISetting() {
|
||
try {
|
||
await this.InitService()
|
||
let aiSetting = undefined
|
||
let res = this.softService.GetSoftWarePropertyData('aiSetting')
|
||
if (isEmpty(res)) {
|
||
aiSetting = await this.InitAISetting();
|
||
} else {
|
||
let tryP = ValidateJson(res)
|
||
if (!tryP) {
|
||
throw new Error('AI设置的数据格式不正确')
|
||
}
|
||
aiSetting = JSON.parse(res)
|
||
}
|
||
return successMessage(aiSetting, '请求成功', 'GptSetting_GetAISetting')
|
||
} catch (error) {
|
||
return errorMessage(
|
||
'获取软件设置里面的AI设置错误,错误信息如下:' + error.toString(),
|
||
'GptSetting_GetAISetting'
|
||
)
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 保存软件中的AI设置
|
||
* @param {*} value
|
||
*/
|
||
async SaveAISetting(value) {
|
||
try {
|
||
await this.InitService()
|
||
let res = this.softService.SaveSoftwarePropertyData('aiSetting', JSON.stringify(value))
|
||
return res
|
||
} catch (error) {
|
||
return errorMessage(
|
||
'保存软件设置里面的AI设置错误,错误信息如下:' + error.toString(),
|
||
'GptSetting_SaveAISetting'
|
||
)
|
||
}
|
||
}
|
||
|
||
|
||
/**
|
||
* 同步GPT的Key到其他的设置中
|
||
* @param syncTpye
|
||
*/
|
||
async SyncGptKey(syncTpye: SyncGptKeyType): Promise<GeneralResponse.SuccessItem | GeneralResponse.ErrorItem> {
|
||
try {
|
||
let globalGptKey = global.config.gpt_key;
|
||
console.log(globalGptKey);
|
||
return successMessage(globalGptKey, '获取全局配置成功', 'GptSetting_SyncGptKey')
|
||
} catch (error) {
|
||
return errorMessage("同步GPT的Key到其他的设置中失败,失败信息如下:" + error.toString(), "GptSetting_SyncGptKey")
|
||
}
|
||
}
|
||
}
|