从服务端异步翻译
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import axios from 'axios'
|
||||
export default defineEventHandler(async event => {
|
||||
|
||||
// 获取任务列表的状态进度(普通用户只能看到自己的)
|
||||
@@ -20,9 +21,18 @@ export default defineEventHandler(async event => {
|
||||
return tasks
|
||||
}
|
||||
|
||||
// 翻译中文到英文
|
||||
const translate = async (text: string, callback:Function) => {
|
||||
if (!/^[a-zA-Z]+$/.test(text)) return
|
||||
text = encodeURIComponent(text)
|
||||
const {data} = await axios.get(`http://139.224.128.24:7861//api/text_to_text?zh=${text}`)
|
||||
if (callback) callback(data.en)
|
||||
return data.en
|
||||
}
|
||||
|
||||
// 添加任务到队列(生成一个32位随机字符串作为任务ID)
|
||||
if (event.node.req.method === 'POST') {
|
||||
const {
|
||||
let {
|
||||
model = 'SD2', // 模型
|
||||
ckpt = '768-v-ema', // 风格
|
||||
image = '', // 图片数据(img2img)
|
||||
@@ -39,14 +49,19 @@ export default defineEventHandler(async event => {
|
||||
const id = Math.random().toString(36).substring(2, 34) // 生成随机任务ID
|
||||
const uid = 1234567890 // 用户ID
|
||||
const createdAt = new Date().getTime() // 设定创建时间
|
||||
const status = 'waiting' // 任务状态
|
||||
const status = 'translate' // 任务状态(翻译)
|
||||
const progress = 0.00 // 任务进度
|
||||
const data:any[] = [] // 生成结果
|
||||
const task = { model, ckpt, image, prompt, remove, number, width, height, seed, sampler, prompt_guidance, quality_details, id, uid, createdAt, status, progress, data }
|
||||
console.log('task:', task)
|
||||
await useStorage().setItem(`task:${task.id}`, task) // 保存任务到内存
|
||||
const tasks = await useStorage().getKeys().then((keys: any[]) => keys.filter(key => key.startsWith('task:')))
|
||||
console.log('tasks:', tasks)
|
||||
translate(prompt, (en: string) => {
|
||||
task.prompt = en
|
||||
task.status = 'waiting' // 任务状态(排队)
|
||||
useStorage().setItem(`task:${task.id}`, task) // 修改任务状态
|
||||
})
|
||||
//const tasks = await useStorage().getKeys().then((keys: any[]) => keys.filter(key => key.startsWith('task:')))
|
||||
//console.log('tasks:', tasks)
|
||||
return task
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user