项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现

机智流 2025-09-24 22:34


本文来自社区同学投稿

本项目正积极参与AI Agent2025 全球专项赛,如果您认可我们的项目,希望能得到您的支持。您可以扫描下方图片中的二维码,为我们投出宝贵的助力票。需要注意的是,投票时间为2025 年 9 月 21 日 12:00AM - 2025 年 10 月 20 日 12:00AM,且每天都可以投一次哦。

项目主要成员目前都是学生,他们怀揣着对人工智能的热爱与追求,组成了这支充满活力与创造力的团队:

  • 邬雨航:上海工程技术大学研二
  • 王文政:烟台大学大三
  • 汤政洋:山东大学大二
  • 高静成:上海工程技术大学研二

期望能在AI Agent2025全球专项赛中取得优异成绩,同时也为人工智能技术的应用创新贡献自己的力量。

项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图1

1. 鸣谢

大家好,我是上海工程技术大学的研一学生邬雨航,特别感谢对本项目的 API 支持以及宣传。同时感谢以下同学的参与:烟台大学王文政同学(特别感谢)、上海工程技术大学张恒华同学。

特别要提的是,实战营提供的免费课程、模型和算力的支持,极大地帮助了像我这样的普通学生。在此,我表示衷心的感谢!

2. 动机

目前,像 DuckDuckGo 这类免费搜索接口获取外部知识时常出现内容残缺、结果不稳定,尤其是小众问题更难拿到高质量原文;而 Bocha、Exa 等效果好的 API 又价格不菲。为此,我们开源了完全免费的 FreeKnowledge AI,在高灵活度爬取网页内容的同时,通过 InternLM2.5-7B 大模型对网页进行清洗,自动抽取出逻辑通顺、信息密度高的核心内容,既保证了知识质量,也实现了零成本调用。

相关链接:

  • https://github.com/InternLM/InternLM
  • https://internlm.intern-ai.org.cn/api/document?lang=zh
  • https://openxlab.org.cn/
  • https://github.com/VovyH/FreeKnowledge_AI
  • https://pypi.org/project/FreeKnowledge-AI/
项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图2

3. 项目简介

FreeKnowledge AI 是一个免费、高效、可信赖的外部知识增强搜索引擎,旨在解决大语言模型在事实准确性与动态知识方面的不足。通过融合搜索、智能筛选与大模型摘要,FreeKnowledge AI 为智能问答和知识获取提供了一条零成本的增强路径。

为什么做 FreeKnowledge AI?

大语言模型在专业、动态、长尾问题上常出现事实性幻觉或知识更新滞后的情况。现有外部检索方案依赖搜索引擎 API,免费接口往往频率受限、中文支持不足、结果相关性差,商业接口虽性能更好,但长期使用成本高昂,不利于开源和大规模应用。因此,我们提出 FreeKnowledge AI,希望在免费与高效的前提下,兼顾多语言和高质量结果,降低知识增强的门槛。

FreeKnowledge AI 能做什么:

  • 🔍 双搜索引擎融合:结合 DuckDuckGo 与百度搜索,覆盖国际与中文语境。
  • 📈 智能相关性评分:自动过滤低质量网页,优先排序高信噪比结果。
  • 🥾 直接 URL 爬取:支持指定网页抓取内容。
  • 🤖 大模型摘要与提取:基于书生·浦语大模型,提炼关键信息。

实验验证

我们首次构建了一个非开放式问答数据集(医疗和学术领域),用于评估搜索接口性能。实验结果显示:

  • 医疗问答准确率:69.0%(BoCha API 为 43.0%)
  • 学术问答准确率:41.0%(DuckDuckGo API 为 1.5%,BoCha API 为 7.0%)

结果表明 FreeKnowledge AI 在专业性与准确性方面均显著优于主流方案。

数据集将会上传至本项目的 Github 仓库下的 dataset 文件夹:

https://github.com/VovyH/FreeKnowledge_AI

适用人群

  • 从事智能问答或知识增强研究与应用,寻求低成本解决方案的研究者和开发者。

  • 关注大模型外部检索、信息过滤与开源搜索的技术爱好者。 

  • 在医疗、学术等领域需要权威信息支持的机构或个人。

