示例效果
写在前面
“这份 200 页的技术文档,能帮我总结一下核心内容吗?”
“刚收到客户 100 页的需求文档,有办法快速理解吗?”
“团队的知识库太庞大了,想问个问题都要翻半天…”
是不是经常会遇到这样的困扰?今天,我们将利用下面两个技术为自己定制一个本地的 ChatFile 的 AI 问答系统:
\1. Google 最新开源的生成式 AI 模型: Gemma 2
\2. 检索增强生成技术: RAG (Retrieval - Augmented Generation)
Gen AI 技术发展
LLM 技术生态全景
Google 生成式 AI
Google 在 AI 领域采取了双轨制战略:
-
闭源商业模型
-
- Gemini 系列 (1.0/1.5 Flash/1.5 Pro/2.0 等) - 语言文本模型/多模态模型
- Imagen 系列 - 文生图模型
- Embedding Models - 文本 embedding/多模态 embedding
-
开放模型
-
- Gemma 系列 (Gemma 1|2, Code Gemma, Pali Gemma 等)
Gemma 是 Google 的一系列轻量级开放模型,继承了 Gemini 的核心技术。其中 Gemma 2 是截止目前最新的模型版本。
Gemma 2 提供了三个不同规模的版本:
- 2B 参数版本: 适合边缘计算场景
- 9B 参数版本: 平衡性能和资源需求
- 27B 参数版本: 提供最佳性能
快速了解 RAG
△ Comparison between the three paradigms of RAG
(来源: https://arxiv.org/abs/2312.10997v5)
RAG 通过几个主要步骤来帮助增强生成式 AI 输出:
- 检索和预处理: RAG 利用强大的搜索算法查询外部数据,例如网页、知识库和数据库。检索完毕后,相关信息会进行预处理,包括标记化、词干提取和停用词移除。
- 生成: 经过预处理的检索到的信息接着会无缝整合到预训练的 LLM 中。此整合增强了 LLM 的上下文,使其能够更全面地理解主题。这种增强的上下文使 LLM 能够生成更精确、更翔实且更具吸引力的回答。
RAG 的运行方式是: 首先, 使用 LLM 生成的查询从数据库中检索相关信息。然后, 将这种检索到的信息整合到 LLM 的查询输入中,使其能够生成更准确且与上下文更相关的文本
实战从 0-1 构建智能文档助手
在本教程中,我们将带您了解如何设置和使用一个命令行工具,通过它您可以使用最先进的语言模型 Gemma 2 与您的 PDF 文件进行对话交互。
公开源代码
https://github.com/Julian-Cao/chat-file-with-gemma.git
项目概述
我们将构建一个 Python 的命令行应用程序,实现:
\1. PDF 文本提取
\2. 文本向量化
\3. 智能问答生成
系统模块
-
文档解析处理器 (Parser Chunks)
-
- 使用 PyMuPDF 处理 PDF 等办公文件
- 实现文本分块和预处理
-
向量化处理 (Embedding Model)
-
- 使用 text-multilingual-embedding-002 模型
- 将文本转换为高维向量表示
-
向量数据库 (Vector Database)
-
- 实现基于本地文件的向量存储
- 支持高效的相似度检索
-
生成式 AI 模型 (Gen AI Model)
-
- 通过 Groq 直接使用 Gemma 2
- 处理自然语言理解和生成
-
对话记忆管理 (Chat Memory)
-
- 基于本地文件系统
- 维护上下文连贯性
前置条件
在开始之前,请确保您已准备:
\1. Python 3.7 或更高版本
\2. 系统已安装 Git
\3. 用于 Vertex AI 的 Google Cloud 账号
\4. 申请用于访问 Gemma 2 的 Groq API 密钥
\5. 安装 Python Typer 库命令行应用程序构建工具
步骤 1: 环境设置
首先,让我们克隆代码仓库并设置环境:
步骤 2: 配置
在项目根目录创建 config.json 文件,包含您的 Google Cloud 和 Groq API 凭证:
步骤 3: 了解项目结构
项目的主要组件包括:
\1. chat.py: 包含文本处理和交互的核心功能
\2. requirements.txt: 列出所有 Python 依赖
\3. demo.pdf: 示例 PDF 文件 — Attention Is All You Need
\4. config.json: 存储你的 API 凭证 (需要自行创建)
\5. README.md
-
Attention Is All You Need
https://arxiv.org/abs/1706.03762
步骤 4: 工作原理
让我们来分析 chat.py 文件的关键组件:
- 文本提取: 应用程序使用 PyMuPDF (以 fitz 导入) 从 PDF 文件中提取文本并将其分割成可管理的块。
- 文本嵌入: 使用 Vertex AI 的文本嵌入模型为文本块创建向量表示。这使得后续可以进行高效的相似度搜索。
- 相似度搜索: 当你提出问题时,应用程序通过比较问题的嵌入向量与文档块的嵌入向量找到最相关的内容。
- 响应生成: 通过 Groq API 使用 Gemma 2 基于相关上下文和你的问题生成响应。
步骤 5: 运行你的 ChatFile 应用程序
现在你可以运行应用程序:
python chat.py
应用程序会提示你提供 PDF 文件路径。处理完文档后,你就可以开始询问关于其内容的问题。
开始使用
- 根据提示,输入 PDF 文件的路径。
- 应用程序将处理文档,这可能需要一些时间,具体取决于文件大小。
- 处理完成后,你就可以开始询问文档相关的问题。
- 输入你的问题并按回车。应用程序将根据文档内容提供答案。
- 要切换到不同的文档,在提示输入问题时输入 ‘c’。
- 要退出应用程序,在提示输入问题时输入 ‘q’。
示例交互
> python chat.py
Please enter the path to your file (or 'q' to quit): /path/to/your/document.pdf
Initializing with file: /path/to/your/document.pdf
Extracting text chunks…
Processing chunks…
Embedded all chunks
Saved embedded chunks to embedded_chunks_1234567890abcdef.json
Initialization complete. You can now start asking questions.Enter your question below
(or 'q' to quit, 'c' to change file)
Question: What is the main topic of this document?
[Answer will appear here]
- -
Enter your question below
(or 'q' to quit, 'c' to change file)
Question: q
Thank you for using the Interactive File Q&A System. Goodbye!
最后
恭喜!你已经设置并使用了由 Gemma 2 驱动的本地 ChatFile 应用。这个工具让你能够以对话方式与 PDF 文档交互。
此工具实现包含以下特性:
- 缓存嵌入,使用相同文档时能更快地运行
- 具有丰富文本格式的交互式命令行界面
- 无需重启应用程序即可在不同文档之间切换
如何学习大模型
下面这些都是我当初辛苦整理和花钱购买的资料,现在我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来
,需要的小伙伴可以扫取。

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。
二、AI大模型视频教程
三、AI大模型各大学习书籍!
四、AI大模型各大场景实战案例
五、AI大模型面试题库
五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。