ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何利用 GitHub 存储库数据打好 LLM 基础
教程

如何利用 GitHub 存储库数据打好 LLM 基础

Ground LLM 通过将 SERP 站点运营商的 GitHub 搜索与 Scavio 的获取端点相结合,以实际的存储库内容进行回答。

获取免费API密钥API文档

以源代码为基础的法学硕士答案胜过幻觉的解释。本教程使用 Scavio 的 SERP 和 site:github.com 及其获取端点,将存储库内容引入代理循环,而无需大量 GitHub API 集成。

前置条件

  • Python 3.10+
  • Scavio API 密钥
  • LLM API 密钥

操作指南

步骤 1: 通过 SERP 在存储库内搜索

site:github.com/ORG/REPO 范围搜索可以快速找到正确的文件。

Python
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']

def repo_search(repo, query):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'query': f'site:github.com/{repo} {query}', 'num_results': 10})
    return r.json().get('organic_results', [])

步骤 2: 获取选定的文件

GitHub 原始 URL 可与 Scavio 的获取端点配合使用。

Python
def fetch_raw(url):
    raw = url.replace('github.com', 'raw.githubusercontent.com').replace('/blob/', '/')
    r = requests.post('https://api.scavio.dev/api/v1/extract',
        headers={'x-api-key': API_KEY},
        json={'url': raw})
    return r.json().get('content', '')

步骤 3: 把答案接地气

将获取的内容传递到 LLM 提示中并附有源引用。

Python
import anthropic
client = anthropic.Anthropic()

def grounded_answer(repo, question):
    hits = repo_search(repo, question)
    content = fetch_raw(hits[0]['link']) if hits else ''
    msg = client.messages.create(
        model='claude-sonnet-4-6',
        max_tokens=1024,
        messages=[{'role': 'user', 'content': f'{question}\n\nCONTEXT:\n{content[:4000]}'}])
    return msg.content[0].text

步骤 4: 添加多文件组合

提取前 3 个结果,按相关性排名,撰写上下文。

Python
def multi_file_context(repo, question):
    hits = repo_search(repo, question)[:3]
    return '\n\n'.join([fetch_raw(h['link'])[:2000] for h in hits])

步骤 5: 验证引文

确保 LLM 响应至少提及一个源 URL。

Python
def has_citations(answer, urls):
    return any(u in answer for u in urls)

Python 示例

Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']

def repo_grounded(repo, question):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY},
        json={'query': f'site:github.com/{repo} {question}'})
    return r.json().get('organic_results', [])[:3]

print(repo_grounded('prisma/prisma', 'migrate.ts'))

JavaScript 示例

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function repoGrounded(repo, question) {
  const r = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: `site:github.com/${repo} ${question}` })
  });
  return ((await r.json()).organic_results || []).slice(0, 3);
}

预期输出

JSON
LLM answers cite exact files and code paths in the target repo. Hallucination rate drops materially versus ungrounded answers.

相关教程

  • 如何使用实时 GitHub 问题和文档搜索构建编码代理
  • 如何将 API 文档转换为光标的 Markdown
  • 如何将网站转换为 LLM 就绪的 Markdown

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

Python 3.10+. Scavio API 密钥. LLM API 密钥. Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Workflow

每日本地法学硕士搜索接地管道

Read more
Best Of

2026年本地LLM最佳网络搜索API

Read more
Best Of

2026年5月本地LLM个人知识库工具推荐

Read more
Solution

用搜索检测和纠正LLM错误回答

Read more
Solution

用实时搜索数据支撑LLM回答

Read more
Use Case

当地法学硕士新闻和搜索基础

Read more

开始构建

Ground LLM 通过将 SERP 站点运营商的 GitHub 搜索与 Scavio 的获取端点相结合,以实际的存储库内容进行回答。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策