lobehub/src/database/utils/idGenerator.ts
Arvin Xu 39b790ec37
feat: support upload files direct into chat context (#7751)
* add document service

* add file item

* add file content for direct upload file

* fix tests

* fix tests

* fix tests

* add debug log for file-loaders

* add debug log and test

* improve loading

* update tests

* fix pdf parser

* fix pdf version

* fix pdf worker url

* fix pdf worker url

* fix test
2025-05-10 00:58:39 +08:00

29 lines
765 B
TypeScript

import { generate } from 'random-words';
import { createNanoId } from '@/utils/uuid';
const prefixes = {
agents: 'agt',
documents: 'docs',
files: 'file',
knowledgeBases: 'kb',
messages: 'msg',
plugins: 'plg',
sessionGroups: 'sg',
sessions: 'ssn',
threads: 'thd',
topics: 'tpc',
user: 'user',
} as const;
export const idGenerator = (namespace: keyof typeof prefixes, size = 12) => {
const hash = createNanoId(size);
const prefix = prefixes[namespace];
if (!prefix) throw new Error(`Invalid namespace: ${namespace}, please check your code.`);
return `${prefix}_${hash()}`;
};
export const randomSlug = (count = 2) => (generate(count) as string[]).join('-');
export const inboxSessionId = (userId: string) => `ssn_inbox_${userId}`;