寫在前面
"這份 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: 環境設置
首先,讓我們克隆代碼倉庫并設置環境:
# 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: 配置
在項目根目錄創建 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: 了解項目結構
項目的主要組件包括:
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 ThankyouforusingtheInteractiveFileQ&ASystem.Goodbye!?
最后
恭喜!你已經設置并使用了由 Gemma 2 驅動的本地 ChatFile 應用。這個工具讓你能夠以對話方式與 PDF 文檔交互。
此工具實現包含以下特性:
緩存嵌入,使用相同文檔時能更快地運行
具有豐富文本格式的交互式命令行界面
無需重啟應用程序即可在不同文檔之間切換
-
Google
+關注
關注
5文章
1778瀏覽量
58434 -
AI
+關注
關注
87文章
33236瀏覽量
273491 -
LLM
+關注
關注
1文章
316瀏覽量
616
原文標題:【GDE 分享】Gemma 2 + RAG: 打造個人 AI 文檔問答系統
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
中科曙光助力中航結算公司構建私域文檔智能問答系統
《AI Agent 應用與項目實戰》閱讀心得3——RAG架構與部署本地知識庫
行業集結:共同定制 RK3566 集成 AI 眼鏡的前沿 AR 方案
基于華為云 Flexus 云服務器 X 搭建部署——AI 知識庫問答系統(使用 1panel 面板安裝)

AI健康助手超值之選:問答式AI智能體套件29.9元拿下!

NVIDIA助力企業創建定制AI應用
浪潮信息發布KOS AI定制版,大幅提升大模型訓練效率
AI智能化問答:自然語言處理技術的重要應用

給Java同仁單點的AI"開胃菜"--搭建一個自己的本地問答系統

NVIDIA RTX AI套件簡化AI驅動的應用開發
涂鴉HEDV本地化部署方案,助你低成本實現定制化開發!

評論