前言

随着人工智能(AI)的发展,人们也在生活中接触到各种各样的大模型,比如今年爆火的DeepSeek,或是开启大模型元年的ChatGPT。但是在使用的过程中,我们会发现,大模型是有知识库的,而且知识库的截止时间往往很早,我们无法从大模型中获取到一些时效性很强的内容,比如说我想知道今天的天气,大模型就无法回答,或者是回答一些乱七八糟的内容,也就是大模型幻觉。

那么这个问题促进了检索增强生成(RAG)技术的发展,RAG技术是先将用户提出的问题在自己的知识库内进行检索,然后根据检索到的信息再进行回答, 因此RAG模型往往会比普通的大模型拥有更准确,更有时效性的答案。可能有人会问,都是知识库,为什么使用RAG的模型的知识库会更准确呢?

因为RAG模型的知识库是由我们指定的,如果我想问一个医学上的问题,我可以提供给这个大模型一个只有若干医学文档的知识库,让模型从这里面检索,答案自然准确很多。那怎么增强时效性呢?我们可以让模型先去网络上搜索相关的内容,然后将搜索到的内容作为知识库来生成答案。这就是大模型的联网搜索功能。那么怎么实现搜索的功能呢?

今天就给大家带来一个超实用的技术教程——如何用Python快速调用博查AI的Web Search API!这个接口能让你轻松搜索全网网页和图片信息,还能自动生成摘要,让你的模型更加准确和具有时效性,简直是AI开发者的福音!话不多说,直接上干货!


一、前期准备:API Key获取

1.1 注册博查AI开放平台

  1. 访问博查AI开放平台
  2. 注册/登录账号(支持手机号或邮箱)
    在这里插入图片描述

1.2 创建API Key

  1. 登录后进入 「API Key 管理」
    在这里插入图片描述

  2. 点击 「创建 API Key」 生成密钥(形如sk-xxxxxx
    在这里插入图片描述

  3. 妥善保存,后续代码中会用到!

二、快速上手:Python调用实战

2.1 安装依赖库

在命令行安装下面的库,用来发送请求和获取内容

pip install requests

2.2 基础代码模板

代码如下(示例):

import requests
import json

# 填写你的API Key
API_KEY = "sk-你的密钥"

# 请求配置
url = "https://api.bochaai.com/v1/web-search"
headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}
payload = {
    "query": "天空为什么是蓝色的?",  # 搜索关键词
    "summary": True,               # 显示摘要
    "count": 5,                    # 返回5条结果
    "page": 1                      # 第一页
}

# 发送请求
response = requests.post(url, headers=headers, data=json.dumps(payload))

# 解析结果
if response.status_code == 200:
    results = response.json()
    print("搜索成功!结果如下:")
    for item in results["data"]["webPages"]["value"]:
        print(f"标题:{item['name']}")
        print(f"链接:{item['url']}")
        print(f"摘要:{item['snippet']}\n")
else:
    print(f"请求失败!错误码:{response.status_code}, 详情:{response.text}")

这样就可以接收到返回的内容啦!下面是接收到的部分返回内容:
在这里插入图片描述
我们可以看到返回值里面是会对搜索到的网页进行摘要总结的,这样可以让RAG模型更快得到重要信息。一定要记得把请求体参数里面的 summary 参数设为 True哦,不然可能会没有返回的内容。

三、参数详解:玩转高级搜索

3.1 时间范围过滤

想找最新资讯?试试freshness参数:

payload = {
    "query": "AI最新技术",
    "freshness": "oneWeek"  # 一周内的结果
    "summary": True,               # 显示摘要
    "count": 5,                    # 返回5条结果
    "page": 1   
}

可选值:oneDay(一天内)、oneWeek(一周内)、oneMonth(一个月内)、oneYear(一年内)、noLimit(默认不限)
ps:一般 noLimit 的效果最好哦。

3.2 返回更多结果

使用count参数:

payload = {
    "query": "AI最新技术",
    "summary": True,               # 显示摘要
    "count": 50,                    # 返回50条结果
    "page": 1   
}

count值越高,搜索返回的网页数越多哦,但是实际返回结果数量可能会小于count指定的数量,最大单次搜索返回50条。

四、结果解析:提取关键信息

4.1 网页结果字段说明

字段 说明 示例值
name 网页标题 “Python入门教程”
url 原始链接 “https://www.example.com/python”
snippet 网页内容的简短描述 “本文详细讲解Python基础语法…”
summary 长摘要(需开启summary) “Python是一种解释型语言…”

4.2 结果说明

除了网页文本外,其实Web Search还会返回包括网页、图片还有其他Response格式的内容,同时还兼容Bing Search API。

五、完整项目示例:搜索并保存结果

import requests
import csv

def search_and_save(query, filename="results.csv"):
    API_KEY = "sk-你的密钥"
    url = "https://api.bochaai.com/v1/web-search"
    headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
    payload = {"query": query, "count": 10}

    response = requests.post(url, headers=headers, json=payload)
    
    if response.status_code == 200:
        data = response.json()["data"]["webPages"]["value"]
        with open(filename, "w", newline="", encoding="utf-8") as f:
            writer = csv.writer(f)
            writer.writerow(["标题", "链接", "摘要"])
            for item in data:
                writer.writerow([item["name"], item["url"], item["snippet"]])
        print(f"结果已保存至{filename}!")
    else:
        print("搜索失败!")

# 使用示例
search_and_save("深度学习框架对比")

总结

通过这篇教程,你已经掌握了:

  1. API Key获取 → 2. 基础搜索调用 → 3. 高级参数配置 → 4. 结果解析与保存

赶紧动手试试吧!如果遇到问题,欢迎在评论区留言讨论~ 后续还会更新更多AI接口实战教程,关注我不迷路! 🚀

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