rag-service/RAG/src/config/env.ts

29 lines
1.3 KiB
TypeScript

import { config as loadEnv } from "dotenv";
loadEnv();
loadEnv({ path: ".env.local", override: true });
function requireEnv(name: string, fallback?: string): string {
const value = process.env[name] ?? fallback;
if (!value) {
throw new Error(`Missing environment variable: ${name}`);
}
return value;
}
export const env = {
nodeEnv: process.env.NODE_ENV ?? "development",
port: Number(process.env.PORT ?? 3000),
qdrantUrl: requireEnv("QDRANT_URL", "http://localhost:6333"),
qdrantApiKey: process.env.QDRANT_API_KEY ?? "",
qdrantCollection: requireEnv("QDRANT_COLLECTION", "rag_chunks"),
qdrantLogsCollection: requireEnv("QDRANT_LOGS_COLLECTION", "rag_eval_logs"),
embeddingProvider: requireEnv("EMBEDDING_PROVIDER", "openrouter"),
embeddingModel: requireEnv("EMBEDDING_MODEL", "qwen/qwen3-embedding-8b"),
embeddingBaseUrl: requireEnv("EMBEDDING_BASE_URL", "https://openrouter.ai/api/v1"),
embeddingApiKey: process.env.EMBEDDING_API_KEY ?? "",
answerProvider: requireEnv("ANSWER_PROVIDER", "openrouter"),
answerModel: requireEnv("ANSWER_MODEL", "openai/gpt-4.1-mini"),
answerBaseUrl: requireEnv("ANSWER_BASE_URL", "https://openrouter.ai/api/v1"),
answerApiKey: process.env.ANSWER_API_KEY ?? process.env.EMBEDDING_API_KEY ?? ""
} as const;