【联网搜索】光速实现大模型联网搜索(api方案)
·
在 AI 应用开发中,为大模型添加联网搜索能力可以显著提升其实时信息处理能力。本文将介绍一种极简实现方案,让你的大模型瞬间拥有获取最新信息的能力。

【如果你对人工智能的学习有兴趣可以看看我的其他博客,对新手很友好!!!】
【本猿定期无偿分享学习成果,欢迎关注一起学习!!!】
一.核心原理
大模型联网搜索的核心在于:
-
判断问题是否需要实时信息
-
对需要实时信息的问题进行网络搜索
-
将搜索结果作为上下文提供给大模型
-
基于搜索结果生成最终回答
二.实现代码
(1)以下是你需要的两个 API 的获取网址:
-
Serper API:https://serper.dev/这是提供搜索引擎 API 服务的平台,注册后可获取 API 密钥,用于实现代码中的网络搜索功能。
-
阿里云通义千问 API:大模型服务平台百炼控制台这是阿里云提供的大模型服务平台,在这里可以申请通义千问(Qwen)的 API 密钥,用于调用代码中的大模型能力。
使用时,只需在这两个平台注册账号并按照指引获取 API 密钥,然后替换代码中对应的密钥即可使用。
(2)以下是完整实现代码,仅需几行核心逻辑即可实现功能:
import os
import json
import requests
from openai import OpenAI
# 配置API密钥
SERPER_API_KEY = "你的Serper API密钥"
QWEN_API_KEY = "你的Qwen API密钥"
def web_search(query):
"""使用Serper API进行网络搜索"""
url = "https://google.serper.dev/search"
payload = json.dumps({"q": query})
headers = {
'X-API-KEY': SERPER_API_KEY,
'Content-Type': 'application/json'
}
try:
response = requests.post(url, headers=headers, data=payload)
response.raise_for_status()
return parse_results(response.json())
except Exception as e:
print(f"搜索出错: {e}")
return []
def parse_results(results):
"""解析搜索结果,提取关键信息"""
parsed = []
for item in results.get("organic", [])[:3]: # 取前3条结果
parsed.append({
"title": item.get("title", "无标题"),
"link": item.get("link", "无链接"),
"snippet": item.get("snippet", "无摘要")
})
return parsed
def need_search(query):
"""判断是否需要进行搜索"""
need_search_keywords = ["最新", "今天", "现在", "2025", "最近", "多少", "何时", "哪里"]
return any(keyword in query for keyword in need_search_keywords)
def get_qwen_response(messages):
"""调用Qwen模型获取响应"""
client = OpenAI(
api_key=QWEN_API_KEY,
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus",
messages=messages
)
return completion.choices[0].message.content
# 主逻辑
user_query = "查询一下今天的最新最热的新闻?"
if need_search(user_query):
search_results = web_search(user_query)
if search_results:
system_prompt = "基于以下搜索信息回答问题,确保准确引用最新内容:"
search_info = "\n".join([f"标题: {i['title']}\n摘要: {i['snippet']}\n" for i in search_results])
messages = [
{'role': 'system', 'content': f"{system_prompt}\n{search_info}"},
{'role': 'user', 'content': user_query}
]
else:
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': user_query}]
else:
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': user_query}]
response = get_qwen_response(messages)
print("回答:", response)
三.关键模块解析
-
搜索判断模块:通过关键词匹配,快速判断问题是否需要联网搜索
-
网络搜索模块:利用 Serper API 获取搜索结果,简洁高效
-
结果解析模块:提取搜索结果中的核心信息,减少冗余
-
大模型调用模块:将搜索结果作为上下文传入模型,生成精准回答
四.使用说明
-
替换代码中的 API 密钥(Serper 和 Qwen)
-
根据需求调整 need_search 函数中的关键词列表
-
运行程序,输入问题即可获得结合最新网络信息的回答
这种实现方式兼顾了开发效率和功能完整性,适合快速为你的大模型应用添加联网能力。
更多推荐


所有评论(0)