4. 简单的使用方式

本地部署:

  • 首先安装依赖(目前版本 0.3.1):
pip install FreeKnowledge-AI
  • 初始化一系列参数,并编写一个简单的示例:
from FreeKnowledge_AI import knowledge_center

# 1.Initialize the knowledge agent
center = knowledge_center.Center()
question = "2024年上海工程技术大学研究生复试分数线"
flag = True # Flag indicates whether a large model is needed, and the output content will be more beautiful and standard.
mode = "BAIDU" # Currently only supports "BAIDU" and "DUCKDUCKGO"。
# 2.Respond to external knowledge
results = center.get_response(question, flag, mode)
for result in results:
    print(f"{result}\n\n")
  • 日志:
项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图3
爬取相关内容时输出的日志
  • 控制台输出:
项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图4
项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图5
控制台打印的结果

OpenXLab 的使用

本项目已上传到 OpenXLab 平台,直接在 OpenXLab应用中心搜索 “FreeKnowledgeAI” 即可访问,应用链接:

https://openxlab.org.cn/apps/detail/wwz1111/FreeKnowledgeAI

项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图6
FreeKnowledgeAI搜索结果

5. 灵活的参数控制

我们允许传入各种参数以更好地控制输出,包括:

  • question: 用户输入的问题 (必填)。
  • flag: 是否使用大型模型提取已抓取的外部知识的核心内容(默认为 True)。

注:我们默认使用的是 InternLM2.5-7B 模型。

  • mode: “BAIDU”、“DUCKDUCKGO” (默认为 “DUCKDUCKGO”),或 “URL_SPECIFIC”。

注:使用“DUCKDUCKGO”时需要使用 VPN,而“BAIDU”则不需要。我们推荐使用 “DUCKDUCKGO”,因为抓取的结果更准确,但百度的响应速度会更快。

  • specific_url:指定要直接抓取的确切 URL。

示例:“https://docs.python.org/3/tutorial/

  • model:您可以选择要使用的大型模型(默认为 “internlm/internlm2_5-7b-chat”)。
  • base_url:模型的base_url。
  • key: 传入你自己的密钥。
  • max_web_results: 获取抓取的外部知识数量(默认 5)。
  • save_format:指定保存结果的格式。设置为 “json” 可自动将结果保存到以您的问题命名的文件中(例如,“your_question.json”)。

错误提示:

当您无法获取网站内容时,请不要担心,只需多等一会儿,因为有些网站需要验证。另一种解决方案是增加重试次数和线程休眠时间。

6. 完整示例

from FreeKnowledge_AI import knowledge_center

center = knowledge_center.Center()
question = "2025年EMNLP会议的主题是什么?"
flag = True 
mode = "DUCKDUCKGO"

results = center.get_response(question, flag, mode, model="internlm/internlm2_5-7b-chat"
                              base_url="xxxx", key = "xxx", max_web_results = 2)
for result in results:
    print(f"{result}\n\n")
项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图7
提问“2025年EMNLP会议的主题是什么?”,上图是 FreeKnowledge-AI 返回的结果

可以发现 FreeKnowledge-AI 能够很好地找到最相关的内容,即“Interdisciplinary Recontextualization of NLP”。

项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图8
2025年EMNLP会议的主题

7. 对比的方法

DuckDuckGo API

DuckDuckGo 是一个较大的搜索引擎,其英文搜索质量较好,中文搜索质量很差。(其实都很一般)

from duckduckgo_search import DDGS
from pprint import pprint

with DDGS() as ddgs:
    pprint([r for r in ddgs.text("EMNLP2025年的会议主题", region='cn-zh', max_results=10)])

很不稳定:

项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图9
DUCKDUCKGO API 表现非常不稳定

成功时的效果:可以发现生成的内容与问题不太相关。

项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图10
表现稳定时返回的结果,和问题完全不相干

优点: 免费,响应速度快。

缺点: 不稳定,生成内容质量不高。

BoCha API

