<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>金融文本统一打标</title>
<link rel="stylesheet" href="/static/style.css?v=20260611" />
</head>
<body>
<div class="page-bg"></div>
<main class="app-shell">
<header class="hero">
<div class="hero-badge">FinLabel Studio</div>
<h1>金融文本统一打标工作台</h1>
<p class="subtitle">
点选任务与示例数据,左右对比提示词与模型结果;支持按难度 AI 生成测试样本。
</p>
<div class="hero-tags">
<span class="hero-tag">分类</span>
<span class="hero-tag">抽取</span>
<span class="hero-tag">匹配</span>
</div>
</header>
<section class="card step-card">
<div class="step-header">
<span class="step-num">01</span>
<div>
<h2>选择打标任务</h2>
<p>切换任务后,下方会自动加载对应提示词。</p>
</div>
</div>
<div class="task-cards" id="taskCards">
<button class="task-card active" data-task="classify" type="button">
<span class="task-icon classify-icon">CL</span>
<div class="task-copy">
<strong>金融文本分类</strong>
<span>输出固定类别标签</span>
</div>
</button>
<button class="task-card" data-task="extract" type="button">
<span class="task-icon extract-icon">EX</span>
<div class="task-copy">
<strong>金融信息抽取</strong>
<span>输出结构化 JSON</span>
</div>
</button>
<button class="task-card" data-task="match" type="button">
<span class="task-icon match-icon">MT</span>
<div class="task-copy">
<strong>金融文本匹配</strong>
<span>判断两段文本是否匹配</span>
</div>
</button>
</div>
</section>
<section class="card step-card">
<div class="step-header row-between">
<div class="step-header-main">
<span class="step-num">02</span>
<div>
<h2>选择待打标数据</h2>
<p>推荐使用示例数据,标准答案与模型结果可直接对比。</p>
</div>
</div>
<div class="segmented" id="sourceToggle">
<button class="segment-btn active" data-source="sample" type="button">
示例数据
</button>
<button class="segment-btn" data-source="manual" type="button">
手动输入
</button>
</div>
</div>
<div id="sampleMode">
<div class="control-deck">
<div class="control-block">
<span class="control-label">难度等级</span>
<div class="segmented segmented-wide" id="difficultyBar">
<button class="segment-btn active" data-difficulty="easy" type="button">
简单
</button>
<button class="segment-btn" data-difficulty="medium" type="button">
中等
</button>
<button class="segment-btn" data-difficulty="hard" type="button">
困难
</button>
</div>
</div>
<div class="control-divider"></div>
<div class="control-block control-block-grow">
<span class="control-label">AI 生成</span>
<div class="generate-row">
<button id="generateBtn" class="btn-generate" type="button">
<span class="btn-generate-icon" aria-hidden="true">✦</span>
<span class="btn-generate-label">生成测试数据</span>
</button>
<span id="generateStatus" class="status-chip status-idle">待生成</span>
</div>
</div>
</div>
<p class="hint-text" id="generateHint">
点击生成后,大模型会按当前任务与难度创建 1 条带标准答案的新样本。
</p>
<div class="sample-list" id="sampleList"></div>
</div>
<div id="manualMode" class="hidden">
<div id="manualSingle" class="manual-fields">
<label class="field-label" for="textInput">待打标文本</label>
<textarea id="textInput" rows="5" placeholder="输入一段金融文本..."></textarea>
</div>
<div id="manualMatch" class="hidden manual-fields two-col">
<label>
<span class="field-label">文本 A</span>
<textarea id="textAInput" rows="5" placeholder="输入文本 A..."></textarea>
</label>
<label>
<span class="field-label">文本 B</span>
<textarea id="textBInput" rows="5" placeholder="输入文本 B..."></textarea>
</label>
</div>
</div>
</section>
<section class="card step-card preview-card">
<div class="step-header">
<span class="step-num">03</span>
<div>
<h2>当前待打标内容</h2>
<p id="previewHint">请选择一条示例,或切换到手动输入。</p>
</div>
</div>
<div class="preview-box is-empty" id="previewBox">尚未选择数据</div>
</section>
<section class="compare-grid">
<article class="card compare-card prompt-card">
<div class="compare-header">
<span class="compare-dot prompt-dot"></span>
<div>
<h3>提示词</h3>
<p>模型收到的完整指令</p>
</div>
</div>
<pre id="promptView">正在读取提示词...</pre>
</article>
<article class="card compare-card result-card">
<div class="compare-header">
<span class="compare-dot result-dot"></span>
<div>
<h3>模型结果</h3>
<p>打标返回内容</p>
</div>
</div>
<pre id="resultView"><span class="result-placeholder">点击「开始打标」后,结果会显示在这里。</span></pre>
</article>
</section>
<div class="action-bar">
<button id="submitBtn" class="btn-primary" type="button">开始打标</button>
</div>
</main>
<script src="/static/app.js?v=20260611b"></script>
</body>
</html>