zcbot/skills/brief/references/search_strategy.md

62 lines
3.8 KiB
Markdown
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.

# 三路检索策略(documents / research / web)
简报数据底座最多三路并用。**三路分工不同、去重要做、学术与资讯分开计数**。
## 三路分工
| 路 | 拿什么 | 怎么调 | 强项 | 注意 |
|---|---|---|---|---|
| **documents** | 材料学科论文**全文 md**(胶凝材料库 classification_id=1) | host-side tool `document_search`,中英 query 都行(后端跨语言语义检索) | LLM 直接读全文、引文核验抓锚点最顺;材料类首选 | 需宿主配 `DOCUMENT_SEARCH_API_KEY`;只覆盖预收的 7 学科 |
| **research** | OpenAlex 元数据 + DOI + abstract,可拉 PDF/XML | `from skills.research.paper import search, get_paper, fetch_xml`,`run_python` 调 | 补近期文献与 DOI、`year_gte` 卡时间窗、`is_oa`/`has_pdf` filter | keyword **英文为主**;SearchFilter 匹配 title/author 不含 abstract |
| **web** | 政策 / 标准 / 会议 / 产业动向 | WebSearch / WebFetch | 时效性最强,学术库覆盖不到的非论文信息 | **不当学术结论引**;单列"产业/政策动向"段,标来源 + 日期 |
> documents / research 任一不可用(key 没配 / 服务器连不上)时**降级用另一路 + web**,别整体放弃。research 不持 key,通常是降级首选。
## 中文方向 → 英文术语(关键)
库里 95%+ 文献 title 是英文,中文 keyword 命中率很低。**中文方向先转专业英文词组再搜**,缩写要展开:
| 中文方向 | 英文检索词组(同义/展开) |
|---|---|
| 低碳水泥 | low-carbon cement / low-CO2 cement / clinker substitution |
| 辅助胶凝材料 SCM | supplementary cementitious materials / SCM / fly ash / GGBFS / ground granulated blast-furnace slag / calcined clay / silica fume / limestone powder |
| LC3 石灰石煅烧黏土水泥 | limestone calcined clay cement / LC3 / calcined clay cement |
| 水泥窑碳捕集 | cement CCUS / carbon capture cement kiln / oxyfuel cement |
| 工业固废资源化 | industrial solid waste / steel slag / red mud / phosphogypsum in cement |
| 碳化养护 | CO2 curing / carbonation curing / accelerated carbonation |
| 水化机理 | cement hydration / C-S-H / hydration kinetics |
转译策略:用领域标准英文术语;不确定就先英文 keyword 试一次看返回 title 是否相关;多个同义词分别搜一遍合并去重;缩写(SCM/LC3/GGBFS)与全称都搜。
## research 调用范式
```python
from skills.research.paper import search
# 时间窗 = 近1年 → year_gte=<当前年-1>;多个英文同义词分别搜
for kw in ["limestone calcined clay cement", "LC3 cement", "supplementary cementitious materials"]:
papers = search(keyword=kw, year_gte=2025, limit=15)
for p in papers:
# list 已带 abstract,直接看前 200-400 字判切题,不必再 get_paper
print(p["publication_year"], p["title"], p["doi"])
if p["abstract"]:
print(p["abstract"][:300])
```
要全文做引文核验:`has_fulltext_xml=True` 先 `fetch_xml`(结构化,LLM 友好),否则 `fetch_pdf`
## 跨源去重
同一篇 / 同一结论可能三路都出现:
- **同 DOI** → 一条(documents 全文优先,记 DOI 来自 research)
- **同结论不同文献**(多篇验证同一现象)→ 合并成一句"多篇(refN, refN)验证了 X",不逐条铺开
- **web 资讯 vs 学术论文** → 不去重、不混算;web 进"产业/政策动向"段,学术进簇与引文计数
- 证据表 `evidence.md` 一行一条标"来源(documents/research/web)",去重在表上做完再起草
## 收多少 / 收到什么程度
- 按深度收 2080 条候选(见 brief_outline 预算),**不求穷尽**——够支撑各簇判断即可
- 每簇至少 2 篇代表文献(关键论断 ≥2 源,接 citation_verify 三角印证)
- 命中 0 条:换同义词 / 展开缩写 / 放宽年份;3 次仍空 → 如实告诉用户库未覆盖该窗口,**不脑补**