寫(xiě)在前面
"這份 200 頁(yè)的技術(shù)文檔,能幫我總結(jié)一下核心內(nèi)容嗎?" "剛收到客戶 100 頁(yè)的需求文檔,有辦法快速理解嗎?" "團(tuán)隊(duì)的知識(shí)庫(kù)太龐大了,想問(wèn)個(gè)問(wèn)題都要翻半天..."
是不是經(jīng)常會(huì)遇到這樣的困擾?今天,我們將利用下面兩個(gè)技術(shù)為自己定制一個(gè)本地的 ChatFile 的 AI 問(wèn)答系統(tǒng):
1. Google 最新開(kāi)源的生成式 AI 模型:Gemma 2
2. 檢索增強(qiáng)生成技術(shù): RAG (Retrieval - Augmented Generation)
Gen AI 技術(shù)發(fā)展
LLM 技術(shù)生態(tài)全景

Google 生成式 AI

Google 在 AI 領(lǐng)域采取了雙軌制戰(zhàn)略:
閉源商業(yè)模型
Gemini 系列 (1.0/1.5 Flash/1.5 Pro/2.0 等) - 語(yǔ)言文本模型/多模態(tài)模型
Imagen 系列 - 文生圖模型
Embedding Models - 文本 embedding/多模態(tài) embedding
開(kāi)放模型
Gemma 系列 (Gemma 1|2, Code Gemma, Pali Gemma 等)
Gemma 是 Google 的一系列輕量級(jí)開(kāi)放模型,繼承了 Gemini 的核心技術(shù)。其中 Gemma 2 是截止目前最新的模型版本。
Gemma 2 提供了三個(gè)不同規(guī)模的版本:
2B 參數(shù)版本:適合邊緣計(jì)算場(chǎng)景
9B 參數(shù)版本: 平衡性能和資源需求
27B 參數(shù)版本:提供最佳性能
快速了解 RAG