支持自然语言搜索的 Web Search API,能从近百亿网页和生态内容源中搜索高质量世界知识,包括新闻、图片、视频、百科、机酒、学术等。效果比 DuckDuckGO API 要好很多且稳定,但是需要付费。

相关链接:https://bochaai.com/

# BoCha AI Search Python SDK
import requests, json
from typing import Iterator

BOCHA_API_KEY = "YOUR-API-KEY"
BOCHA_API_URL = "https://api.bochaai.com/v1/ai-search"

def bocha_ai_search(
    query: str,
    api_key: str,
    api_url: str = "https://api.bochaai.com/v1/ai-search",
    freshness: str = "noLimit",
    answer: bool = False,
    stream: bool = False
)
:

    """ 博查AI搜索 """
    data = {
        "query": query,
        "freshness": freshness,
        "answer": answer,
        "stream": stream
    }

    resp = requests.post(
        api_url,
        headers={"Authorization"f"Bearer {api_key}"},
        json=data,
        stream=stream
    )

    if stream:
        return (json.loads(line) for line in parse_response_stream(resp.iter_lines()))
    else:
        if resp.status_code == 200:
            return resp.json()
        else:
            return { "code": resp.code, "msg""bocha ai search api error." }

def parse_response_stream(resp: Iterator[bytes]) -> Iterator[str]:
    """将stream的sse event bytes数据解析成line格式"""
    for line in resp:
        if line:
            if line.startswith(b"data:"):
                _line = line[len(b"data:"):]
                _line = _line.decode("utf-8")
            else:
                _line = line.decode("utf-8")
            yield _line


response = bocha_ai_search(
    api_url=BOCHA_API_URL,
    api_key=BOCHA_API_KEY,
    query="EMNLP2025年的会议主题",
    freshness="noLimit",
    answer=False,
    stream=False
)

print(json.dumps(response))

对结果仔细分析可发现,虽然博查API返回的第一个结果跟问题“EMNLP2025年”相关,但是内容阐述的是征稿涉及的方向,缺少最关键的内容,即“跨学科”。其次返回的第二个结果跟 EMNLP 完全不相干。

项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图11
博查API返回的结果
项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图12
EMNLP2025年的主题

exa API

Exa API 是作者用过所有外部知识接口里效果最好的一个,无论是内容的相关程度和排版都是最好的,但是需要付费(大概0.015美金一个问题,返回5-10个结果)。

from exa_py import Exa

exa = Exa(api_key = "xxxx")

result = exa.search_and_contents(
  "2025年EMNLP会议的主题是什么?",
  text = True,
  num_results = 5
)

print(result)
项目分享|FreeKnowledge-AI:免费、高效、可信赖的外部知识增强搜索引擎,远超付费API的准确率表现图13
Exa API 返回的结果,不仅相关,排版也很优美

8. 实验对比

实验设置

由于目前对于搜索引擎的评估数据集较为缺乏,目前存在的数据集大多都是开放性问答的数据,这对准确评估搜索引擎在真实复杂场景下的检索与推理能力构成了显著阻碍。

因此我们构建了覆盖多个领域的综合性评测数据集,用于作为搜索引擎评测的统一基准。该数据集包括学术搜索数据集医疗数据集,所有查询均为非开放式且具有较高难度。

每个查询均在原始来源网站上配有可验证的答案,并经过领域专家的独立交叉校验。数据集进一步划分为基于事实的判断类问题基于事实的简答类问题两类,我们还将持续扩展至其他学科领域,并开放更新版本。

在评测过程中,我们将各搜索引擎的输出输入至InternLM3-8B模型,由其统一对比搜索生成答案与可验证的答案,以确保结果评估的一致性与可靠性。其中Example 1和Example 2为学术领域样本示例。

Example 1:

 {
 "query""EMNLP 2024的投稿主题是否包括计算社会科学与文化分析?",
 "domain""学术",
 "ground_truth"true,
 "answer_type""boolean"
 }  

