@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.
60 lines (50 loc) • 2.03 kB
text/typescript
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';
const DEFAULT_S3_FILE_PATH = 'files';
export const getFileConfig = () => {
if (!!process.env.NEXT_PUBLIC_S3_DOMAIN) {
console.warn(
'⚠️ `NEXT_PUBLIC_S3_DOMAIN` will be de deprecated in the next major version, please replace it with `S3_PUBLIC_DOMAIN` in your env',
);
}
const S3_PUBLIC_DOMAIN = process.env.S3_PUBLIC_DOMAIN || process.env.NEXT_PUBLIC_S3_DOMAIN;
return createEnv({
client: {
/**
* @deprecated
*/
NEXT_PUBLIC_S3_DOMAIN: z.string().optional(),
NEXT_PUBLIC_S3_FILE_PATH: z.string().optional(),
},
runtimeEnv: {
CHUNKS_AUTO_EMBEDDING: process.env.CHUNKS_AUTO_EMBEDDING !== '0',
CHUNKS_AUTO_GEN_METADATA: process.env.CHUNKS_AUTO_GEN_METADATA !== '0',
NEXT_PUBLIC_S3_DOMAIN: process.env.NEXT_PUBLIC_S3_DOMAIN,
NEXT_PUBLIC_S3_FILE_PATH: process.env.NEXT_PUBLIC_S3_FILE_PATH || DEFAULT_S3_FILE_PATH,
S3_ACCESS_KEY_ID: process.env.S3_ACCESS_KEY_ID,
S3_BUCKET: process.env.S3_BUCKET,
S3_ENABLE_PATH_STYLE: process.env.S3_ENABLE_PATH_STYLE === '1',
S3_ENDPOINT: process.env.S3_ENDPOINT,
S3_PREVIEW_URL_EXPIRE_IN: parseInt(process.env.S3_PREVIEW_URL_EXPIRE_IN || '7200'),
S3_PUBLIC_DOMAIN,
S3_REGION: process.env.S3_REGION,
S3_SECRET_ACCESS_KEY: process.env.S3_SECRET_ACCESS_KEY,
S3_SET_ACL: process.env.S3_SET_ACL !== '0',
},
server: {
CHUNKS_AUTO_EMBEDDING: z.boolean(),
CHUNKS_AUTO_GEN_METADATA: z.boolean(),
// S3
S3_ACCESS_KEY_ID: z.string().optional(),
S3_BUCKET: z.string().optional(),
S3_ENABLE_PATH_STYLE: z.boolean(),
S3_ENDPOINT: z.string().url().optional(),
S3_PREVIEW_URL_EXPIRE_IN: z.number(),
S3_PUBLIC_DOMAIN: z.string().url().optional(),
S3_REGION: z.string().optional(),
S3_SECRET_ACCESS_KEY: z.string().optional(),
S3_SET_ACL: z.boolean(),
},
});
};
export const fileEnv = getFileConfig();