本文介绍了如何构建一个本地AI搜索引擎实现输入问题后从本地知识库检索并用大模型生成答案。项目采用Ollama大模型无需API调用保障数据不出本地。文章详细阐述了整体架构、环境准备、项目结构及核心代码实现包括文本向量化、向量数据库、检索器和AI生成答案等关键步骤。最终效果展示用户输入问题后系统能够结合本地知识库生成理解性答案。项目强调检索优先、本地运行和可扩展性并提出了后续升级方向如支持文件上传、使用更强embedding模型、添加缓存和开发Web界面等。这篇文章尝试着想用AI做一个本地搜索做一个本地 AI 搜索引擎类似 Perplexity它能做三件事输入问题从本地知识库检索用大模型生成“带理解”的答案而且不用 API数据不出本地可扩展一、最终效果用户输入什么是RAG系统输出RAGRetrieval-Augmented plaintext Generation是一种结合检索 plaintext 和生成的技术...二、整体架构先理解再写代码核心就 4 层用户问题 ↓Embedding向量化 ↓向量检索找相关内容 ↓Ollama生成答案一句话来说就是先查资料再让 AI 组织语言三、环境准备很关键电脑配置建议最低配置CPU4核内存8GB硬盘10GB推荐配置体验更好CPU8核内存16GBGPU可选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, k3): 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.pyAI生成答案# rag/generator.py import ollama def generate_answer(query, context): prompt f 请基于以下内容回答问题 {context} 问题{query} res ollama.chat( modelllama3, 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, encodingutf-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使用更强 embeddingbge-large加缓存提升速度Web UIFastAPI 前端说真的这两年看着身边一个个搞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%免费】