本文介绍了如何构建一个本地AI搜索引擎,实现输入问题后从本地知识库检索并用大模型生成答案。项目采用Ollama大模型,无需API调用,保障数据不出本地。文章详细阐述了整体架构、环境准备、项目结构及核心代码实现,包括文本向量化、向量数据库、检索器和AI生成答案等关键步骤。最终效果展示用户输入问题后,系统能够结合本地知识库生成理解性答案。项目强调检索优先、本地运行和可扩展性,并提出了后续升级方向,如支持文件上传、使用更强embedding模型、添加缓存和开发Web界面等。
这篇文章,尝试着想用AI做一个本地搜索:
做一个本地 AI 搜索引擎(类似 Perplexity)
它能做三件事:
- 输入问题
- 从本地知识库检索
- 用大模型生成“带理解”的答案
而且:
- 不用 API
- 数据不出本地
- 可扩展
一、最终效果
用户输入:
什么是RAG?系统输出:
RAG(Retrieval-Augmented ``````plaintext Generation)是一种结合检索 ``````plaintext 和生成的技术...二、整体架构(先理解再写代码)
核心就 4 层:
用户问题 ↓Embedding(向量化) ↓向量检索(找相关内容) ↓Ollama(生成答案)一句话来说就是:
先查资料,再让 AI 组织语言
三、环境准备(很关键)
- 电脑配置建议
最低配置:
- CPU:4核
- 内存:8GB
- 硬盘:10GB+
推荐配置(体验更好):
- CPU:8核+
- 内存:16GB+
- GPU(可选):NVIDIA
- 安装 Ollama
官网下载安装(Mac / Linux / Windows)
安装完成后:
ollama run llama3说明:- 会自动下载模型
- 成功后说明环境OK
- 安装 Python 依赖
pip install ollama faiss-cpu sentence-transformers四、项目结构(工程化写法)
ai_search/ ├── main.py ├── rag/ │ ├── embedding.py │ ├── vector_store.py │ ├── retriever.py │ └── generator.py ├── data/ │ └── docs.txt └── config.py五、核心代码实现(一步一步来)
- 简单准备知识库
==========
# data/docs.txt RAG 是一种结合检索和生成的技术。 Ollama 是一个本地运行大模型的工具。 Python 是一种流行的编程语言。- embedding.py(文本向量化)
======================
# rag/embedding.py from sentence_transformers import SentenceTransformer model = SentenceTransformer("all-MiniLM-L6-v2") def embed(texts): return model.encode(texts)- vector_store.py(向量数据库)
==========================
# rag/vector_store.py import faiss import numpy as np class VectorStore: def __init__(self, dim): self.index = faiss.IndexFlatL2(dim) self.texts = [] def add(self, embeddings, texts): self.index.add(np.array(embeddings)) self.texts.extend(texts) def search(self, query_embedding, k=3): D, I = self.index.search(query_embedding, k) return [self.texts[i] for i in I[0]]- retriever.py(检索器)
====================
# rag/retriever.py from .embedding import embed def retrieve(query, store): q_emb = embed([query]) return store.search(q_emb)- generator.py(AI生成答案)
=======================
# rag/generator.py import ollama def generate_answer(query, context): prompt = f""" 请基于以下内容回答问题: {context} 问题:{query} """ res = ollama.chat( model="llama3", messages=[{"role": "user", "content": prompt}], ) return res["message"]["content"]- main.py(主流程)
===============
# main.py from rag.embedding import embed from rag.vector_store import VectorStore from rag.retriever import retrieve from rag.generator import generate_answer # 1. 读取数据 with open("data/docs.txt", "r", encoding="utf-8") as f: docs = f.readlines() # 2. 向量化 embeddings = embed(docs) # 3. 构建向量库 store = VectorStore(len(embeddings[0])) store.add(embeddings, docs) # 4. 交互 while True: query = input(">>> ") results = retrieve(query, store) context = "\n".join(results) answer = generate_answer(query, context) print("\n答案:", answer)六、运行效果
python main.py输入: ``````plaintext >>> 什么是Ollama?输出(示例):
Ollama 是一个可以在本地运行大 ``````plaintext 语言模型的工具...七、这个项目所做的内容
核心不是代码,而是这三点:
- 检索优先
先找资料,再回答- 本地运行
隐私安全 + 零成本- 可扩展
你可以加:
- PDF解析
- 数据库
- Web界面
八、一些后续可以升级,继续做的点
- 支持文件上传(PDF / Word)
- 使用更强 embedding
bge-large- 加缓存(提升速度)
- Web UI(FastAPI + 前端)
说真的,这两年看着身边一个个搞Java、C++、前端、数据、架构的开始卷大模型,挺唏嘘的。大家最开始都是写接口、搞Spring Boot、连数据库、配Redis,稳稳当当过日子。
结果GPT、DeepSeek火了之后,整条线上的人都开始有点慌了,大家都在想:“我是不是要学大模型,不然这饭碗还能保多久?”
我先给出最直接的答案:一定要把现有的技术和大模型结合起来,而不是抛弃你们现有技术!掌握AI能力的Java工程师比纯Java岗要吃香的多。
即使现在裁员、降薪、团队解散的比比皆是……但后续的趋势一定是AI应用落地!大模型方向才是实现职业升级、提升薪资待遇的绝佳机遇!
这绝非空谈。数据说话
2025年的最后一个月,脉脉高聘发布了《2025年度人才迁徙报告》,披露了2025年前10个月的招聘市场现状。
AI领域的人才需求呈现出极为迫切的“井喷”态势
2025年前10个月,新发AI岗位量同比增长543%,9月单月同比增幅超11倍。同时,在薪资方面,AI领域也显著领先。其中,月薪排名前20的高薪岗位平均月薪均超过6万元,而这些席位大部分被AI研发岗占据。
与此相对应,市场为AI人才支付了显著的溢价:算法工程师中,专攻AIGC方向的岗位平均薪资较普通算法工程师高出近18%;产品经理岗位中,AI方向的产品经理薪资也领先约20%。
当你意识到“技术+AI”是个人突围的最佳路径时,整个就业市场的数据也印证了同一个事实:AI大模型正成为高薪机会的最大源头。
最后
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。
我整理出这套 AI 大模型突围资料包【允许白嫖】:
- ✅从入门到精通的全套视频教程
- ✅AI大模型学习路线图(0基础到项目实战仅需90天)
- ✅大模型书籍与技术文档PDF
- ✅各大厂大模型面试题目详解
- ✅640套AI大模型报告合集
- ✅大模型入门实战训练
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
①从入门到精通的全套视频教程
包含提示词工程、RAG、Agent等技术点
② AI大模型学习路线图(0基础到项目实战仅需90天)
全过程AI大模型学习路线
③学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的
④各大厂大模型面试题目详解
⑤640套AI大模型报告合集
⑥大模型入门实战训练
👉获取方式:
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