寫在前面
"這份 200 頁(yè)的技術(shù)文檔,能幫我總結(jié)一下核心內(nèi)容嗎?" "剛收到客戶 100 頁(yè)的需求文檔,有辦法快速理解嗎?" "團(tuán)隊(duì)的知識(shí)庫(kù)太龐大了,想問個(gè)問題都要翻半天..."
是不是經(jīng)常會(huì)遇到這樣的困擾?今天,我們將利用下面兩個(gè)技術(shù)為自己定制一個(gè)本地的 ChatFile 的 AI 問答系統(tǒng):
1. Google 最新開源的生成式 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
開放模型
Gemma 系列 (Gemma 1|2, Code Gemma, Pali Gemma 等)
Gemma 是 Google 的一系列輕量級(jí)開放模型,繼承了 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
(來源: https://arxiv.org/abs/2312.10997v5)
RAG 通過幾個(gè)主要步驟來幫助增強(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)過預(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è)命令行工具,通過它您可以使用最先進(jìn)的語(yǔ)言模型 Gemma 2 與您的 PDF 文件進(jìn)行對(duì)話交互。
公開源代碼
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. 智能問答生成
系統(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)
通過 Groq 直接使用 Gemma 2
處理自然語(yǔ)言理解和生成
對(duì)話記憶管理 (Chat Memory)
基于本地文件系統(tǒng)
維護(hù)上下文連貫性
前置條件
在開始之前,請(qǐng)確保您已準(zhǔn)備:
1. Python 3.7 或更高版本
2. 系統(tǒng)已安裝 Git
3. 用于 Vertex AI 的 Google Cloud 賬號(hào)
4. 申請(qǐng)用于訪問 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: 工作原理
讓我們來分析 chat.py 文件的關(guān)鍵組件:
文本提取:應(yīng)用程序使用 PyMuPDF (以 fitz 導(dǎo)入) 從 PDF 文件中提取文本并將其分割成可管理的塊。
文本嵌入:使用 Vertex AI 的文本嵌入模型為文本塊創(chuàng)建向量表示。這使得后續(xù)可以進(jìn)行高效的相似度搜索。
相似度搜索:當(dāng)你提出問題時(shí),應(yīng)用程序通過比較問題的嵌入向量與文檔塊的嵌入向量找到最相關(guān)的內(nèi)容。
響應(yīng)生成:通過 Groq API 使用 Gemma 2 基于相關(guān)上下文和你的問題生成響應(yīng)。
步驟 5:運(yùn)行你的 ChatFile 應(yīng)用程序
現(xiàn)在你可以運(yùn)行應(yīng)用程序:
python chat.py
應(yīng)用程序會(huì)提示你提供 PDF 文件路徑。處理完文檔后,你就可以開始詢問關(guān)于其內(nèi)容的問題。
開始使用
根據(jù)提示,輸入 PDF 文件的路徑。
應(yīng)用程序?qū)⑻幚砦臋n,這可能需要一些時(shí)間,具體取決于文件大小。
處理完成后,你就可以開始詢問文檔相關(guān)的問題。
輸入你的問題并按回車。應(yīng)用程序?qū)⒏鶕?jù)文檔內(nèi)容提供答案。
要切換到不同的文檔,在提示輸入問題時(shí)輸入 **'c'**。
要退出應(yīng)用程序,在提示輸入問題時(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文章
1772瀏覽量
57835 -
AI
+關(guān)注
關(guān)注
87文章
31711瀏覽量
270499 -
LLM
+關(guān)注
關(guān)注
0文章
301瀏覽量
411
原文標(biāo)題:【GDE 分享】Gemma 2 + RAG: 打造個(gè)人 AI 文檔問答系統(tǒng)
文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于華為云 Flexus 云服務(wù)器 X 搭建部署——AI 知識(shí)庫(kù)問答系統(tǒng)(使用 1panel 面板安裝)
![基于華為云 Flexus 云服務(wù)器 X 搭建部署——<b class='flag-5'>AI</b> 知識(shí)庫(kù)<b class='flag-5'>問答</b><b class='flag-5'>系統(tǒng)</b>(使用 1panel 面板安裝)](https://file1.elecfans.com//web3/M00/06/4C/wKgZPGeJtjeAL3SoAATxfhrfVJI700.png)
AI健康助手超值之選:問答式AI智能體套件29.9元拿下!
![<b class='flag-5'>AI</b>健康助手超值之選:<b class='flag-5'>問答</b>式<b class='flag-5'>AI</b>智能體套件29.9元拿下!](https://file.elecfans.com/web2/M00/83/6C/pYYBAGOW6BSANMZvAAAbDU3Wpy0859.png)
蘋果利用AWS定制AI芯片提升服務(wù)
NVIDIA助力企業(yè)創(chuàng)建定制AI應(yīng)用
浪潮信息發(fā)布KOS AI定制版,大幅提升大模型訓(xùn)練效率
AI智能化問答:自然語(yǔ)言處理技術(shù)的重要應(yīng)用
![<b class='flag-5'>AI</b>智能化<b class='flag-5'>問答</b>:自然語(yǔ)言處理技術(shù)的重要應(yīng)用](https://file1.elecfans.com/web2/M00/09/53/wKgZomcJ5buAEyZEAABqUPXJFLI731.png)
給Java同仁單點(diǎn)的AI"開胃菜"--搭建一個(gè)自己的本地問答系統(tǒng)
![給Java同仁單點(diǎn)的<b class='flag-5'>AI</b>"開胃菜"--搭建一個(gè)自己的<b class='flag-5'>本地</b><b class='flag-5'>問答</b><b class='flag-5'>系統(tǒng)</b>](https://file1.elecfans.com//web2/M00/09/28/wKgaomb2U2iAY062AAn54rjsgcw247.png)
NVIDIA RTX AI套件簡(jiǎn)化AI驅(qū)動(dòng)的應(yīng)用開發(fā)
涂鴉HEDV本地化部署方案,助你低成本實(shí)現(xiàn)定制化開發(fā)!
![涂鴉HEDV<b class='flag-5'>本地</b>化部署方案,助你低成本實(shí)現(xiàn)<b class='flag-5'>定制</b>化開發(fā)!](https://file.elecfans.com/web2/M00/40/04/pYYBAGJrTDSAYdI1AAASTiyZjeQ622.jpg)
評(píng)論