
# Neo4j Configuration (记忆系统数据库)
NEO4J_URI= 
NEO4J_USERNAME=
NEO4J_PASSWORD= 


# External Order API Configuration
EXTERNAL_ORDER_API_URL=https://api.example.com/v1
EXTERNAL_ORDER_API_KEY=your_api_key_here

# Postgres Database configuration 
DB_HOST= 
DB_PORT= 
DB_USER= 
DB_PASSWORD= 
DB_NAME= 

# Database Migration Configuration
# Set to true to automatically upgrade database schema on startup
DB_AUTO_UPGRADE=true



# Redis configuration
REDIS_HOST= 
REDIS_PORT= 
REDIS_DB=
REDIS_PASSWORD=password

#celery
BROKER_URL= 
RESULT_BACKEND= 
CELERY_BROKER=
CELERY_BACKEND=

# Memory Cache Regeneration Configuration
# Interval in hours for regenerating memory insight and user summary cache
# Default: 24 hours
MEMORY_CACHE_REGENERATION_HOURS=24

# ElasticSearch configuration
ELASTICSEARCH_HOST= 
ELASTICSEARCH_PORT= 
ELASTICSEARCH_USERNAME= 
ELASTICSEARCH_PASSWORD= 
ELASTICSEARCH_VERIFY_CERTS= 
ELASTICSEARCH_CA_CERTS=
ELASTICSEARCH_REQUEST_TIMEOUT= 
ELASTICSEARCH_RETRY_ON_TIMEOUT= 
ELASTICSEARCH_MAX_RETRIES= 

# xinference configuration
XINFERENCE_URL= 

# LangSmith configuration 
LANGCHAIN_TRACING_V2= 
LANGCHAIN_TRACING= 
LANGCHAIN_API_KEY=
LANGCHAIN_ENDPOINT=

# This key is used for signing JWT tokens.
# It should be a long, random string and kept secret.
# Generate a new one with: openssl rand -hex 32
SECRET_KEY=your-secret-key-here-generate-with-openssl-rand-hex-32

# JWT Token expiration settings
ACCESS_TOKEN_EXPIRE_MINUTES=30
REFRESH_TOKEN_EXPIRE_DAYS=7

# Single Sign-On configuration
ENABLE_SINGLE_SESSION=

# File Upload
MAX_FILE_SIZE=52428800  # 50MB:10 * 1024 * 1024
FILE_PATH=/files

FILE_LOCAL_SERVER_URL="http://localhost:8000/api"
# Storage Backend Configuration
# Supported values: local, oss, s3
# Default: local
STORAGE_TYPE=local

# Aliyun OSS Configuration (required when STORAGE_TYPE=oss)
OSS_ENDPOINT=https://oss-cn-hangzhou.aliyuncs.com
OSS_ACCESS_KEY_ID=your_oss_access_key_id
OSS_ACCESS_KEY_SECRET=your_oss_access_key_secret
OSS_BUCKET_NAME=your_bucket_name

# AWS S3 Configuration (required when STORAGE_TYPE=s3)
S3_REGION=us-east-1
S3_ACCESS_KEY_ID=your_s3_access_key_id
S3_SECRET_ACCESS_KEY=your_s3_secret_access_key
S3_BUCKET_NAME=your_bucket_name

# RAG Setting
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
HF_ENDPOINT=https://hf-mirror.com
MINERU_EXECUTABLE=mineru
MINERU_APISERVER=http://host.docker.internal:9987
MINERU_OUTPUT_DIR=/files
MINERU_BACKEND=pipeline
MINERU_DELETE_OUTPUT=1
TEXTLN_APISERVER=https://api.textin.com/ai/service/v1/pdf_to_markdown
TEXTLN_APP_ID=
TEXTLN_SECRET_CODE=

# vision model
QWEN3_OMNI_API_KEY=
QWEN3_OMNI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
QWEN3_OMNI_MODEL_NAME=qwen3-omni-flash

# VOLC ASR
VOLC_APP_KEY=
VOLC_ACCESS_KEY=
VOLC_SUBMIT_URL=
VOLC_QUERY_URL=

# Server Configuration
SERVER_IP=127.0.0.1


web_search=
KB_embedding_id=
KB_reranker_id=
KB_llm_id=
KB_image2text_id=

config_id=
reranker_id=

# 本体类型融合配置 (记得写入env_example)
GENERAL_ONTOLOGY_FILES=General_purpose_entity.ttl  # 指定要加载的本体文件路径，多个文件用逗号分隔
ENABLE_GENERAL_ONTOLOGY_TYPES=true # 总开关，控制是否启用通用本体类型融合功能(false = 不使用任何本体类型指导)
MAX_ONTOLOGY_TYPES_IN_PROMPT=100 # 限制传给 LLM 的类型数量，防止 Prompt 过长
CORE_GENERAL_TYPES=Person,Organization,Place,Event,Work,Concept # 	定义核心类型列表，这些类型会优先包含在合并结果中
ONTOLOGY_EXPERIMENT_MODE=true # 是否允许通过 API 动态切换本体配置