当前位置: 首页 > news >正文

制作ChatPDF之前端Vue搭建(二)

前端界面

接上篇: 制作ChatPDF之Elasticsearch8.13.4搭建(一)

为了实现一个基于 Vue.js 的前端应用,用户可以上传 PDF 文件,输入查询,并在输出框中显示查询结果,你需要以下步骤:

  1. 初始化 Vue 项目:使用 Vue CLI 创建一个新的 Vue 项目。
  2. 安装依赖:安装处理 PDF 文件和查询功能所需的库。
  3. 创建组件:创建上传 PDF 文件、输入查询和显示结果的组件。
  4. 实现 PDF 处理和查询功能:解析上传的 PDF 文件并实现查询功能。
  5. 整合组件:将组件整合到一个页面中,实现交互逻辑。

技术架构图

+---------------------+      +------------------+       +-----------------+
|                     |      |                  |       |                 |
| Frontend (Vue.js)   +----->| Backend (Node.js)|<----->| Elasticsearch   |
|                     |      |                  |       |                 |
| - File Upload       |      | - Upload API     |       | - Store PDF Data|
| - Input Query       |      | - Query API      |       | - Full-text     |
| - Display Results   |      | - Parse PDF      |       |   Search        |
|                     |      |                  |       |                 |
+---------------------+      +------------------+       +-----------------+

步骤概述

  1. Frontend (Vue.js):
    • 上传 PDF 文件并发送到后端。
    • 输入查询内容并发送到后端。
    • 显示查询结果。
  2. Backend (Node.js):
    • 接收 PDF 文件并解析内容。
    • 将解析后的内容存储到 Elasticsearch。
    • 接收查询请求并从 Elasticsearch 中搜索内容。
    • 返回查询结果给前端。
  3. Elasticsearch:
    • 存储 PDF 文件内容。
    • 提供全文搜索功能。

下面是一个基本的示例代码,展示如何实现上述功能。

1. 初始化 Vue 项目

首先,确保你已经安装了 Vue CLI。如果没有,先安装 Vue CLI:

npm install -g @vue/cli

然后创建一个新的 Vue 项目:

vue create pdf-query-app
cd pdf-query-app

2. 创建组件

创建一个新组件 PdfUploader.vue,用于上传 PDF 文件、输入查询和显示结果。

PdfUploader.vue
<template><div><input type="file" @change="handleFileUpload" accept="application/pdf" /><input type="text" v-model="query" placeholder="输入查询内容" /><button @click="searchPdf">查询</button><div v-if="result"><h3>查询结果:</h3><p>{{ result }}</p></div></div>
</template><script>
export default {data() {return {query: '',result: null};},methods: {handleFileUpload(event) {const file = event.target.files[0];const formData = new FormData();formData.append('file', file);fetch('http://localhost:3000/pdf/upload', {method: 'POST',body: formData}).then(response => response.json()).then(data => console.log(data)).catch(error => console.error('Error:', error));},searchPdf() {fetch(`http://localhost:3000/pdf/search?q=${this.query}`).then(response => response.json()).then(data => {this.result = data.hits.hits.map(hit => hit._source.content).join(', ');}).catch(error => console.error('Error:', error));}}
};
</script><style scoped>
/* 添加你的样式 */
</style>

4. 整合组件

App.vue 中使用 PdfUploader 组件:

App.vue
<template><div id="app"><PdfUploader /></div>
</template><script>
import PdfUploader from './components/PdfUploader.vue';export default {name: 'App',components: {PdfUploader}
};
</script><style>
/* 添加你的样式 */
</style>

5. 运行项目

最后,启动你的 Vue 项目:

npm run serve

访问 http://localhost:8080,你应该能够看到一个文件上传输入框、一个文本输入框和一个按钮。上传一个 PDF 文件,输入查询内容并点击“查询”按钮,查询结果将显示在下方。

这个示例展示了基本的文件上传、PDF 解析和查询功能。你可以根据需要进一步优化和扩展功能,例如添加错误处理、更高级的查询功能等。

