文章目录
前言
大家好,我是BigNorthBear。 为了避免传统搜索引擎的那些推荐算法与SEO优化带来的信息偏差问题,本文将介绍如何通过博查Web Search API、LangChain与最近爆火的DeepSeek,打造一个精准、高效的AI智能搜索工具。通过详细的技术讲解、代码示例以及数据分析,我们将探讨如何获取更可靠的搜索结果。
一、传统搜索引擎的局限性
在当前的互联网环境中,搜索引擎的排序机制受到广告投放、SEO优化以及个性化推荐等多重因素的影响。这导致用户在检索信息时往往无法获得最真实、最新的内容。例如,搜索“python教程”时,传统搜索引擎可能返回的全是过时的文章或者铺天盖地的广告。
相较之下,博查API采用去中心化的数据抓取策略,直接从原始网页提取信息,并通过语义分析对内容进行重新排序,从而确保搜索结果的准确性与时效性。在相同搜索条件下,博查API提供的结果主要来自官网、权威媒体和最新报告。
二、博查API与LangChain简介
1. 博查API是什么?
博查API其实提到过很多次了,简单的说,它其实就是一个智能搜索工具,它跟我们平时用的搜索引擎不太一样。
它的特别之处在于,它从多个不同的地方抓取信息,不是像传统搜索引擎那样只看网页的优化或者广告投放。 你可以想象,传统的搜索引擎就像一个广告商在操控的市场,往往给你推荐的都是被推销过的内容,很多时候甚至是已经过时的或不太靠谱的信息。而博查API则更多地从专业平台、学术网站和技术社区获取数据,这样搜索的结果就显得更精准,也能保证信息的时效性。
博查API的另一个大亮点是,它会根据内容的语义来排序搜索结果,而不是简单地按照关键词匹配。 就是说,它能理解你搜索的意图,给你最相关、最有价值的内容。就比如你搜索一篇技术文章,它不会只是看文章里面有没有关键词“Python”,而是看文章的内容是否真正符合你的需求。
而且,博查API返回的数据是结构化的,像是标题、摘要、发布时间等等,全部都非常清楚,开发者可以直接拿来处理。这对于需要快速获取高质量信息的开发者来说,真的是一个非常棒的工具。
2. LangChain是什么?
LangChain是一个帮助开发者和大语言模型(像是GPT-4)进行更高效互动的工具。 说白了,它就像是一个大模型的助手,能够让你用简单的方式调用大模型来处理复杂的任务。
你可以把LangChain想象成一个“自动化工作流”。比如你可以让它帮你处理搜索结果,提炼出最重要的信息,甚至判断内容是不是最新的。它不仅能帮助你分析文本,还能通过设定好的流程来自动化这些任务,让你不必每次都手动去做。这样一来,开发者就能更高效地完成数据处理,节省很多时间。
LangChain的另一个优势是,它可以跟很多不同的数据源和API打交道。你不仅可以用它来分析博查API返回的搜索结果,还可以把它和其他系统、工具结合起来,扩展功能。简而言之,LangChain让大语言模型变得更易用,也能帮助开发者快速构建智能化的应用。
三、前置准备
3.1 获取博查API Key
- 前往博查AI开放平台 → API Key管理 → 创建新Key
- (具体步骤可以参考文章【手把手教学】用Python玩转博查AI Web Search API!全网搜索一键搞定!)
3.2 安装依赖
pip install requests
pip install langchain_openai
pip install langchain
四、技术实现:集成博查API与LangChain
4.1 获取搜索结果
首先,我们调用博查API获取结构化的搜索数据。以下代码展示了如何使用博查API进行搜索,并返回相关结果。
import requests
import json
API_KEY = "sk-你的密钥"
url = "https://api.bochaai.com/v1/web-search"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
def fetch_search_results(query, count=5):
payload = {
"query": query,
"summary": True,
"count": count,
"freshness": "noLimit"
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
if response.status_code == 200:
return response.json()["data"]["webPages"]["value"]
else:
raise Exception(f"API调用失败:{response.text}")
results = fetch_search_results("大模型推理优化")
print("首条结果标题:", results[0]["name"])
print("链接:", results[0]["url"])
print("摘要:", results[0]["snippet"])
print("时间:", results[0]["dateLastCrawled"])
此代码成功执行后,将返回包含标题、链接、摘要及发布时间等信息的结构化数据。
首条结果
标题: 2024年大模型推理优化论文精选
链接: https://www.cnblogs.com/ExMan/p/18720701
摘要: OSDI (USENIX Symposium on Operating Systems Design and Implementation) 和SOSP (ACM Symposium on Operating Systems Principles) 是计算机操作系统领域最重要的两大国 际会议,在国际上享有极高的学术声誉,也是 CCF 推荐的 A 类会议。本文整理了 OSDI 2024 和 SOSP 20…
时间: 2025-02-17T20:17:00Z
4.2 解析搜索结果
借助LangChain,我们可以对搜索数据进行智能分析,例如提炼核心观点、关键词,并判断其时效性。
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema import StrOutputParser
llm = ChatOpenAI(
model="deepseek-chat",
base_url="https://api.deepseek.com/v1", # DeepSeek API 地址
api_key= "your_deepseek_api_key" # 你的 DeepSeek API Key
)
prompt = ChatPromptTemplate.from_template("""
基于以下内容:
{content}
执行任务:
1. 用一句话总结核心内容;
2. 提取3个技术关键词;
3. 判断是否为最新进展(是/否)。
""")
chain = prompt | llm | StrOutputParser()
for result in results:
content = f"{result['name']}\n{result['snippet']}"
analysis = chain.invoke({"content": content})
print(f"标题:{result['name']}")
print(f"分析:{analysis}\n")
执行上述代码后,每条搜索结果都会被LangChain自动处理,输出关键信息,以便快速筛选出有价值的内容。
标题:大模型领域进展不断 多场景应用未来可期
分析结果:
- 核心观点:大模型技术正从研发阶段加速进入多场景应用阶段,赋能百业千家并推动科学研究。
- 关键技术关键词:
- 大模型(如通义千问、文心一言等)
- 算力设施(随取随用的基础设施支撑)
- 多场景应用(手机、供应链、教育、城市管理等)
- 是否与“最新进展”相关:是(提及技术从“上新品”到“强应用”的阶段性转变及行业动态)。
五、项目完整代码
import requests
import json
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema import StrOutputParser
# 配置博查API(记得替换成你的API Key)
API_KEY = "你的API Key"
url = "https://api.bochaai.com/v1/web-search"
DEEPSEEK_API_KEY = "你的 DeepSeek API Key"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
def bocha_search(query, count=5):
payload = {
"query": query,
"summary": True,
"count": count,
"freshness": "noLimit"
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
if response.status_code == 200:
return response.json()["data"]["webPages"]["value"]
else:
raise Exception(f"API调用失败:{response.text}")
# 测试搜索“大模型技术进展”
results = bocha_search("大模型技术进展")
# 初始化LangChain的LLM(这里用 DeepSeek,你也能换其他模型)
llm = ChatOpenAI(
model="deepseek-chat",
base_url="https://api.deepseek.com/v1", # DeepSeek API 地址
api_key= DEEPSEEK_API_KEY # 你的 DeepSeek API Key
)
# 定义处理流程:输入搜索内容 → 提取摘要 → 分析技术点
prompt = ChatPromptTemplate.from_template("""
你是一个技术分析师,请根据以下搜索内容:
{content}
完成以下任务:
1. 用一句话总结核心观点;
2. 提取3个关键技术关键词;
3. 判断内容是否与“最新进展”相关(是/否)。
""")
chain = prompt | llm | StrOutputParser()
# 批量处理博查API的结果
for result in results:
content = f"{result['name']}\n{result['snippet']}"
analysis = chain.invoke({"content": content})
print(f"标题:{result['name']}")
print(f"分析结果:\n{analysis}\n")
六、博查API的技术优势
我们可以通过代码实战看到,博查API相比于传统搜索引擎来说,有以下几个优点:
- 更真实的搜索结果:屏蔽SEO优化站点,优先展示权威来源。
- 最新信息优先:确保搜索结果涵盖最新动态,而非过时内容。
- 语义分析能力:通过NLP技术理解搜索意图,减少无关内容的干扰。
例如,在搜索“Python学习路径”时,博查API优先返回CSDN高赞文章,知乎高赞回答以及GitHub上的最新教程,而不会受到培训机构广告的干扰。
总结
博查API + LangChain + DeepSeek 这种自定义的智能化搜索链条,为开发者提供了一种更高效的搜索解决方案。通过去中心化爬取和智能分析,用户可以更快速地获取精准的技术和学术信息。
相比于传统的搜索引擎的种种局限性,智能化搜索工具无疑是一种新的高效的解决方案!大家可以手动实现一个自己的智能搜索工具,来提高自己的搜索效率!
扩展阅读:
🔗 系列文章推荐:
【搜索引擎不想告诉你的事(二):你看到的内容只是他们想让你看到的!】
【搜索引擎不想告诉你的事(三):SEO与搜索引擎的相爱相杀】