# 所有变量均为必填项；请在项目根目录复制本文件为 .env 后逐项填写。

# ===== 应用 =====
# 服务显示名称；仅用于 FastAPI 文档标题。
KBQA_APP_NAME=KBQA
# 是否启用调试模式。生产或日常本地使用请保持 false。
KBQA_DEBUG=false

# ===== DashScope 模型 =====
# DashScope 兼容模式 API Key。必须保密，禁止提交到 Git。
KBQA_DASHSCOPE_API_KEY=
# DashScope OpenAI-compatible API 地址；使用专属实例时填写实例地址。
KBQA_DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# 生成回答及 Agent 工具调用的聊天模型。
KBQA_CHAT_MODEL=qwen3.5-flash
# 文档分块向量化模型。
KBQA_EMBEDDING_MODEL=text-embedding-v4
# Embedding 向量维度，必须与已有 Milvus Lite 数据库一致。
KBQA_EMBEDDING_DIM=1024

# ===== 本地持久化 =====
# SQLite 异步连接串；相对路径以“项目根目录”为基准。
KBQA_DATABASE_URL=sqlite+aiosqlite:///./data/kbqa.sqlite3
# Milvus Lite 文件路径；相对路径以“项目根目录”为基准。
KBQA_MILVUS_URI=./data/milvus/kbqa.db
# 上传原文件副本目录；相对路径以“项目根目录”为基准。
KBQA_RAW_DATA_DIR=./data/raw

# ===== 文档切分与检索 =====
# 单个文本分块的最大字符数。
KBQA_CHUNK_SIZE=500
# 相邻分块重叠字符数，必须小于 KBQA_CHUNK_SIZE。
KBQA_CHUNK_OVERLAP=50
# 每次向量检索返回的候选数量。
KBQA_RETRIEVAL_TOP_K=5
# Research Agent 一轮中允许的最大检索次数。
KBQA_MAX_RESEARCH_SEARCHES=3
# 回答中最多展示的引用来源数。
KBQA_MAX_SOURCES=8
# 每个会话发送给模型的最大历史消息数。
KBQA_HISTORY_MESSAGE_LIMIT=20
# 单个上传文件大小上限，单位 MiB。
KBQA_MAX_UPLOAD_MIB=20
# 单次提问的最大字符数。
KBQA_MAX_QUERY_LENGTH=10000
# 允许前端跨域访问的地址，必须是合法 JSON 数组。
KBQA_CORS_ORIGINS=["http://localhost:5173","http://127.0.0.1:5173"]

# ===== 真实模型测试 =====
# 仅设为 1 时才会执行真实 Chat / Embedding 测试。
KBQA_RUN_LIVE_TESTS=0
# 真实测试使用的知识文件路径；相对路径以项目根目录为基准。
KBQA_LIVE_TEST_FILE=./test.txt

# ===== LangSmith 追踪 =====
# 是否向 LangSmith 写入 Agent、工具与模型追踪。
LANGSMITH_TRACING=true
# LangSmith 服务地址；官方服务通常为 https://api.smith.langchain.com。
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
# LangSmith API Key。必须保密，禁止提交到 Git。
LANGSMITH_API_KEY=
# LangSmith 项目名称，用于归类本系统的追踪记录。
LANGSMITH_PROJECT=kbqa-local
