Files
姚章浩 693cd952cd feat(asset): 清理被截断的结尾图片引用,修复整单 502
仓库首次入库(此前仅存在于本地工作区与测试服构建产物中,未上传)。

改动(src/knowledge_adapter/asset_content_processor.py):
- 新增 _TRUNCATED_TRAILING_MARKDOWN_RESOURCE_IMAGE 规则,清除 chunk 末尾被截断的
  ![](resource://xxxx 残片(WeKnora 分块在图片引用中间截断时产生,旧逻辑无法匹配完整引用,
  残留 resource:// 触发 ContentProcessingError,导致整单 502)
- 回归测试 tests/test_asset_content_processor.py::
  test_truncated_trailing_markdown_resource_image_is_removed

验证证据:
- 测试服 120.76.217.51,镜像 knowledge-adapter-service:reviewed-test-aeab4b5fca2d
  (release aeab4b5fca2d8661):KB d015d05c-25c8-4d63-b2ab-e8590d3c2dfb 5 个查询全部
  http=200、records=5、残留 resource:// = 0;KB b9dacd62 无退化;容器日志无 error/exception
- 本地:pytest 141 项全通过、ruff 全通过
- 该文件与 258c31e0fe07fd08 源码的差异经逐文件 md5 比对,为唯一变更文件
2026-09-16 10:01:27 +08:00

27 lines
1.1 KiB
Bash

# Non-secret runtime configuration. Copy outside Git before use.
ADAPTER_IMAGE_TAG=reviewed-test
DIFY_KEY_HASH_CURRENT=<64-char-sha256>
DIFY_KEY_HASH_NEXT=
WEKNORA_BASE_URL=http://app:8080
WEKNORA_NETWORK_NAME=weknora071full-network
WEKNORA_ALLOWED_KB_IDS=<uuid>[,<uuid>]
WEKNORA_TENANT_ID=<positive-integer>
WEKNORA_OSS_STORAGE_BACKEND_ID=<backend-uuid>
OSS_REGION=cn-shenzhen
OSS_BUCKET=<private-bucket-name>
OSS_CREDENTIAL_MODE=static_ak
OSS_RAM_ROLE_NAME=
ASSET_PUBLIC_BASE_URL=https://assets.example.com
MAX_QUERY_CHARS=2000
MAX_TOP_K=5
MAX_CHUNK_CHARS=4000
MAX_TOTAL_CHARS=12000
WEKNORA_TIMEOUT_SECONDS=15
# Host paths only. Files must be owned by UID 10001 and mode 0400.
WEKNORA_API_KEY_SECRET_FILE=/opt/knowledge-adapter/secrets/weknora_api_key
ASSET_DATABASE_URL_SECRET_FILE=/opt/knowledge-adapter/secrets/asset_database_url
WEKNORA_READONLY_DATABASE_URL_SECRET_FILE=/opt/knowledge-adapter/secrets/weknora_readonly_database_url
OSS_ACCESS_KEY_ID_HOST_FILE=/opt/knowledge-adapter/secrets/oss_access_key_id
OSS_ACCESS_KEY_SECRET_HOST_FILE=/opt/knowledge-adapter/secrets/oss_access_key_secret