oh-my-muse/muse-cloud/scripts/dev/p1r-external-acceptance.env
lili 0b109a2961 feat(ai): S8 导入解析切 Dify chat 解析器 + provider 选择
MuseAiImportParseService 从单点注入 NewApiMuseAiImportLlmParser 改为按
muse.ai.import.provider(缺省 dify)从 List<MuseAiImportLlmParser> 选择;来源标识
由选中 parser 的 summary.parser 自报(dify_import_llm / new_api_import_llm)。

新增 DifyMuseAiImportLlmParser:走 Dify「muse-全书解析」chat app(passthrough M3、
克隆自写作 app)的 /chat-messages blocking 调用,把镜像 New-API 的 system+user 解析
prompt 合并成一条 query 发出,从 answer 消费章节 JSON。语义逐条对齐 New-API 版:
401/403 fail-closed 不重试、408/429/5xx 退避重试、输入上限 180k、空/超 300 章节、
脱敏 summary、直连绕代理、key 不落库不打印。截断检测差异:Dify chat 无 finish_reason,
改为对 answer 做 JSON 完整性校验(解析失败→AI_IMPORT_LLM_TRUNCATED 不可重试)。
MuseAiProperties.Dify 补 maxAttempts/retryBackoffSeconds;新增 ImportParse.provider。

规格允许 app/workflow;创始人定 chat app 顶替空 workflow 壳 fed4d25c。p1r 配置
MUSE_AI_DIFY_PARSER_APP_ID/API_KEY 指向新 chat app 17438ceb。

验证(独立重跑核验,不采信子代理自报):
- ai 模块单测 20/0/0/0(DifyImportLlmParser 7、ImportParseService provider 选择 11、
  NewApi 2)+ content ImportParseService IT 16/0/0/0,MVN_EXIT=0 BUILD SUCCESS
- Dify 解析 app 直连 /v1/chat-messages 冒烟真出严格章节 JSON {"chapters":[...]}
- 代码 review:确认真 chat 契约(/chat-messages、读 answer、无 workflow 残留)
未做:完整上传链 live 全书解析(import→对象存储→storageRef→parse job→LLM)属 S9
黄金旅程/import-wizard.spec.ts 范畴——inline contentText 走同步 splitter 绕 LLM,
LLM 路径需对象存储上传流,非本次 parser 改动引入。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 07:59:26 -07:00

56 lines
2.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# P1R 外部真实验收依赖。
# 该文件按用户授权明文提交,仅用于内网 New-API / RAGFlow / Dify 外部验收。
# 使用方式set -a && . muse-cloud/scripts/dev/p1r-external-acceptance.env && set +a
# New-API 系统管理令牌,用于需要管理接口或渠道配置核查的场景。
NEW_API_SYSTEM_MANAGEMENT_TOKEN=AyNL/Spm0yVXcZY27JxYMRFRudutew==
# New-API OpenAI-compatible 大模型调用入口。
MUSE_AI_NEW_API_ENABLED=true
MUSE_AI_NEW_API_BASE_URL=http://100.64.0.8:3000
MUSE_AI_NEW_API_TOKEN=sk-DyVqO3lDmEvQZ3PqGpbNaaaHZHhbh0xaHRIiynhYSmVlLHl2
MUSE_AI_NEW_API_DEFAULT_MODEL_KEY=MiniMax-M2.5
# P1R smoke 推荐超时。MiniMax-M2.5 已在 2026-06-02 跑出 6.6s 左右成功响应。
MUSE_AI_NEW_API_CONNECT_TIMEOUT_SECONDS=5
MUSE_AI_NEW_API_FIRST_BYTE_TIMEOUT_SECONDS=15
MUSE_AI_NEW_API_NON_STREAM_READ_TIMEOUT_SECONDS=60
MUSE_AI_NEW_API_STREAM_IDLE_TIMEOUT_SECONDS=30
MUSE_AI_NEW_API_TOTAL_TIMEOUT_SECONDS=180
MUSE_AI_NEW_API_MAX_ATTEMPTS=3
MUSE_AI_NEW_API_RETRY_BACKOFF_SECONDS=1,2,4
MUSE_AI_NEW_API_PROPAGATE_MUSE_CONTEXT=true
# RAGFlow Knowledge runtime 验收入口。
MUSE_KNOWLEDGE_RAGFLOW_BASE_URL=http://100.64.0.8
MUSE_KNOWLEDGE_RAGFLOW_API_KEY=ragflow-icnZ7zUcIz3oGCrpyFB2aosK-WTbvTQRaNUBPu6RtX4
MUSE_KNOWLEDGE_RAGFLOW_TIMEOUT_SECONDS=30
MUSE_KNOWLEDGE_RAGFLOW_RETRY_BUDGET=0
MUSE_KNOWLEDGE_RAGFLOW_GRAPHRAG_ATTRIBUTION_READY=false
# --- DIFY_S1_BEGIN ---
# Dify 1.15.0 外部验收入口。
# S1 起 Dify 是 2.0.0 单人版唯一新增外部服务app key 与 dataset key 不可混用。
MUSE_AI_DIFY_ENABLED=true
MUSE_AI_DIFY_BASE_URL=http://100.64.0.8:18080/v1
MUSE_AI_DIFY_CONSOLE_BASE_URLS=http://100.64.0.8:18080
MUSE_AI_DIFY_WRITING_APP_ID=75f105e8-dbca-4aa6-a296-2113a65ad005
MUSE_AI_DIFY_WRITING_API_KEY=app-Un5DDoOiK7eQc617ahdn7ku2
MUSE_AI_DIFY_WRITING_CREDENTIAL_REF=dify-writing-s1
# S8: 解析器用 chat app(passthrough M3,克隆自写作 app;规格允许 app/workflow 二选一,创始人定 chat app),弃用空 workflow 壳 fed4d25c。
MUSE_AI_DIFY_PARSER_APP_ID=17438ceb-6e47-4c2b-adeb-eda21d6e6a88
MUSE_AI_DIFY_PARSER_API_KEY=app-9mLRF1ZhFLX1I81pouHpvBi8
MUSE_AI_DIFY_PARSER_CREDENTIAL_REF=dify-parser-s1
MUSE_AI_DIFY_CONNECT_TIMEOUT_SECONDS=5
MUSE_AI_DIFY_FIRST_BYTE_TIMEOUT_SECONDS=15
# S7d 生成主链切 Dify:短读超时对齐 180s 总预算(实际请求超时取 min(短读,总预算),90 会截短长篇生成)。
MUSE_AI_DIFY_NON_STREAM_READ_TIMEOUT_SECONDS=180
MUSE_AI_DIFY_STREAM_IDLE_TIMEOUT_SECONDS=30
MUSE_AI_DIFY_TOTAL_TIMEOUT_SECONDS=180
MUSE_KNOWLEDGE_DIFY_BASE_URL=http://100.64.0.8:18080/v1
MUSE_KNOWLEDGE_DIFY_DATASET_API_KEY=dataset-Nyf7yWhF2CMFsD5TAqD39WHP
MUSE_KNOWLEDGE_DIFY_TIMEOUT_SECONDS=60
MUSE_KNOWLEDGE_DIFY_RETRY_BUDGET=0
MUSE_P1R_DIFY_INDEX_WAIT_SECONDS=180
# --- DIFY_S1_END ---