在这里插入图片描述

相关文章:

制作ChatPDF之前端Vue搭建(二)

前端界面 接上篇: 制作ChatPDF之Elasticsearch8.13.4搭建&#xff08;一&#xff09; 为了实现一个基于 Vue.js 的前端应用&#xff0c;用户可以上传 PDF 文件&#xff0c;输入查询&#xff0c;并在输出框中显示查询结果&#xff0c;你需要以下步骤&#xff1a; 初始化 Vue …...

汽车IVI中控开发入门及进阶(二十一):DAB和FM 收音机

前言: 在过去的十年里,数字收音机对车载娱乐产生了重大影响。现在,几乎每辆新车都标配了这项技术,这也是我们60%以上的人收听收音机的方式。甚至有传言称,在不久的将来,将永久关闭调频发射机,使许多车载收音机过时。但一些相对年轻的汽车在工厂里仍然没有安装DAB,而且…...

智能sql LLM

DB-GPT&#xff1a;彻底改变数据库与私有LLM技术的交互 智能SQL生成&#xff1a;后端技术与LLM的完美结合 智能SQL生成&#xff1a;后端技术与LLM的完美结合_llm sql-CSDN博客 GitHub - eosphoros-ai/DB-GPT: AI Native Data App Development framework with AWEL(Agentic Wor…...

大聪明教你学Java | 深入浅出聊 Stream.parallel()

前言 &#x1f34a;作者简介&#xff1a; 不肯过江东丶&#xff0c;一个来自二线城市的程序员&#xff0c;致力于用“猥琐”办法解决繁琐问题&#xff0c;让复杂的问题变得通俗易懂。 &#x1f34a;支持作者&#xff1a; 点赞&#x1f44d;、关注&#x1f496;、留言&#x1f4…...

图解大模型分布式并行各种通信原语

背景 在分布式集群上执行大模型任务时候&#xff0c;往往使用到数据并行&#xff0c;流水线并行&#xff0c;张量并行等技术&#xff0c;这些技术本质上也就是对数据进行各种方案的切分&#xff0c;然后放到不同的节点上运算。不同节点在计算的过程中需要对数据分发或者同步等…...

张大哥笔记:下一个风口是什么?

我们经常会问&#xff0c;下一个风口是什么&#xff1f;我们可以大胆预测一下&#xff0c;2024年的风口是什么呢&#xff1f; 40年前&#xff0c;如果你会开车&#xff0c;那就是响当当的铁饭碗&#xff1b; 30年前&#xff0c;如果你会英语和电脑&#xff0c;那也绝对是个人才…...

AI去衣技术中的几何着色:揭秘数字时尚的魔法

在数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;正以前所未有的速度改变我们的生活&#xff0c;从智能家居到自动驾驶汽车&#xff0c;再到个性化医疗。然而&#xff0c;AI的影响远不止于此。它正在重塑我们对艺术、设计和时尚的理解。特别是在数字时尚领域&#…...

Leecode---技巧---只出现一次的数字 / 多数元素

题解&#xff1a; 利用异或运算 a⊕a 0 的性质&#xff0c;可用来消除所有出现了两次的元素&#xff0c;最后剩余的即为所得。 class Solution { public:int singleNumber(vector<int>& nums){// 初始化为0int ans 0;for(int x: nums){// 异或操作ans ^ x;}retur…...

为图片设置经纬度信息

一、java实现 小编看了很多技术博客&#xff0c;但是测试要么下载的jar包中的api和博客对不上&#xff0c;要么就是不对&#xff0c;总之没实现 Java 读取图片信息 java 写入 exif 信息 使用Java读取和修改图片的Exif信息 java获取图片的GPS信息 https://drewnoakes.com/code/e…...

密码和密钥的联系与区别

密码和密钥是两个非常重要的概念&#xff0c;但容易混淆这两者&#xff0c;以下内容介绍了它们的联系和区别&#xff1a; 一、定义 密码&#xff08;Password&#xff09;&#xff0c;在日常语境中&#xff0c;通常指的是个人为了验证自己的身份而设置的一段秘密的字符序列&am…...

