Files

1 line
55 KiB
JSON

{"repo": "aixcrimson/syne-blog", "files": {"server/src/main/resources/application.yml": {"3bc76f795713f6af8cbf9a93a001168fef4e6106": {"t": 1785746940.4487677, "n": 3234, "h": "1a4e150db29987d1", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 604800 # 7天,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://107.173.199.221:9000}\n # 避免 HTTPS 页面加载 HTTP 图片时被浏览器以 Mixed Content 拦截。留空回退到 endpoint。\n public-url: ${MINIO_PUBLIC_URL:}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 随机封面图库存储桶\n cover-bucket: ${MINIO_COVER_BUCKET:syne-cover}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-ai-v1-a0fee99102993a5122412257433d7fead732bccc5a87bac8b5ae64babe82e9d6}\n base-url: ${OPENAI_BASE_URL:https://zenmux.ai/api}\n chat:\n options:\n model: ${OPENAI_MODEL:deepseek/deepseek-v4-flash-free}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "9299f8162add0113e2e387da7e7c5e6dda2b3520": {"t": 1785769201.1670182, "n": 3234, "h": "1a4e150db29987d1", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 604800 # 7天,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://107.173.199.221:9000}\n # 避免 HTTPS 页面加载 HTTP 图片时被浏览器以 Mixed Content 拦截。留空回退到 endpoint。\n public-url: ${MINIO_PUBLIC_URL:}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 随机封面图库存储桶\n cover-bucket: ${MINIO_COVER_BUCKET:syne-cover}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-ai-v1-a0fee99102993a5122412257433d7fead732bccc5a87bac8b5ae64babe82e9d6}\n base-url: ${OPENAI_BASE_URL:https://zenmux.ai/api}\n chat:\n options:\n model: ${OPENAI_MODEL:deepseek/deepseek-v4-flash-free}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "06edf948fcd7bc42149ee82016a325dff0bd4f21": {"t": 1785769202.6433878, "n": 3235, "h": "fb2036528b6498b0", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://107.173.199.221:9000}\n # 避免 HTTPS 页面加载 HTTP 图片时被浏览器以 Mixed Content 拦截。留空回退到 endpoint。\n public-url: ${MINIO_PUBLIC_URL:}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 随机封面图库存储桶\n cover-bucket: ${MINIO_COVER_BUCKET:syne-cover}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-ai-v1-a0fee99102993a5122412257433d7fead732bccc5a87bac8b5ae64babe82e9d6}\n base-url: ${OPENAI_BASE_URL:https://zenmux.ai/api}\n chat:\n options:\n model: ${OPENAI_MODEL:deepseek/deepseek-v4-flash-free}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "00282eca29d9463259b7d85b19dad2227bf03afd": {"t": 1785769204.1560183, "n": 3172, "h": "c93510abda99347c", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://107.173.199.221:9000}\n # 避免 HTTPS 页面加载 HTTP 图片时被浏览器以 Mixed Content 拦截。留空回退到 endpoint。\n public-url: ${MINIO_PUBLIC_URL:}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-ai-v1-a0fee99102993a5122412257433d7fead732bccc5a87bac8b5ae64babe82e9d6}\n base-url: ${OPENAI_BASE_URL:https://zenmux.ai/api}\n chat:\n options:\n model: ${OPENAI_MODEL:deepseek/deepseek-v4-flash-free}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "f8909bdfe367c9410b71c029a8b6784d8a20485a": {"t": 1785769205.692657, "n": 3072, "h": "0dee37075b8cd33e", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://107.173.199.221:9000}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-ai-v1-a0fee99102993a5122412257433d7fead732bccc5a87bac8b5ae64babe82e9d6}\n base-url: ${OPENAI_BASE_URL:https://zenmux.ai/api}\n chat:\n options:\n model: ${OPENAI_MODEL:deepseek/deepseek-v4-flash-free}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "67ca2aa593e20d71097511423a3e31b116f5c5b2": {"t": 1785769207.1277888, "n": 3070, "h": "73e693b582f8541b", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://107.173.199.221:9000}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-ai-v1-a0fee99102993a5122412257433d7fead732bccc5a87bac8b5ae64babe82e9d6}\n base-url: ${OPENAI_BASE_URL:https://zenmux.ai/api}\n chat:\n options:\n model: ${OPENAI_MODEL:deepseek/deepseek-v4-pro-free}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "7f06432a931f20670a4c2ec951eef34b0aa8d6e2": {"t": 1785769208.417342, "n": 3070, "h": "4c7b7e186434dbba", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://107.173.199.221:9000}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-ai-v1-a0fee99102993a5122412257433d7fead732bccc5a87bac8b5ae64babe82e9d6}\n base-url: ${OPENAI_BASE_URL:https://zenmux.ai/api}\n chat:\n options:\n model: ${OPENAI_MODEL:deepseek/deepseek-v4-pro-free}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8081}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "acc2059b82fdb1f863dc3e51a9222e978f4562b5": {"t": 1785769209.703888, "n": 3010, "h": "c95377ee32e368a2", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://107.173.199.221:9000}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-289e2aafbe6d4d7ebbb127e68aba1867}\n base-url: ${OPENAI_BASE_URL:http://127.0.0.1:8045}\n chat:\n options:\n model: ${OPENAI_MODEL:gpt-5.2}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "28e5a0f10e8a9bfe3331914b5c9570049a4de3f2": {"t": 1785769211.0843983, "n": 3004, "h": "fb25b193f9a22736", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://localhost:9100}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-289e2aafbe6d4d7ebbb127e68aba1867}\n base-url: ${OPENAI_BASE_URL:http://127.0.0.1:8045}\n chat:\n options:\n model: ${OPENAI_MODEL:gpt-5.2}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n enabled: false\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "6b97325adb20c6ca11904a080c3ab88ba7172d2e": {"t": 1785769212.4707963, "n": 2985, "h": "7b651333b82385a3", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://localhost:9100}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-289e2aafbe6d4d7ebbb127e68aba1867}\n base-url: ${OPENAI_BASE_URL:http://127.0.0.1:8045}\n chat:\n options:\n model: ${OPENAI_MODEL:gpt-5.2}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "421025978da0c50dafdef134f3f34270d01bec2a": {"t": 1785769213.7095916, "n": 2963, "h": "31c6be7d980bd2c8", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://localhost:9100}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-xxx}\n base-url: ${OPENAI_BASE_URL:https://api.openai.com}\n chat:\n options:\n model: ${OPENAI_MODEL:gpt-3.5-turbo}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "843ba007ec682dcdb6586145cd6180f06afbde5c": {"t": 1785769215.0764604, "n": 2973, "h": "6ce62d2df7133a16", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: ${SPRING_PROFILES_ACTIVE:dev,dev-local}\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\nauth:\n token:\n blacklist-prefix: \"auth:blacklist:\"\n blacklist-ttl-seconds: 0\n\nnavigation:\n cache:\n key-prefix: \"navigation:\"\n ttl-seconds: 300\n\n# MinIO 对象存储配置\nminio:\n endpoint: ${MINIO_ENDPOINT:http://localhost:9100}\n access-key: ${MINIO_ACCESS_KEY:minio}\n secret-key: ${MINIO_SECRET_KEY:minio123456}\n bucket-name: ${MINIO_BUCKET:syne-blog}\n # 图片允许的类型\n allowed-types: image/jpeg,image/png,image/gif,image/webp\n # 最大文件大小 (单位: MB)\n max-size: 10\n\n# Spring AI OpenAI 配置(支持中转站)\nspring.ai:\n openai:\n api-key: ${OPENAI_API_KEY:sk-xxx}\n base-url: ${OPENAI_BASE_URL:https://api.openai.com}\n chat:\n options:\n model: ${OPENAI_MODEL:gpt-3.5-turbo}\n temperature: 0.7\n max-tokens: 2000\n embedding:\n options:\n model: text-embedding-ada-002\n vectorstore:\n pgvector:\n index-type: HNSW\n distance-type: COSINE_DISTANCE\n dimensions: 1536\n table-name: article_embeddings\n\n# AI 功能配置\nai:\n enabled: true\n rag:\n top-k: 5\n similarity-threshold: 0.7\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "f530e60b78332d053ff8a71596197ee390a0125c": {"t": 1785769216.312958, "n": 1918, "h": "8d79e11c1d6db1ed", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: dev,dev-local\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n data:\n redis:\n host: ${REDIS_HOST:localhost}\n port: ${REDIS_PORT:6379}\n database: ${REDIS_DB:0}\n password: ${REDIS_PASSWORD:}\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "0c8f242cc6725f0ebc94f80255197317e129d23b": {"t": 1785769217.5683165, "n": 1766, "h": "7fd87eaa1bd4f3fa", "c": "spring:\n application:\n name: syne-blog-server\n\n # 激活的 profile\n profiles:\n active: dev,dev-local\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer\n\n# 服务器配置\nserver:\n port: ${PORT:8080}\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "2099c5c7318bc78d1bdaa862d797b12475c1b9bc": {"t": 1785769218.9090831, "n": 1762, "h": "83fdba4b862231bd", "c": "spring:\n application:\n name: syne-blog-server\n \n # 激活的 profile\n profiles:\n active: dev,dev-local\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400 # 24小时,单位秒\n header: Authorization\n prefix: Bearer \n\n# 服务器配置\nserver:\n port: 8080\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "6a826b307b24237d0c3fe81b812a1f705e4c1fc0": {"t": 1785769220.2952538, "n": 1766, "h": "9f76ac31dbfc022d", "c": "spring:\n application:\n name: syne-blog-server\n \n # 激活的 profile\n profiles:\n active: dev,dev-local\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: ${DB_PASSWORD}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400000 # 24小时,单位毫秒\n header: Authorization\n prefix: Bearer \n\n# 服务器配置\nserver:\n port: 8080\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "0ff602b95e9fd7dc37ae988f1506c16b5810d4e7": {"t": 1785769221.7153044, "n": 1800, "h": "fbc81e509d5255fa", "c": "spring:\n application:\n name: syne-blog-server\n \n # 激活的 profile\n profiles:\n active: dev,dev-local\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n# password: ${DB_PASSWORD:please_set_password_in_dev_local}\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400000 # 24小时,单位毫秒\n header: Authorization\n prefix: Bearer \n\n# 服务器配置\nserver:\n port: 8080\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}, "a490972118e2353b8398a44bcce1558c103be4cf": {"t": 1785769223.2483242, "n": 1713, "h": "7de7902277c3aeb4", "c": "spring:\n application:\n name: syne-blog-server\n\n # 数据源配置\n datasource:\n driver-class-name: org.postgresql.Driver\n url: jdbc:postgresql://localhost:5432/syne_blog?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai\n username: postgres\n password: your_password_here\n hikari:\n minimum-idle: 5\n maximum-pool-size: 20\n connection-timeout: 30000\n idle-timeout: 600000\n max-lifetime: 1800000\n\n # Jackson 配置\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n serialization:\n write-dates-as-timestamps: false\n\n # 文件上传配置\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n\n# MyBatis-Plus 配置\nmybatis-plus:\n configuration:\n # 日志输出\n log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 驼峰命名转换\n map-underscore-to-camel-case: true\n # 懒加载\n lazy-loading-enabled: true\n aggressive-lazy-loading: false\n global-config:\n db-config:\n # 主键策略:数据库自增\n id-type: auto\n # 逻辑删除字段\n logic-delete-field: deleted\n logic-delete-value: 1\n logic-not-delete-value: 0\n # mapper xml 文件位置\n mapper-locations: classpath*:/mapper/**/*.xml\n # 实体类包路径\n type-aliases-package: com.syne.server.entity\n\n# JWT 配置\njwt:\n secret: your-secret-key-change-this-in-production-at-least-256-bits\n expiration: 86400000 # 24小时,单位毫秒\n header: Authorization\n prefix: Bearer \n\n# 服务器配置\nserver:\n port: 8080\n servlet:\n context-path: /api\n encoding:\n charset: UTF-8\n enabled: true\n force: true\n\n# 日志配置\nlogging:\n level:\n com.syne.server: debug\n com.baomidou.mybatisplus: debug\n pattern:\n console: \"%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n\"\n"}}}}