r/LangChain 的一篇文章分享了一个使用 Google Dorks + Llama-3 + MCP 的自治 DaaS 架构。该模式适用于任何结构化文档发现作业。本教程在 Scavio 上遵循相同的流程。
前置条件
- Python 3.10+
- Scavio API 密钥
- Groq 或 Anthropic API 密钥
操作指南
步骤 1: 目标的 Dork 模式
站点:+ 文件类型:+ 关键字。
Python
DORKS = ['site:gov.br filetype:pdf 2026 contratos', 'site:europa.eu filetype:pdf AI act']步骤 2: 通过 Scavio 搜索运行 dork
返回指向 PDF 的有机结果。
Python
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def dork(q):
return requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY}, json={'query': q}).json()步骤 3: 过滤新的 PDF
日期筛选或法学硕士筛选。
Python
def fresh_pdfs(results, year='2026'):
return [r for r in results.get('organic_results', []) if year in r.get('snippet', '') and r['link'].endswith('.pdf')]步骤 4: 通过 Scavio extract 将 PDF 提取为文本
PDF 感知提取返回 markdown。
Python
def pdf_to_text(url):
r = requests.post('https://api.scavio.dev/api/v1/extract',
headers={'x-api-key': API_KEY},
json={'url': url, 'format': 'markdown'}).json()
return r.get('markdown', '')步骤 5: LLM 将垃圾文本转换为类型化 JSON
严格模式提示;如果不解析则拒绝。
Python
import anthropic, json
client = anthropic.Anthropic()
def typed(md):
msg = client.messages.create(model='claude-sonnet-4-6', max_tokens=600,
messages=[{'role':'user','content':f'Extract opportunity details as JSON: title, deadline, amount, agency. Source: {md[:6000]}'}])
return json.loads(msg.content[0].text)Python 示例
Python
# Daily run: 5 dorks × ~20 PDFs each = ~105 calls = ~$0.45 on Project tier.JavaScript 示例
JavaScript
// TS version uses the same endpoints.预期输出
JSON
Government bid PDFs converted to typed JSON daily. Cache layer keeps repeat queries at sub-50ms.