C++编程法则365天一天一条(323)main函数执行之前和之后的动作

在C和C程序中&#xff0c;main 函数之前和之后执行的函数是由编译器、链接器和运行时环境共同决定的。以下是一些通常会在这些阶段执行的关键函数&#xff1a; 在 main 函数之前执行的函数 启动代码&#xff08;Start-up Code&#xff09;: 这是由编译器提供的一段代码&#…...

阿里云短信服务使用(Java)

文章目录 一、流程1.打开短信服务2.提交材料申请资质3.资质通过后&#xff0c;申请短信签名并设置短信模板4.右上角设置AccessKey5.充值 二、参考官方文档调用API1.引入maven依赖2.调用API补充 一、流程 1.打开短信服务 登陆注册阿里云 搜索“短信服务”&#xff0c;点击“免…...

C++17之std::void_t

目录 1.std::void_t 的原理 2.std::void_t 的应用 2.1.判断成员存在性 2.1.1.判断嵌套类型定义 2.1.2 判断成员是否存在 2.2 判断表达式是否合法 2.2.1 判断是否支持前置运算符 2.2.3 判断两个类型是否可做加法运算 3.std::void_t 与 std::enable_if 1.std::void_t 的…...

零基础入门篇①⑥ Python可变序列类型--字典

Python从入门到精通系列专栏面向零基础以及需要进阶的读者倾心打造,9.9元订阅即可享受付费专栏权益,一个专栏带你吃透Python,专栏分为零基础入门篇、模块篇、网络爬虫篇、Web开发篇、办公自动化篇、数据分析篇…学习不断,持续更新,火热订阅中🔥专栏限时一个月(5.8~6.8)重…...

C语言面试题1-10

C语言中的内存管理及相关问题探讨 在C语言编程中&#xff0c;内存管理是一个至关重要的概念&#xff0c;掌握内存的分布及其操作不仅能够提高代码效率&#xff0c;还能避免常见的内存泄漏等问题。本文将详细介绍C语言中内存的分布、堆区和栈区的区别、标识符的命名规则、定义和…...

Qt Designer工具如何修改MainWindow窗口的标题

Qt Designer工具如何修改MainWindow窗口的标题 在MainWindow的属性编辑器中选择“windowTitle”后面一栏修改成期望的窗口标题名称即可。 按住“ctrlR”即可查看可视化界面的窗口标题...

车辆前向碰撞预警系统性能要求和测试规程

前言 本文整理《GB/T 33577-2017 智能运输系统-车辆前向碰撞预警系统性能要求和测试规程》国标文件关键信息,FCW系统性能和测试右给深层次的认识。 术语和定义 车辆前向碰撞预警系统 forward vehicle collision warning system自车 subject vehicle(SV)目标车辆 target ve…...

C#实现winform中渲染图的展示

在WinForms中实现图形的渲染展示&#xff0c;可以使用GDI绘图技术。下面是一个简单的示例&#xff0c;演示如何在WinForms中展示一个圆形图形&#xff0c;并根据用户输入的半径动态改变圆的大小&#xff1a; 请在Visual Studio中创建一个WinForms应用程序&#xff0c;并将以下…...

JTS库的讲解及使用

JTS&#xff08;Java Topology Suite&#xff09;是一套用于创建、操作和分析二维几何对象的Java库。JTS提供了丰富的几何操作和分析功能&#xff0c;是GIS&#xff08;地理信息系统&#xff09;应用中的重要工具。以下是JTS库的一些主要功能及其详细使用示例&#xff1a; 1. …...

【C++杂货铺】unordered系列容器

目录 &#x1f308; 前言&#x1f308; &#x1f4c1; unordered系列关联式容器 &#x1f4c1; 底层结构 &#x1f4c2; 哈希概念 &#x1f4c2; 哈希冲突 &#x1f4c2; 哈希函数 &#x1f4c2; 哈希冲突解决 &#x1f4c1; 模拟实现 &#x1f4c1; 总结 &#x1f308; 前…...

