62 lines
3.8 KiB
Markdown
62 lines
3.8 KiB
Markdown
# 三路检索策略(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)",去重在表上做完再起草
|
||
|
||
## 收多少 / 收到什么程度
|
||
|
||
- 按深度收 20–80 条候选(见 brief_outline 预算),**不求穷尽**——够支撑各簇判断即可
|
||
- 每簇至少 2 篇代表文献(关键论断 ≥2 源,接 citation_verify 三角印证)
|
||
- 命中 0 条:换同义词 / 展开缩写 / 放宽年份;3 次仍空 → 如实告诉用户库未覆盖该窗口,**不脑补**
|