feat: Add Jimeng image generation service and related functionality

- Implemented JimengService for image generation with API integration.
- Created OSSService for handling image uploads to S3.
- Developed PBService for managing PocketBase interactions.
- Added task management for image creation and downloading using BullMQ.
- Introduced routes for creating image generation tasks.
- Implemented logging and error handling for image processing.
- Added configuration management for Redis and other services.
- Created scripts for testing image generation and PocketBase integration.
- Updated package dependencies and added new scripts for worker management.
This commit is contained in:
2026-01-09 02:55:04 +08:00
parent 7cca41b457
commit 9da3d14752
31 changed files with 3193 additions and 5 deletions

43
prompts/test/pb.ts Normal file
View File

@@ -0,0 +1,43 @@
import { createStorage } from 'unstorage';
import { config } from '../src/app.ts'
import { PBService } from '../src/services/pb.service.ts'
import path from "node:path";
import fsDriver from "unstorage/drivers/fs";
const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
const storage = createStorage({
driver: fsDriver({ base: 'storage' }),
});
const pbService = new PBService({
url: config.POCKETBASE_URL,
token: config.POCKETBASE_TOKEN,
});
async function main() {
// const listStorage = await storage.getKeys();
// const keys = listStorage.filter(key => key !== 'usage.json');
// for (const key of keys) {
// const value = await storage.getItem<any>(key);
// console.log(`Generating PB record for key: ${value}`, value);
// const { id, perfect: description, value: summary } = value;
// pbService.collection.create({
// title: '',
// summary,
// description,
// tags: [],
// data: {},
// status: '计划中',
// });
// console.log(`Created record for prompt ID: ${id}`);
// await sleep(100); // To avoid hitting rate limits
// }
const list = await pbService.collection.getFullList({
sort: '-created',
fields: 'id,title,summary,description,tags,status',
})
console.log('PocketBase Records:', list.length);
}
main();