env.sh 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. #!/usr/bin/env bash
  2. # =============================================================================
  3. # 清鉴(zsjz-ai)后端环境变量
  4. #
  5. # ai-server 的 application*.yaml 里配置项都写成 ${ENV_NAME:默认值},
  6. # 本文件把这些变量显式列出来,方便在 Linux 上统一下发/逐项修改。
  7. # 一个变量都不设置时,后端行为与本文件里的取值一致(即 yaml 中的默认值)。
  8. #
  9. # 服务端口(8980)、context-path(/js/a)、应用名(ai-server)固定在
  10. # application.yaml 里,不参与参数化,因此不在本文件中。
  11. #
  12. # 用法(任选其一):
  13. # 1) 启动前导入当前 shell:
  14. # set -a; source deploy/env.sh; set +a
  15. # java -jar ai-server.jar
  16. # 2) systemd 单元:
  17. # EnvironmentFile=/opt/zsjz-ai/deploy/env.sh
  18. #
  19. # 用法(任选其一):
  20. # 1) 启动前导入当前 shell:
  21. # set -a; source deploy/env.sh; set +a
  22. # java -jar ai-server.jar
  23. # 2) systemd 单元:
  24. # EnvironmentFile=/opt/zsjz-ai/deploy/env.sh
  25. #
  26. # 注意:
  27. # · 文件内含数据库口令,部署时请 chmod 600,并按实际环境修改地址与口令。
  28. # · 下面各项默认值取自 application-dev.yaml(当前开发环境);
  29. # 【按环境修改】标注的项,生产部署务必逐项确认。
  30. # · 生效 profile 由 Spring 原生的 SPRING_PROFILES_ACTIVE 控制,默认 dev;
  31. # 生产可取消下面这行的注释。
  32. # · sa-token、mybatis-plus 不参与参数化,不在此文件范围。
  33. # =============================================================================
  34. # SPRING_PROFILES_ACTIVE="pro"
  35. # ---------------------------------------------------------------------------
  36. # 跨域(桌面客户端用 file:// 加载前端,必须允许跨域)
  37. # ---------------------------------------------------------------------------
  38. APP_CORS_ENABLED="true"
  39. APP_CORS_ALLOWED_ORIGIN_PATTERNS="*"
  40. # ---------------------------------------------------------------------------
  41. # Spring 基础
  42. # ---------------------------------------------------------------------------
  43. SPRING_TASK_SCHEDULING_POOL_SIZE="4"
  44. SPRING_HTTP_CODECS_MAX_IN_MEMORY_SIZE="10MB"
  45. SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE="200MB"
  46. SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE="500MB"
  47. # ---------------------------------------------------------------------------
  48. # PostgreSQL(平台库,必须装 pgvector 扩展)
  49. # 【按环境修改】dev 默认 192.168.0.106,pro 默认 localhost
  50. # ---------------------------------------------------------------------------
  51. SPRING_DATASOURCE_DYNAMIC_PRIMARY="master"
  52. SPRING_DATASOURCE_DYNAMIC_STRICT="true"
  53. SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL="jdbc:postgresql://192.168.0.106:5432/zsjz-ai"
  54. SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME="postgres"
  55. SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD="postgres"
  56. SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_DRIVER_CLASS_NAME="org.postgresql.Driver"
  57. # ---------------------------------------------------------------------------
  58. # Redis(sa-token 登录态硬依赖,不可用则登录相关接口全部异常)
  59. # 【按环境修改】
  60. # ---------------------------------------------------------------------------
  61. SPRING_DATA_REDIS_HOST="192.168.0.106"
  62. SPRING_DATA_REDIS_PORT="6379"
  63. # ---------------------------------------------------------------------------
  64. # Elasticsearch(全文检索,索引 zsjz_search)
  65. # 【按环境修改】需要鉴权时再打开下面两行
  66. # ---------------------------------------------------------------------------
  67. SPRING_ELASTICSEARCH_URIS="http://192.168.0.106:9200"
  68. SPRING_ELASTICSEARCH_CONNECTION_TIMEOUT="5s"
  69. SPRING_ELASTICSEARCH_SOCKET_TIMEOUT="60s"
  70. # SPRING_ELASTICSEARCH_USERNAME=""
  71. # SPRING_ELASTICSEARCH_PASSWORD=""
  72. # ---------------------------------------------------------------------------
  73. # 本地文件存储
  74. # 【按环境修改】root-path 相对 JVM 工作目录(须为仓库/部署根目录);
  75. # base-url 必须与 SERVER_PORT、SERVER_SERVLET_CONTEXT_PATH 一致
  76. # ---------------------------------------------------------------------------
  77. STORAGE_LOCAL_ROOT_PATH="./data/files"
  78. STORAGE_LOCAL_BASE_URL="http://localhost:8980/js/a"
  79. # ---------------------------------------------------------------------------
  80. # Neo4j(可选,仅图谱能力需要)
  81. # ---------------------------------------------------------------------------
  82. NEO4J_URI="bolt://localhost:7687"
  83. NEO4J_USERNAME="neo4j"
  84. NEO4J_PASSWORD="neo4j123"
  85. # ---------------------------------------------------------------------------
  86. # Agent 表结构语义检索(RAG)
  87. # ---------------------------------------------------------------------------
  88. ETL_RAG_ENABLED="true"
  89. ETL_RAG_TOP_K="5"
  90. ETL_RAG_SCORE_THRESHOLD="0.3"
  91. # ---------------------------------------------------------------------------
  92. # zsjz.insight(AI 研判 / 会话)
  93. # ---------------------------------------------------------------------------
  94. ZSJZ_INSIGHT_MAX_SESSIONS_PER_CASE="500"
  95. ZSJZ_INSIGHT_RETENTION_DAYS="0"
  96. ZSJZ_INSIGHT_MESSAGE_PAGE_SIZE="20"
  97. ZSJZ_INSIGHT_MESSAGE_PAGE_SIZE_MAX="100"
  98. ZSJZ_INSIGHT_SESSION_LOCK_TIMEOUT_MS="3000"
  99. ZSJZ_INSIGHT_DEFAULT_TOP_N="100"
  100. ZSJZ_INSIGHT_MAX_TOP_N="200"
  101. # ---------------------------------------------------------------------------
  102. # zsjz.duckdb(案件库资源预算与兜底回收)
  103. # 【按环境修改】max-open-cases 按机器内存/CPU 调整
  104. # ---------------------------------------------------------------------------
  105. ZSJZ_DUCKDB_MAX_OPEN_CASES="8"
  106. ZSJZ_DUCKDB_MEMORY_RATIO="0.6"
  107. ZSJZ_DUCKDB_THREADS_PER_INSTANCE="4"
  108. ZSJZ_DUCKDB_REAPER_INITIAL_DELAY_MS="60000"
  109. ZSJZ_DUCKDB_REAPER_INTERVAL_MS="300000"
  110. # ---------------------------------------------------------------------------
  111. # zsjz.file-ai(非表格文件 AI 识别调度)
  112. # ---------------------------------------------------------------------------
  113. ZSJZ_FILE_AI_MAX_CONCURRENT="3"
  114. ZSJZ_FILE_AI_MAX_PENDING="200"
  115. ZSJZ_FILE_AI_TIMEOUT_SECONDS="120"
  116. # ---------------------------------------------------------------------------
  117. # zsjz.embedding(向量模型)
  118. # 【按环境修改】model-path 指向部署机上的模型目录(含 tokenizer.json 与
  119. # onnx/model.onnx)。dev 的 yaml 里是 Windows 绝对路径,
  120. # Linux 上必须改成实际路径,例如 /opt/zsjz-ai/bge-m3。
  121. # ---------------------------------------------------------------------------
  122. ZSJZ_EMBEDDING_ENABLED="true"
  123. ZSJZ_EMBEDDING_MODEL_PATH="/opt/zsjz-ai/bge-m3"
  124. ZSJZ_EMBEDDING_DIMENSIONS="1024"
  125. ZSJZ_EMBEDDING_MAX_SEQ_LEN="8192"
  126. ZSJZ_EMBEDDING_BATCH_SIZE="8"
  127. ZSJZ_EMBEDDING_INTRA_OP_THREADS="0"
  128. ZSJZ_EMBEDDING_OPT_LEVEL="BASIC_OPT"
  129. ZSJZ_EMBEDDING_EAGER_LOAD="false"
  130. # ---------------------------------------------------------------------------
  131. # zsjz.ai-clean(AI 清洗与模板向量索引)
  132. # ---------------------------------------------------------------------------
  133. ZSJZ_AI_CLEAN_BATCH_TOKEN_BUDGET="0"
  134. ZSJZ_AI_CLEAN_STALE_MINUTES="30"
  135. ZSJZ_AI_CLEAN_VECTOR_ENABLED="true"
  136. ZSJZ_AI_CLEAN_VECTOR_AUTO_INDEX_ON_TEMPLATE_CHANGE="true"
  137. ZSJZ_AI_CLEAN_VECTOR_AUTO_REBUILD_ON_STARTUP="true"
  138. ZSJZ_AI_CLEAN_VECTOR_TOP_K="12"
  139. ZSJZ_AI_CLEAN_VECTOR_SCORE_THRESHOLD="0.30"
  140. ZSJZ_AI_CLEAN_VECTOR_MAX_DOCUMENTS_PER_REBUILD="5000"
  141. # ---------------------------------------------------------------------------
  142. # zsjz.chat-attachment(对话附件解析与 RAG)
  143. # ---------------------------------------------------------------------------
  144. ZSJZ_CHAT_ATTACHMENT_MAX_DOC_MB="50"
  145. ZSJZ_CHAT_ATTACHMENT_MAX_SHEET_MB="200"
  146. ZSJZ_CHAT_ATTACHMENT_INLINE_MAX_CHARS="30000"
  147. ZSJZ_CHAT_ATTACHMENT_INLINE_MAX_ROWS="200"
  148. ZSJZ_CHAT_ATTACHMENT_CHUNK_SIZE="1000"
  149. ZSJZ_CHAT_ATTACHMENT_CHUNK_OVERLAP="100"
  150. ZSJZ_CHAT_ATTACHMENT_MAX_CHUNKS="500"
  151. ZSJZ_CHAT_ATTACHMENT_TOP_K="8"
  152. # ---------------------------------------------------------------------------
  153. # zsjz.auth(登录安全)
  154. # 「账号正在使用」判定窗口(分钟):窗口内有活跃会话时,再次登录需确认后顶号
  155. # ---------------------------------------------------------------------------
  156. ZSJZ_AUTH_IN_USE_WINDOW_MINUTES="30"