v0.6-wip: build_report \u7edf\u4e00\u5165\u53e3 + build_glossary \u672f\u8bed\u6838\u67e5

\u7ee7\u7eed\u89e3\u51b3\u7528\u6237\u53cd\u9988\u7684 PDF \u95ee\u9898\u3002

scripts/build_report.py\uff08\u65b0\u589e\uff09\uff1a
- \u5355\u4e00\u5165\u53e3\u540c\u65f6\u51fa PDF + DOCX
- \u6587\u4ef6\u540d\u81ea\u52a8\u4ece manifest.report_title \u751f\u6210\uff08\u89e3\u51b3 "final.pdf" \u6CDB\u540d\u95EE\u9898\uff09
- pandoc --from=markdown-tex_math_dollars \u4fee\u590d DOCX \u751f\u6210\u65f6\u7684 $ \u8bef\u89e3
- \u81ea\u52a8\u5bfb\u627e phase2/sources.jsonl \u4f5c\u4e3a\u53c2\u8003\u6587\u732e\u5f15\u6587\u6e90

scripts/lib/search_client.py\uff08\u65b0\u589e\uff09\uff1a
- Exa \u4e3b\u529b + Tavily fallback \u7684\u7edf\u4e00\u63a5\u53e3
- \u5173\u952e\u4fee\u590d\uff1atrust_env=False \u7ed5\u5f00\u7cfb\u7edf socks5 \u4ee3\u7406
  \uff08Clash on macOS \u5c0a httpx TLS \u63e1\u624b\u5728 CONNECT \u540e EOF\uff09

scripts/build_glossary.py\uff08\u65b0\u589e\uff09\uff1a
- \u7528\u7684\u4e92\u65b9\u5f0f\u89e3\u51b3\u4e86\u7528\u6237\u53cd\u9988 #6\uff1a\u672f\u8bed\u7ffb\u8bd1\u4e0d\u4e13\u4e1a / \u4e8b\u5b9e\u9519\u8bef
- ThreadPoolExecutor \u5e76\u53d1\uff08\u9ed8\u8ba4 6 worker\uff09\uff0c\u6bcf\u4e2a\u672f\u8bed\u72ec\u7acb\uff1a
  Search \u2192 Top-3 snippet \u2192 Haiku \u5224\u5b9a \u2192 \u8fd4\u56de {zh, en_full, confidence, issue}
- \u5b9e\u6d4b\u6210\u529f\u8bc6\u522b "Maywavee" \u4e3a "Mabwell" \u7684\u62fc\u5199\u9519\u8bef\u5e76\u6807\u51fa issue
- \u65ad\u70b9\u7eed\u4f20\uff08\u5df2\u6807 verified_at \u7684\u9ed8\u8ba4\u8df3\u8fc7\uff09
- Haiku \u6210\u672c\u6781\u4f4e\uff083 \u4e2a\u672f\u8bed\u8c03\u7528 \u2248 0.01 \u7f8e\u5206\uff09
- \u652f\u6301 --extra terms.txt \u8865\u5145\u7ffb\u8bd1\u9636\u6bb5\u672a\u6536\u5165\u7684\u672f\u8bed

scripts/prompts/glossary_system.txt\uff08\u65b0\u589e\uff09\uff1a
- Haiku \u6838\u67e5\u672f\u8bed\u7684 prompt\uff0c\u660e\u786e\u5224\u5b9a\u7ef4\u5ea6\u548c JSON \u8f93\u51fa\u683c\u5f0f

Co-authored-by: User <human>
This commit is contained in:
kai
2026-04-22 13:12:01 +08:00
co-authored by User <human>
parent a86010e9a7
commit d3fde1cbb8
6 changed files with 1761 additions and 310 deletions
+54
View File
@@ -0,0 +1,54 @@
你是一名生物医药行业的资深双语术语编辑。现在要根据网络搜索片段,核查并确定一个英文术语/专有名词的"中文规范译名"、"英文全称"与"可信度"。
## 你将收到
- `term`:待核查的英文术语(可能是公司名、缩写、化学品、平台名、药物通用名等)
- `domain`:研究领域(例如 "生物医药双靶点 RNAi 药物"),作为消歧背景
- `current_zh`:系统已有的中文译名(可能来自上一步翻译,也可能为空)
- `search_hits`35 条 web 搜索结果(title + url + snippet
## 你要判断
1. **中文规范译名**`zh`):
- 如果搜索结果里有权威的中文表达(公司官网、维基、百度百科、权威医药媒体),以它为准
- 如果 `current_zh` 已经正确,沿用它,避免无谓变更
- 如果无中文通用译名(小众学术术语、新兴化合物),保留英文原文,`zh` 字段置空字符串
- 对公司/机构名:必须使用工商注册的正式中文名(例如 "Mabwell → 迈威生物"、"Sirnaomics → 圣诺生物"
- 对药物:优先 INN 通用名(例如 "inclisiran → 英克司兰"
- 对缩写/技术术语:使用业内通行译名(例如 "GalNAc → N-乙酰半乳糖胺""RNAi → RNA 干扰"
2. **英文全称**`en_full`):
- 如果术语是缩写(≤ 8 字符全大写或混合大小写),给出英文全称(例如 "ASGPR → Asialoglycoprotein Receptor"
- 如果术语本身就是全称,填相同的字符串或其最规范的写法
- 如果术语是公司名,填其英文法人全称(例如 "Mabwell → Mabwell (Shanghai) Bioscience Co., Ltd."
3. **可信度**`confidence`):
- `high`:至少两条独立、高质量信源(官网/监管机构/权威媒体)一致支持
- `medium`:一条高质量信源支持,或多条一般信源一致支持
- `low`:只能推断或无法确认,建议人工复核
4. **问题/警示**`issue`):
- 如果 `current_zh` 明显错误(例如把 "Mabwell" 译成 "Maywavee"),在 `issue` 中指出错在哪里
- 如果术语有多种译法争议,在 `issue` 中简述
- 如果搜索结果完全不相关(错别字、生僻词),在 `issue` 中说"搜索无有效结果"
- 无异常则留空字符串
## 输出格式(严格)
输出**一行 JSON**,不要用代码围栏,不要加任何解释。
```
{"zh": "迈威生物", "en_full": "Mabwell (Shanghai) Bioscience Co., Ltd.", "confidence": "high", "issue": ""}
```
如果 `current_zh` 错了:
```
{"zh": "迈威生物", "en_full": "Mabwell (Shanghai) Bioscience Co., Ltd.", "confidence": "high", "issue": "current_zh 'Maywavee' 为拼写错误,正确为 Mabwell → 迈威生物"}
```
如果无需中文译名(保留英文):
```
{"zh": "", "en_full": "Phosphoramidite", "confidence": "high", "issue": ""}
```