Files
group_xinghuo_jinrong/docs/course/jinrong-module-platform/modules/04-seams.html
T

73 lines
4.0 KiB
HTML
Raw Normal View History

<section class="module" id="module-4">
<div class="module-inner">
<p class="eyebrow animate-in">模块 4 · 接缝与草案</p>
<h1 class="module-title animate-in">适当性只准一条 canonical<br>还有空壳与行情草案</h1>
<p class="module-lead animate-in">
平台 API 是 v0.1 的「对外标准」,但仓库里已有<strong>重复能力、空壳路由、Phase B 草案</strong>。
指挥 AI 加第三条适当性 URL 或前端直连行情源,都会踩接缝。
</p>
<div class="screen animate-in">
<h2>路由补全:staff 与空壳</h2>
<div class="pattern-cards">
<div class="pattern-card">
<h3>已实现 · v0.1 四域 + staff</h3>
<p><code>/api/customers</code> · <code>products</code> · <code>advisors</code> · <code>compliance</code> · <code>staff</code></p>
</div>
<div class="pattern-card">
<h3>空壳 · 一期不做</h3>
<p>知识库空壳 API(<code>knowledge.py</code>) · 管理空壳 API(<code>admin.py</code>) — T-21 拍板:脚本入库,无上传/重建 HTTP。</p>
</div>
</div>
</div>
<div class="screen animate-in">
<h2>适当性:两条 URL,别再开第三条</h2>
<div class="translation-block">
<div class="translation-code">
<span class="translation-label">canonical(平台)</span>
<pre><code><span class="code-line">POST /api/compliance/suitability-check</span>
<span class="code-line">→ get_platform_auth_context</span>
<span class="code-line">→ app/service/platform/</span></code></pre>
</div>
<div class="translation-english">
<span class="translation-label">风控专用(对话/演示)</span>
<div class="translation-lines">
<p class="tl"><code>POST /api/risk/suitability/check</code> — 风控 REST + X-Agent-Type: risk。</p>
<p class="tl">客服 <code>suitability_check</code> Tool 走 <code>core_ro.check_suitability</code>,是第三条<strong>对话内</strong>路径,但底层同一判定内核。</p>
<p class="tl">新增 HTTP 路由前先查契约迁移表,避免四个入口四个口径。</p>
</div>
</div>
</div>
</div>
<div class="screen animate-in">
<h2>行情 Phase B(草案 · 未落地)</h2>
<p>v0.2 草案:<code>nav-snapshot</code> · <code>sync_market_nav</code>。C-05 硬规则:<strong>禁止爬虫、禁止前端直连第三方行情</strong>——净值须走后端同步管道。</p>
<div class="quiz-container" id="quiz-platform-m4">
<div class="quiz-question-block"
data-correct="option-c"
data-explanation-right="对。PLATFORM_RESPONSE_DESENSITIZE 默认关是为了联调看原值;上真 Core 再开,customer_id 仍不打码。"
data-explanation-wrong="脱敏开关是环境策略,不是「忘了做脱敏」。">
<h3 class="quiz-question">联调时响应是明文 ID,AI 说「脱敏坏了」,你怎么回?</h3>
<div class="quiz-options">
<button class="quiz-option" data-value="option-a" onclick="selectOption(this)">
<div class="quiz-option-radio"></div><span>是 bug,强制默认开脱敏</span>
</button>
<button class="quiz-option" data-value="option-b" onclick="selectOption(this)">
<div class="quiz-option-radio"></div><span>让前端自己 mask</span>
</button>
<button class="quiz-option" data-value="option-c" onclick="selectOption(this)">
<div class="quiz-option-radio"></div><span>模拟库默认关是拍板;真 Core 再开 PLATFORM_RESPONSE_DESENSITIZE</span>
</button>
</div>
<div class="quiz-feedback"></div>
</div>
<button class="quiz-check-btn" onclick="checkQuiz('quiz-platform-m4')">检查答案</button>
<button class="quiz-reset-btn" onclick="resetQuiz('quiz-platform-m4')">重做</button>
</div>
</div>
</div>
</section>