diff --git a/.env.example b/.env.example deleted file mode 100644 index 0d0c07903..000000000 --- a/.env.example +++ /dev/null @@ -1,99 +0,0 @@ -# NOTE: -# - `pnpm dev` 启动后端时默认读取 `server/.env` -# - `pnpm dev` 启动前端时默认读取 `client/.env` / `client/.env.local` -# - 根目录这个文件更适合当聚合参考,不是 workspace 默认加载入口 - -# Server -PORT=3000 -# 局域网访问:HOST=0.0.0.0 且 ALLOW_LAN=true -HOST=localhost -ALLOW_LAN=false -CORS_ORIGIN=http://localhost:5173 -# 默认使用 SQLite;如需 PostgreSQL,取消下一行注释并填写连接串。 -# DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:5432/ai_novel -API_JSON_LIMIT=20mb - -# 图片资产存储:默认使用 beta 本地文件存储。仅在显式选择 s3/minio 时启用 MinIO/S3。 -# IMAGE_STORAGE_DRIVER=local -# IMAGE_STORAGE_ROOT=storage/generated-images -# IMAGE_STORAGE_DRIVER=minio -# IMAGE_STORAGE_S3_ENDPOINT=http://127.0.0.1:9000 -# IMAGE_STORAGE_S3_REGION=us-east-1 -# IMAGE_STORAGE_S3_BUCKET=ai-novel-images -# IMAGE_STORAGE_S3_ACCESS_KEY_ID= -# IMAGE_STORAGE_S3_SECRET_ACCESS_KEY= -# IMAGE_STORAGE_S3_FORCE_PATH_STYLE=true -BOOK_ANALYSIS_LLM_TIMEOUT_MS=90000 - -OPENAI_API_KEY= -OPENAI_BASE_URL=https://api.openai.com/v1 -OPENAI_MODEL=gpt-5-mini -OPENAI_IMAGE_MODEL=gpt-image-1 -OPENAI_EMBEDDING_MODEL=text-embedding-3-small - -DEEPSEEK_API_KEY= -DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 -DEEPSEEK_MODEL=deepseek-chat - -SILICONFLOW_API_KEY= -SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1 -SILICONFLOW_MODEL=Qwen/Qwen2.5-72B-Instruct -SILICONFLOW_IMAGE_MODEL=black-forest-labs/FLUX.1-schnell -SILICONFLOW_EMBEDDING_MODEL= - -ANTHROPIC_API_KEY= -ANTHROPIC_BASE_URL=https://api.anthropic.com/v1 -ANTHROPIC_MODEL=claude-3-5-sonnet-20241022 - -XAI_API_KEY= -XAI_BASE_URL=https://api.x.ai/v1 -XAI_MODEL=grok-4 -XAI_IMAGE_MODEL=grok-imagine-image - -KIMI_API_KEY= -KIMI_BASE_URL=https://api.moonshot.cn/v1 -KIMI_MODEL=moonshot-v1-32k - -GLM_API_KEY= -GLM_BASE_URL=https://open.bigmodel.cn/api/paas/v4 -GLM_MODEL=glm-4.5-air - -QWEN_API_KEY= -QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 -QWEN_MODEL=qwen-plus - -GEMINI_API_KEY= -GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai -GEMINI_MODEL=gemini-2.5-flash - -# RAG / Vector -RAG_ENABLED=true -RAG_VERBOSE_LOG=false -RAG_DEFAULT_TENANT=default -EMBEDDING_PROVIDER=openai -EMBEDDING_MODEL=text-embedding-3-small -EMBEDDING_VERSION=1 -EMBEDDING_BATCH_SIZE=64 -# Local Qdrant: -QDRANT_URL=http://127.0.0.1:6333 -# Qdrant Cloud example: -# QDRANT_URL=https://your-cluster.us-west-2-0.aws.cloud.qdrant.io:6333 -QDRANT_API_KEY= -QDRANT_COLLECTION=ai_novel_chunks_v1 -QDRANT_TIMEOUT_MS=120000 -QDRANT_UPSERT_MAX_BYTES=3145728 -RAG_CHUNK_SIZE=800 -RAG_CHUNK_OVERLAP=120 -RAG_VECTOR_CANDIDATES=40 -RAG_KEYWORD_CANDIDATES=40 -RAG_FINAL_TOP_K=8 -RAG_WORKER_POLL_MS=2500 -RAG_WORKER_MAX_ATTEMPTS=5 -RAG_WORKER_RETRY_BASE_MS=5000 -RAG_EMBEDDING_TIMEOUT_MS=30000 -RAG_EMBEDDING_MAX_RETRIES=2 -RAG_EMBEDDING_RETRY_BASE_MS=500 -RAG_HTTP_TIMEOUT_MS=30000 - -# Client -VITE_API_BASE_URL=http://localhost:3000/api diff --git a/README.md b/README.md index 2a3d89dd8..a31d1600b 100644 --- a/README.md +++ b/README.md @@ -333,9 +333,8 @@ pnpm install 这个仓库通过 pnpm workspace 分别启动前后端,所以环境变量也是按子包读取的: -- 服务端运行在 `server/` 工作目录,默认读取 `server/.env` -- 前端运行在 `client/` 工作目录,默认读取 `client/.env` / `client/.env.local` -- 根目录 `.env.example` 目前更适合当“总览参考”,不是 `pnpm dev` 默认读取的主入口 +- 服务端运行在 `server/` 工作目录,默认读取 `server/.env`,示例见 [`server/.env.example`](./server/.env.example) +- 前端运行在 `client/` 工作目录,默认读取 `client/.env` / `client/.env.local`,示例见 [`client/.env.example`](./client/.env.example) #### 2.1 服务端环境变量 diff --git a/docs/README.md b/docs/README.md index 8e8662e89..ed0d1001f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -9,7 +9,7 @@ - 项目入口与对外说明:`README.md` - 路线图与执行主清单:`TASK.md` - 协作与工程约束:`AGENTS.md` -- Monorepo 与工具链配置:`package.json`、`pnpm-workspace.yaml`、`tsconfig.base.json`、`.env.example` +- Monorepo 与工具链配置:`package.json`、`pnpm-workspace.yaml`、`tsconfig.base.json`(环境变量示例在 `server/.env.example` 和 `client/.env.example`) 其余设计稿、阶段总结、模块计划、历史规格,统一进入 `docs/` 对应子目录。