单智能体 vs 多智能体系统:架构对比与选择

单智能体 vs 多智能体系统:架构对比与选择 1. 标题 (Title) 单智能体 vs 多智能体系统:架构对比与选择指南 从单体到群体:智能体系统架构的深度解析与选型策略 智能体系统设计:何时选择单智能体,何时拥抱多智能体? 单一智慧 vs 群体智能:智能体系统架构对比与实践指南 …...

GBase 8a数据库实际支持的索引类型详解

本文继续说明为什么列存不依赖传统 B-Tree 索引&#xff0c;南大通用GBase 8a数据库&#xff08;gbase database) 实际使用了哪些替代机制&#xff0c;以及怎样在列存环境下做到真正有效的查询加速。虽然传统 B-Tree 索引在列存引擎上效果有限&#xff0c;GBase 8a数据库仍然支…...

OpenClaw+Hermes +Vibe Coding本地部署|论文自动化|知识工作流

在人工智能快速重塑科研范式的背景下&#xff0c;大语言模型、Agent系统与自动化科研工作流&#xff0c;正在深刻改变文献阅读、代码开发、数据分析、论文写作与科研协作的底层方式。面对模型快速迭代、工具形态持续演进的新局面&#xff0c;科研人员亟需从“会使用AI”进一步升…...

百度网盘全自动化实录:Hermes Agent + bb-browser

缘起&#xff1a;今天风暴了一下&#xff0c;准备实践一下Hermes自动售卖数字产品实现自动变现的MVP&#xff0c;谁知道刚开始就卡在了操作百度网盘&#xff0c;要么被反爬&#xff0c;要么靠之前开发的computer use for win截图点坐标像瞎子摸象。最后换了条路——用 bb-brows…...

这份榜单够用!盘点2026年断层领先的的AI论文写作软件

一天写完毕业论文在2026年已不再是天方夜谭。以下是2026年最炸裂、实测能大幅提速的AI论文写作软件&#xff0c;覆盖选题构思、文献综述、数据整理、格式排版等核心场景&#xff0c;帮你高效搞定论文。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首选…...

4.0修复版去水印小程序源码 内含去水印免费接口

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 流量主变现&#xff1a;集成微信广告&#xff0c;支持开屏 / 激励 / Banner 广告&#xff0c;直接盈利。 前后端能力&#xff1a; 前端&#xff1a;3 套 UI 可选&#xff0c;改版后功能完…...

2026年房建工程管理软件选购指南:7款主流工具横向对比,助你找到最适合的那一款

2025年&#xff0c;房建行业整体营收下滑5.62%&#xff0c;净利润降幅超20%&#xff0c;利润空间持续收窄。越来越多施工企业意识到&#xff0c;精细化管理是穿越周期的唯一路径。然而&#xff0c;数据孤岛、多分包协同混乱、合规要求升级&#xff0c;让选对一款工程管理软件变…...

Delft3D建模、水动力模拟方法及在地表水环境影响评价中的实践技术应用

一&#xff1a;Delft3D软件介绍及建模原理和步骤对常见的地表水数值模型进行介绍&#xff0c;学习Delft3D软件的构成、界面内容&#xff0c;了解地表水数值模型的建模步骤&#xff1a;1.1地表水数值模拟常用软件介绍EFDC_Explorer&#xff08;商业&#xff09; Delft3D&#xf…...

ElevenLabs海南话语音部署避坑清单(含IPA音标对齐表+海口话声调模板),限免领取仅剩200份

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs海南话语音部署避坑清单&#xff08;含IPA音标对齐表海口话声调模板&#xff09;&#xff0c;限免领取仅剩200份 部署ElevenLabs模型支持海口话&#xff08;海南闽语&#xff09;语音合成时&…...

在线课程|基于springboot+vue的在线课程管理系统(源码+数据库+文档)

在线课程管理系统 目录 基于springbootvue的在线课程管理系统 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&#xff0c;…...