0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

定制本地的ChatFile的AI问答系统

谷歌开发者 来源:谷歌开发者 2025-01-03 09:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

写在前面

"这份 200 页的技术文档,能帮我总结一下核心内容吗?" "刚收到客户 100 页的需求文档,有办法快速理解吗?" "团队的知识库太庞大了,想问个问题都要翻半天..."

是不是经常会遇到这样的困扰?今天,我们将利用下面两个技术为自己定制一个本地的 ChatFile 的 AI 问答系统:

1. Google 最新开源的生成式 AI 模型:Gemma 2

2. 检索增强生成技术: RAG (Retrieval - Augmented Generation)

Gen AI 技术发展

LLM 技术生态全景

90f62b3a-c692-11ef-9310-92fbcf53809c.png

Google 生成式 AI

9110ba5e-c692-11ef-9310-92fbcf53809c.png

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

9129ba9a-c692-11ef-9310-92fbcf53809c.jpg

△ Comparison between the three paradigms of RAG

(来源: https://arxiv.org/abs/2312.10997v5)

913765be-c692-11ef-9310-92fbcf53809c.png

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. 智能问答生成

系统模块

91456a92-c692-11ef-9310-92fbcf53809c.png

文档解析处理器 (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

    文章

    1814

    浏览量

    60633
  • AI
    AI
    +关注

    关注

    91

    文章

    41107

    浏览量

    302594
  • LLM
    LLM
    +关注

    关注

    1

    文章

    350

    浏览量

    1394

原文标题:【GDE 分享】Gemma 2 + RAG: 打造个人 AI 文档问答系统

文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    技嘉与趋境科技联合部署AMaaS平台 推动本地大模型应用加速落地

    在生成式AI加速走向实际应用的当下,大模型部署正从“可体验”迈向“可落地、可管理、可应用”。作为技嘉面向本地AI场景打造的重要产品,AI TOP ATOM具备强大的桌面级
    的头像 发表于 03-12 15:11 200次阅读
    技嘉与趋境科技联合部署AMaaS平台 推动<b class='flag-5'>本地</b>大模型应用加速落地

    边缘AI算力临界点:深度解析176TOPS香橙派AI Station的产业价值

    。它不仅能处理单纯的视觉任务,更具备了运行实时多模态应用的能力。例如,在智慧工厂场景中,它可以同时运行:1路工业缺陷检测(高分辨率)、4路安防监控(行为识别)以及1套基于RAG的本地知识库问答系统。 二
    发表于 03-10 14:19

    京东方发布显示行业首款全员开放AI问答系统

    2026年2月24日,BOE(京东方)正式发布基于京东方蓝鲸显示大模型的BOE AI 问答系统,显示行业内率先面向企业全员开放应用,以多项技术领先优势,树立企业级AI创新应用新标杆,标
    的头像 发表于 03-02 09:42 1990次阅读

    新品 | AI Pyramid AI Pyramid-Pro,面向本地推理与智能交互的高性能AI PC

    AIPyramid是一款金字塔形状的高性能AIPC,专为本地AI推理与边缘智能应用而生。内置AxeraAX8850SoC,集成八核Cortex-A55处理器与24TOPS@INT8NPU,轻松应对
    的头像 发表于 02-06 17:24 3899次阅读
    新品 | <b class='flag-5'>AI</b> Pyramid <b class='flag-5'>AI</b> Pyramid-Pro,面向<b class='flag-5'>本地</b>推理与智能交互的高性能<b class='flag-5'>AI</b> PC

    本地搭建 Clawdbot + ZeroNews 访问

    ClawdBot 是一个本地部署的开源AI助手,支持跨平台,可接入多种通讯工具并执行本地操作,强调隐私与可控性。
    的头像 发表于 02-03 17:51 620次阅读
    <b class='flag-5'>本地</b>搭建 Clawdbot + ZeroNews 访问

    使用NORDIC AI的好处

    ,时延更低,系统在网络不稳定甚至离线时也能继续工作。[Edge AI 概述] 提升隐私与可靠性 原始传感器数据(如运动、生理信号等)可以留在本地,只上传推理结果,有利于隐私与数据安全。
    发表于 01-31 23:16

    高通X85的本地48 TOPS边缘AI加上云端大模型,到底能干啥?

    高通发布X85平台时,重点提了两个东西:   “48 TOPS 本地边缘 AI 算力” 和 “云端大模型协同”。   大家可能觉得奇怪:  路由器也要用AI?有这个必要吗?   其实,这不是为了“炫
    的头像 发表于 01-13 14:53 546次阅读

    技嘉于 CES 2026 展示 AI TOP 产品线 推动以人为本的本地 AI 生态系统发展

     CES 2026 展示 AI TOP 产品线  推动以人为本的本地 AI 生态系统发展 AI TOP
    的头像 发表于 01-12 19:49 1338次阅读
    技嘉于 CES 2026 展示 <b class='flag-5'>AI</b> TOP 产品线 推动以人为本的<b class='flag-5'>本地</b> <b class='flag-5'>AI</b> 生态<b class='flag-5'>系统</b>发展

    给Java同仁单点的AI&quot;开胃菜&quot;--搭建一个自己的本地问答系统

    搭建一个简易的AI问答系统,主要用java来实现,也有一些简单的python知识;网上很多例子都是以 ChatGPT来讲解的,但因为它对国内访问有限制,OpeAi连接太麻烦,又要虚拟账号注册账号啥的,第一步就劝退了,所以选择了
    的头像 发表于 11-03 17:16 746次阅读
    给Java同仁单点的<b class='flag-5'>AI</b>&quot;开胃菜&quot;--搭建一个自己的<b class='flag-5'>本地</b><b class='flag-5'>问答</b><b class='flag-5'>系统</b>

    HarmonyOSAI编程智能问答

    CodeGenie基于生成式搜索能力,通过查询生成、内容优选服务高效理解用户意图,问答交互式地获取编码相关知识。 对话示例 在对话区域输入需要查询的问题,开始问答。示例如下: ArkTS如何实现
    发表于 09-03 16:17

    【Sipeed MaixCAM Pro开发板试用体验】基于MaixCAM-Pro的AI生成图像鉴别系统

    技术落地到了一个小小的边缘设备MaixCAM-Pro上。它不仅展示了深度学习在图像取证领域的强大能力,更体现了边缘AI在现实世界中的应用价值——无需依赖云端,即可在本地快速、安全、低成本地完成复杂智能
    发表于 08-21 13:59

    HarmonyOSAI编程DevEco AI辅助编程工具

    DevEco AI辅助编程工具(CodeGenie)基于BitFun Platform AI能力平台,为开发者提供高效的应用与服务AI编程支持,支持智能知识问答、代码生成、页面生成、万
    发表于 08-18 14:54

    HarmonyOS AI辅助编程工具(CodeGenie)智能问答

    CodeGenie基于生成式搜索能力,在对话区域下拉框中选择所需要的智能体,通过查询生成、内容优选服务高效理解用户意图,问答交互式地获取编码相关知识。 CodeGenie现接入小艺
    发表于 08-15 11:07

    HarmonyOS AI辅助编程工具(CodeGenie)概述

    DevEco AI辅助编程工具(CodeGenie)基于BitFun Platform AI能力平台,为开发者提供高效的应用与服务AI编程支持,支持智能知识问答,同时支持ArkTS代码
    发表于 08-11 14:31

    2025电赛题目问答(已更新)

    2025电赛题目问答(已更新)
    的头像 发表于 07-30 12:59 5755次阅读
    2025电赛题目<b class='flag-5'>问答</b>(已更新)