1 概述
大语言模型虽然拥有海量的训练数据,但对于训练截止后产生的新内容或特定领域的专业知识,往往无法给出准确回应。一个常用的解决方案是检索增强生成(RAG),通过将相关上下文提供给大模型,利用其强大的理解和生成能力来缓解知识滞后问题。
本文介绍如何借助搜索引擎获取较新的网络内容,并结合本地部署的大语言模型构建 AI 搜索问答助手。该方法无需使用付费 API,整个流程可在单台笔记本电脑上运行,完全免费。
2 基本原理
本方案的核心依然是 RAG 架构。AI 搜索并非实时爬取全互联网数据,而是借助搜索引擎接口获取相关文档。从搜索引擎获取结果后,后续处理流程与标准 RAG 一致:解析文本、切片、向量化存储、检索匹配,最后结合 Prompt 生成回答。
处理流程如下:
- 用户提问:接收自然语言查询。
- 搜索引擎:调用 Bing 等引擎获取最新网页链接。
- 内容获取:下载网页 HTML 并清洗为纯文本。
- 向量化:将文本分块并转换为向量嵌入。
- 检索:在向量数据库中查找最相关的片段。
- 生成:将检索到的上下文与用户问题组合,输入 LLM 生成最终答案。
3 环境准备
3.1 操作系统
本文涉及的组件支持 Windows、Linux 和 macOS。以下以 macOS 14.4 Sonoma (ARM 芯片) 为例进行说明。
3.2 Python 环境
推荐使用 Conda 管理虚拟环境。确保 Python 版本为 3.10 或以上。 创建并激活环境:
conda create -n rag_env python=3.11
conda activate rag_env
安装依赖包:
pip install langchain langchain-community chromadb beautifulsoup4 requests chainlit
3.3 Ollama 安装及模型配置
Ollama 用于本地运行大语言模型及 Embedding 模型。
3.3.1 模型下载
在命令行执行以下命令下载模型:
ollama pull qwen:7b
ollama pull znbang/bge:large-zh-v1.5-q8_0
qwen:7b 为通义千问大语言模型,znbang/bge 为中文向量模型。若机器配置较高,可选择参数量更大的模型;若配置较低,可尝试 qwen:1.8b 等轻量级模型。
验证模型是否就绪:
ollama list
ollama run qwen:7b
输入 /exit 退出交互模式。
3.3.2 API 调用测试
在 Python 中测试 LLM 连接:
from langchain_community.llms import Ollama
model = Ollama(
base_url="http://localhost:11434",
model="qwen:7b"
)
print(model("你是谁"))
测试 Embedding 模型:
langchain_community.embeddings OllamaEmbeddings
embeddings = OllamaEmbeddings(
base_url=,
model=
)
(embeddings.embed_query())


