用 Sciverse 做专利与文献语义探索
专利检索Agent进阶

用 Sciverse 做专利与文献语义探索

通过语义检索同时探索专利和学术文献,发现技术关联

用户场景
研发人员需要了解某项技术在专利和学术论文中的覆盖情况,通过语义检索发现两者之间的关联和差异。
预估调用量
~10–20 次 API 调用
适用工具
agentic-searchcontent
调用链路
agentic-search(专利关键词)→ agentic-search(学术关键词)→ content(验证)→ 对比分析

输入示例

用户提问:
"探索 CRISPR base editing 领域的专利文献和学术研究,找出技术关联。"

输出示例

## 专利与文献语义探索:CRISPR Base Editing

### 专利相关片段(来自 agentic-search)
1. [doc_id: 由 agentic-search 返回] "A method for adenine base editing..." (score: 0.89)
2. [doc_id: 由 agentic-search 返回] "Compositions for cytosine base editing..." (score: 0.85)

### 学术文献片段
1. [doc_id: 由 agentic-search 返回] "Programmable base editing of A-T to G-C..." (score: 0.92)
2. [doc_id: 由 agentic-search 返回] "Programmable base editing without DNA cleavage..." (score: 0.88)

### 关联分析
- 专利片段的技术方案与学术片段的 ABE 架构高度相关...

Agent Prompt 示例

你是一个专利与文献探索 Agent。当用户提出技术领域时:
1. 调用 agentic-search 检索包含"patent"关键词的相关片段
2. 再次调用 agentic-search 检索学术文献片段
3. 对比两组结果,找出技术关联
4. 调用 content 验证关键技术细节
5. 输出对比分析报告,标注所有 doc_id 来源

注意:当前为语义探索模式,不保证能精确区分专利和论文类型

分步实现

Step 1: 环境准备

安装依赖并配置环境变量

!pip install httpx anthropic
import os
os.environ["SCIVERSE_API_TOKEN"] = "sv-your-token-here"  # 替换为你的真实值
import os
os.environ["ANTHROPIC_API_KEY"] = "sk-ant-..."  # 替换为你的真实值

Step 2: 语义检索专利和学术文献

分别用专利和学术关键词进行语义检索

import os
import asyncio
import httpx

BASE = "https://api.sciverse.space"
TOKEN = os.environ["SCIVERSE_API_TOKEN"]
HEADERS = {"Authorization": f"Bearer {TOKEN}"}

async def search(query: str, top_k: int = 15):
    async with httpx.AsyncClient(timeout=30) as client:
        resp = await client.post(
            f"{BASE}/agentic-search",
            headers=HEADERS,
            json={"query": query, "top_k": top_k}
        )
        resp.raise_for_status()
        return (resp.json().get("hits") or [])

async def main():
    # 检索专利相关内容
    patent_hits = await search("CRISPR base editing patent method composition")
    print(f"Patent-related: {len(patent_hits)} chunks")

    # 检索学术文献
    academic_hits = await search("CRISPR base editing adenine cytosine mechanism")
    print(f"Academic-related: {len(academic_hits)} chunks")

    return patent_hits, academic_hits

patent_hits, academic_hits = await main()

Step 3: 交叉分析与报告生成

将两组检索结果交给 LLM 进行关联分析

from anthropic import Anthropic

client = Anthropic()

patent_summary = "\
".join([
    f"- [{h['doc_id']}] (score: {h['score']:.2f}) {h['title']}: {h.get('chunk', '')[:80]}..."
    for h in patent_hits[:8]
])
academic_summary = "\
".join([
    f"- [{h['doc_id']}] (score: {h['score']:.2f}) {h['title']}: {h.get('chunk', '')[:80]}..."
    for h in academic_hits[:8]
])

msg = client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=4096,
    messages=[{
        "role": "user",
        "content": f"""分析以下两组检索结果的技术关联:

## 专利相关片段
{patent_summary}

## 学术文献片段
{academic_summary}

请输出:
1) 两组结果中的技术主题对比
2) 可能的专利-论文关联(基于内容相似性)
3) 技术发展脉络推测

注意:所有结论必须基于上述检索结果,标注 doc_id。"""
    }]
)
print(msg.content[0].text)

注意事项

  • 当前为语义探索模式:通过关键词区分专利和学术内容,不保证 100% 准确分类
  • 如需精确区分文档类型,请先调用 meta-catalog 确认是否有 source_type 等字段可用
  • Sciverse 数据库覆盖学术文献和部分专利,具体覆盖范围请参考数据深度页面
  • 建议对关键片段调用 content 接口验证完整上下文后再下结论

FAQ

适合什么任务?

适合 prior art、技术调研、专利与论文交叉验证。

输出时要注意什么?

应区分论文证据和专利证据,不要混成同一种来源。

为什么要交叉检索?

同一技术可能先出现在论文、专利或产品材料中,交叉检索能提高覆盖率。

如何组织结果?

建议按技术主题、论文证据、专利证据和风险判断分组输出。

下一步

还没有 API Key?

登录控制台「密钥」即可创建。同一套 API Key 可用于已开通的 Sciverse、点石与 Skills 能力,提供基础试用额度,具体以账号权限为准。

前往控制台