Example 2:

 {
 "query""ACL 2025主题轨道的核心内容是什么?",
 "domain""学术",
 "ground_truth""聚焦自然语言处理模型的泛化能力,包括如何增强模型在组合性、结构性、跨任务、跨语言、跨领域及鲁棒性等多维度的泛化能力,探究影响泛化的因素,评估泛化能力的有效方法,以及大语言模型在泛化方面的关键局限性等",
 "answer_type""entity"
 }  

Example 3 和Example 4 为医疗领域样本示例。

Example 3:

 {
 "query""ACL 2025主题轨道的核心内容是什么?",
 "domain""学术",
 "ground_truth""聚焦自然语言处理模型的泛化能力,包括如何增强模型在组合性、结构性、跨任务、跨语言、跨领域及鲁棒性等多维度的泛化能力,探究影响泛化的因素,评估泛化能力的有效方法,以及大语言模型在泛化方面的关键局限性等",
 "answer_type""entity"
 }  

Example 4:

 {
  "query""根据共识,儿童脓毒性休克液体复苏的首剂液体选择是什么?推荐剂量是多少?",
  "domain""医疗",
  "ground_truth""首剂液体选择等渗晶体液,剂量为20ml/kg,于5-10分钟内静脉推注",
  "answer_type""entity"
 }

实验结果

为比较 FreeKnowledge AI 与 Bocha、Duckduckgo 的效果,我们构建了一个基于人工智能判别的评估框架。具体而言,首先利用三种搜索工具分别在两个数据集上检索全部答案;随后由 AI 判定检索结果中是否包含对应的答案。若包含,则记为“是”;否则记为“否”。

实验结果如表 1 与表 2 所示。结果表明,FreeKnowledgeAI 在两个数据集上均优于其他两种主流搜索工具。特别是在包含大量时效性信息的学术数据集上,FreeKnowledgeAI 相较于 Bocha 与 Duckduckgo 分别实现了 34% 与 39.5% 的性能提升。

方法
正确数量
准确率
Bocha
14/200
7%
Duckduckgo
3/200
1.5%
FreeKnowledgeAI
82/200
41%

表1:学术数据集评测结果

方法
正确数量
准确率
Bocha
86/200
43%
Duckduckgo
13/200
6.5%
FreeKnowledgeAI
138/200
69%

表2:医疗数据集评测结果

9. 结论

FreeKnowledge-AI 是一款完全免费的 AI 知识搜索引擎。与同类免费工具相比,它返回的结果更精准、更稳定;与博查、Exa 等付费服务相比,其内容相关性毫不逊色,却无需任何费用。唯一的不足是检索耗时略长。最后,再次感谢上海人工智能实验室书生·浦语大模型对本项目的支持。欢迎大家参加ailab的哦~


-- 完 --


机智流推荐阅读

1. 

2. 

3. 

4. 



关注机智流并加入 AI 技术交流群,不仅能和来自大厂名校的 AI 开发者、爱好者一起进行技术交流,同时还有
等。
在「机智流」公众号后台回复下方标红内容即可加入对应群聊:
  • cc | 大模型技术交流群
  • hf | HuggingFace 高赞论文分享群
  • 具身 | 具身智能交流群
  • 硬件 | AI 硬件交流群
  • 智能体 | Agent 技术交流群

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
AI LED
more
阿里一口气发7款大模型!这一款或是最被低估的AI“杀手锏”
胖东来式“爆改”后,一位制造业老板选择上AI | 甲子光年
模型七连发刷新 SOTA ,中国正在诞生 AI 时代的 Android
ICCV 25 Highlight | 扩散过程「早预警」实现6x加速,AIGC生图的高效后门防御
超33万条轨迹训练数据!上海 AI Lab联合提出统一理解生成与执行的VLA模型F1,已成功部署
科研进展 | 加州大学洛杉矶分校通过AI为非侵入式脑机接口提供新性能突破
AI企业组团创新 “这里,上下楼都是合作伙伴!”|科技一线
重磅 | 研华科技亮相2025工博会,以边缘智能全面加速工业AI落地
AIGC如何为短视频营销全链路提效80%【502线上同行】
越疆人形机器人新品亮相;星迈创新、清宝机器人等完成融资;OpenAI正组建机器人团队;王兴兴称机器人自主干活有望明年上半年实现
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号