用通义Qwen大模型和Streamlit构建 ChatPDF 应用(附代码)

简介: 本文介绍了如何利用通义千问Qwen大模型构建一个本地ChatPDF AI助手,该助手允许用户上传PDF并与之对话,确保文档隐私安全。项目通过阿里云百炼平台获取Qwen-Long模型,支持多种文档格式。现实现步骤包括导入库、加载环境变量、初始化客户端、编码器、页面与对话管理、文件上传、选择模型、获取AI回答及计算费用,主函数整合这些功能,提供交互体验。

大家好!今天我要和大家分享的是如何使用通义千问 Qwen 大模型来构建一个本地的 ChatPDF AI助手。这个助手可以让你上传 PDF 文件,然后基于文件内容和它进行对话,非常方便和有趣,我们不用担心文档数据泄露,个人隐私也可以得到保护。通过部署到云服务器,我们也可以构建一个网站应用。演示如下:
iShot_2024-06-10_21.15.51.png

接下来,我会一步一步地带你了解这个项目的实现过程,希望大家能喜欢。

我们需要通过阿里云百炼平台获取大模型API,因为我要构建一个文档对话应用,所以这里我选用的是Qwen-Long这个大模型,Qwen-Long是在通义千问针对超长上下文处理场景的大语言模型,支持最长1000万tokens(约1500万字或1.5万页文档)的超长上下文对话。配合同步上线的文档服务,可支持word、pdf、markdown、epub、mobi等多种文档格式的解析和对话。

首先,我们需要导入一些必要的库和模块。我们主要会用到openai、streamlit和 tiktoken。其中,tiktoken 是用来处理 token 编码的,这样可以帮我们计算对话的费用。
iShot_2024-06-09_20.55.58.png

接下来,我们需要加载环境变量。通过 dotenv 模块,我们可以从 .env 文件中加载配置。只要把 .env 文件放在项目的根目录中就可以了。
iShot_2024-06-09_20.57.14.png

然后,我们需要初始化客户端。只需获取通义千问大模型的 API 密钥,并用它创建一个客户端实例。如果密钥没有设置好,程序会提醒你。
iShot_2024-06-09_20.58.14.png

接下来,我们初始化 tiktoken 的编码器,这个小工具可以帮我们计算消息的 token 数量。
然后我们来定义一些初始化页面和对话消息的函数。init_page 函数设置页面和侧边栏的标题,而 init_messages 函数用来初始化对话消息。
iShot_2024-06-09_20.58.58.png

我们还需要一个上传 PDF 文件的函数 upload_pdf。这个函数会把文件上传到 OpenAI 的文件服务,并返回文件的 ID。
然后,我们定义一个选择语言模型的函数 select_llm,从 Streamlit 的侧边栏读取用户选择的模型名称。
iShot_2024-06-09_21.00.15.png

接下来是获取 AI 回答的函数 get_answer。这个函数接受模型名称、消息列表和文件 ID 作为参数。首先添加包含文件 ID 的系统消息,然后获取用户的实际问题,调用 OpenAI 的聊天完成接口获取回答,并返回回答内容。
我们还需要一个计算对话费用的函数 calculate_cost。这个函数会计算消息列表中所有消息的 token 数量,然后根据每千个 token 的价格计算总费用。这样你就能知道自己花了多少钱。
iShot_2024-06-09_21.01.24.png

最后,我们来看看主函数 main。这个函数会初始化页面和对话消息,处理文件上传,获取用户输入,并显示对话历史和费用。具体流程是先初始化页面,然后选择模型,上传文件,初始化对话消息,获取用户输入,调用 AI 获取回答,计算费用,并显示在页面上。

怎么样?是不是很有意思?你也可以在本地部署一个自己的ChatPDF AI 助手,轻松地和 PDF 文件内容进行对话,再也不用害怕文档数据泄漏,快来动手试试构建吧!

目录
相关文章
|
1月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
1月前
|
机器学习/深度学习 人工智能 人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
354 121
|
1月前
|
数据采集 人工智能 搜索推荐
智能新纪元:多模态大模型如何重塑人机交互
智能新纪元:多模态大模型如何重塑人机交互
221 113
|
1月前
|
人工智能 人机交互 知识图谱
当AI学会“融会贯通”:多模态大模型如何重塑未来
当AI学会“融会贯通”:多模态大模型如何重塑未来
273 114
|
1月前
|
人工智能 安全 搜索推荐
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
当AI学会“看”和“听”:多模态大模型如何重塑人机交互
250 117
|
1月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
1009 16
构建AI智能体:一、初识AI大模型与API调用
|
1月前
|
缓存 物联网 PyTorch
使用TensorRT LLM构建和运行Qwen模型
本文档介绍如何在单GPU和单节点多GPU上使用TensorRT LLM构建和运行Qwen模型,涵盖模型转换、引擎构建、量化推理及LoRA微调等操作,并提供详细的代码示例与支持矩阵。
426 2
|
1月前
|
人工智能 自然语言处理 监控
58_大模型评估与评测:构建科学的多维度评测体系
在大语言模型(LLM)技术飞速发展的今天,如何科学、全面地评估和评测这些模型的能力已成为学术界和工业界共同关注的核心问题。2025年,大模型生态系统呈现出百花齐放的态势,从参数规模、架构设计到应用场景都出现了多样化的发展路径。在这种背景下,单一的性能指标或评测方法已经无法满足对大模型进行全面评估的需求。
|
2月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
672 109
|
2月前
|
分布式计算 测试技术 Spark
科大讯飞开源星火化学大模型、文生音效模型
近期,科大讯飞在魔搭社区(ModelScope)和Gitcode上开源两款模型:讯飞星火化学大模型Spark Chemistry-X1-13B、讯飞文生音频模型AudioFly,助力前沿化学技术研究,以及声音生成技术和应用的探索。
270 2