LaiTool/src/main/setting/gptSetting.ts
lq1405 f17de033e1 V 3.2.2
1. 文案处理后端服务迁移(此版本之前的后端服务持续到12月1日)
2. 新增默认动图方式
3. (聚合推文)实现原创分类的图生视频(runway,luma,可灵)
4. 修复软件内配音
5. 删除旧的原创生图(原创,SD反推,MJ反推等操作在聚合推文中)
6. 导出剪映适配(视频)
7. 新增四个单句推理模式
2024-11-19 20:28:31 +08:00

139 lines
4.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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")
}
}
}