UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

39 lines (32 loc) 1.14 kB
// generate('1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 16); //=> "4f90d13a42" import { customAlphabet } from 'nanoid/non-secure'; import { generate } from 'random-words'; export const createNanoId = (size = 8) => customAlphabet('1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', size); const prefixes = { agents: 'agt', chatGroups: 'cg', documents: 'docs', files: 'file', generationBatches: 'gb', generationTopics: 'gt', generations: 'gen', knowledgeBases: 'kb', memory: 'mem', messageGroups: 'mg', 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}`;