△ Comparison between the three paradigms of RAG
(來(lái)源: https://arxiv.org/abs/2312.10997v5)

RAG 通過(guò)幾個(gè)主要步驟來(lái)幫助增強(qiáng)生成式 AI 輸出:
檢索和預(yù)處理: RAG 利用強(qiáng)大的搜索算法查詢外部數(shù)據(jù),例如網(wǎng)頁(yè)、知識(shí)庫(kù)和數(shù)據(jù)庫(kù)。檢索完畢后,相關(guān)信息會(huì)進(jìn)行預(yù)處理,包括標(biāo)記化、詞干提取和停用詞移除。
生成: 經(jīng)過(guò)預(yù)處理的檢索到的信息接著會(huì)無(wú)縫整合到預(yù)訓(xùn)練的 LLM 中。此整合增強(qiáng)了 LLM 的上下文,使其能夠更全面地理解主題。這種增強(qiáng)的上下文使 LLM 能夠生成更精確、更翔實(shí)且更具吸引力的回答。
RAG 的運(yùn)行方式是:首先, 使用 LLM 生成的查詢從數(shù)據(jù)庫(kù)中檢索相關(guān)信息。然后, 將這種檢索到的信息整合到 LLM 的查詢輸入中,使其能夠生成更準(zhǔn)確且與上下文更相關(guān)的文本
實(shí)戰(zhàn)從 0-1 構(gòu)建智能文檔助手
在本教程中,我們將帶您了解如何設(shè)置和使用一個(gè)命令行工具,通過(guò)它您可以使用最先進(jìn)的語(yǔ)言模型 Gemma 2 與您的 PDF 文件進(jìn)行對(duì)話交互。
公開(kāi)源代碼
https://github.com/Julian-Cao/chat-file-with-gemma.git
項(xiàng)目概述
我們將構(gòu)建一個(gè) Python 的命令行應(yīng)用程序,實(shí)現(xiàn):
1. PDF 文本提取
2. 文本向量化
3. 智能問(wèn)答生成
系統(tǒng)模塊

文檔解析處理器 (Parser Chunks)
使用 PyMuPDF 處理 PDF 等辦公文件
實(shí)現(xiàn)文本分塊和預(yù)處理
向量化處理 (Embedding Model)
使用 text-multilingual-embedding-002 模型
將文本轉(zhuǎn)換為高維向量表示
向量數(shù)據(jù)庫(kù) (Vector Database)
實(shí)現(xiàn)基于本地文件的向量存儲(chǔ)
支持高效的相似度檢索
生成式 AI 模型 (Gen AI Model)
通過(guò) Groq 直接使用 Gemma 2
處理自然語(yǔ)言理解和生成
對(duì)話記憶管理 (Chat Memory)
基于本地文件系統(tǒng)
維護(hù)上下文連貫性
前置條件
在開(kāi)始之前,請(qǐng)確保您已準(zhǔn)備:
1. Python 3.7 或更高版本
2. 系統(tǒng)已安裝 Git
3. 用于 Vertex AI 的 Google Cloud 賬號(hào)
4. 申請(qǐng)用于訪問(wèn) Gemma 2 的 Groq API 密鑰
5. 安裝 Python Typer 庫(kù)命令行應(yīng)用程序構(gòu)建工具
步驟 1: 環(huán)境設(shè)置
首先,讓我們克隆代碼倉(cāng)庫(kù)并設(shè)置環(huán)境:
# Clone the repository git clone https://github.com/Julian-Cao/chat-file-with-gemma.git cd chat-file-with-gemma # Create and activate a virtual environment python -m venv venv source venv/bin/activate # On Windows, use `venvScriptsactivate` # Install the required dependencies pipinstall-rrequirements.txt
步驟 2: 配置
在項(xiàng)目根目錄創(chuàng)建 config.json 文件,包含您的 Google Cloud 和 Groq API 憑證:
{
"project_id": "your-google-cloud-project-id",
"region": "your-google-cloud-region",
"groq_key": "your-groq-api-key"
}
步驟 3: 了解項(xiàng)目結(jié)構(gòu)
項(xiàng)目的主要組件包括:
1. chat.py: 包含文本處理和交互的核心功能
2. requirements.txt: 列出所有 Python 依賴
3. demo.pdf: 示例 PDF 文件 — Attention Is All You Need
4. config.json: 存儲(chǔ)你的 API 憑證 (需要自行創(chuàng)建)
5. README.md
Attention Is All You Need
https://arxiv.org/abs/1706.03762
步驟 4: 工作原理
讓我們來(lái)分析 chat.py 文件的關(guān)鍵組件:
文本提取:應(yīng)用程序使用 PyMuPDF (以 fitz 導(dǎo)入) 從 PDF 文件中提取文本并將其分割成可管理的塊。
文本嵌入:使用 Vertex AI 的文本嵌入模型為文本塊創(chuàng)建向量表示。這使得后續(xù)可以進(jìn)行高效的相似度搜索。
相似度搜索:當(dāng)你提出問(wèn)題時(shí),應(yīng)用程序通過(guò)比較問(wèn)題的嵌入向量與文檔塊的嵌入向量找到最相關(guān)的內(nèi)容。
響應(yīng)生成:通過(guò) Groq API 使用 Gemma 2 基于相關(guān)上下文和你的問(wèn)題生成響應(yīng)。
步驟 5:運(yùn)行你的 ChatFile 應(yīng)用程序
現(xiàn)在你可以運(yùn)行應(yīng)用程序:
python chat.py
應(yīng)用程序會(huì)提示你提供 PDF 文件路徑。處理完文檔后,你就可以開(kāi)始詢問(wèn)關(guān)于其內(nèi)容的問(wèn)題。
開(kāi)始使用
根據(jù)提示,輸入 PDF 文件的路徑。
應(yīng)用程序?qū)⑻幚砦臋n,這可能需要一些時(shí)間,具體取決于文件大小。
處理完成后,你就可以開(kāi)始詢問(wèn)文檔相關(guān)的問(wèn)題。
輸入你的問(wèn)題并按回車。應(yīng)用程序?qū)⒏鶕?jù)文檔內(nèi)容提供答案。
要切換到不同的文檔,在提示輸入問(wèn)題時(shí)輸入 **'c'**。
要退出應(yīng)用程序,在提示輸入問(wèn)題時(shí)輸入 **'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 ThankyouforusingtheInteractiveFileQ&ASystem.Goodbye!?
最后
恭喜!你已經(jīng)設(shè)置并使用了由 Gemma 2 驅(qū)動(dòng)的本地 ChatFile 應(yīng)用。這個(gè)工具讓你能夠以對(duì)話方式與 PDF 文檔交互。
此工具實(shí)現(xiàn)包含以下特性:
緩存嵌入,使用相同文檔時(shí)能更快地運(yùn)行
具有豐富文本格式的交互式命令行界面
無(wú)需重啟應(yīng)用程序即可在不同文檔之間切換
-
Google
+關(guān)注
關(guān)注
5文章
1803瀏覽量
60396 -
AI
+關(guān)注
關(guān)注
91文章
39103瀏覽量
299690 -
LLM
+關(guān)注
關(guān)注
1文章
344瀏覽量
1296
原文標(biāo)題:【GDE 分享】Gemma 2 + RAG: 打造個(gè)人 AI 文檔問(wèn)答系統(tǒng)
文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
高通X85的本地48 TOPS邊緣AI加上云端大模型,到底能干啥?
技嘉于 CES 2026 展示 AI TOP 產(chǎn)品線 推動(dòng)以人為本的本地 AI 生態(tài)系統(tǒng)發(fā)展
給Java同仁單點(diǎn)的AI"開(kāi)胃菜"--搭建一個(gè)自己的本地問(wèn)答系統(tǒng)
【Sipeed MaixCAM Pro開(kāi)發(fā)板試用體驗(yàn)】基于MaixCAM-Pro的AI生成圖像鑒別系統(tǒng)
HarmonyOSAI編程DevEco AI輔助編程工具
HarmonyOS AI輔助編程工具(CodeGenie)智能問(wèn)答
HarmonyOS AI輔助編程工具(CodeGenie)概述
誠(chéng)邁信創(chuàng)電腦實(shí)現(xiàn)本地部署DeepSeek,開(kāi)啟智慧辦公新體驗(yàn)
DeepSeek R1模型本地部署與產(chǎn)品接入實(shí)操
定制本地的ChatFile的AI問(wèn)答系統(tǒng)
評(píng)論