通过ChatGPT实现的ChatPDF,简单的应用落地,让你的文档变成一个智能助手,通过对话的方式快速学习文档内容

news/2024/5/20 8:55:31 标签: 人工智能, ai, chatgpt, openai, 聊天机器人
aidu_pl">

ain-toc">目录

先看效果

实现原理

环境安装

应用场景


先看效果

首先,找到一篇论文先,我这里随便找了一篇pdf格式的论文

那么,我现在让他担任一个研究论文的智能助手,当然大家可以自定义自己的prompt

 开始问答

可以看到效果很强

实现原理

  1. 提取 pdf 文本,以便后续处理。
  2. 由于 OpenAI API 对 Token 数量有限制,我们需要将 PDF 文本切分成小于 Token 限制的片段。
  3. 将每个片段使用 OpenAI 的 Embedding API 生成向量并保存到数据库(Postgres)中
  4. 开始提问题
  5. 将用户提出的问题转换为向量。
  6. 使用余弦相似度算法将用户提出的问题向量与数据库中的向量进行比较,找到与问题最相似的文本片段。
  7. 将片段文本喂给 ChatGPT,让它基于这些片段回答用户提出的问题。

代码资源,我放在网盘了,大家需要的自提

链接:https://pan.baidu.com/s/1Os_DR8lC9gBtc2ONNN5YJg?pwd=6666 
提取码:6666 
--来自百度网盘超级会员V1的分享

环境安装

python环境3.7+的,我这里是3.8

pip install -r requirements.txt

 如果说,运行发生ssl错误的话

可以对urllib3进行降级

pip install urllib3==1.25.11

 执行代码是这个

 然后的话,大家就需要特殊上网了,因为本质上还是使用到openai

 使用前的话,我们需要将自己的语料喂给openai,只需要喂一次就行,如果更换语料的话就需要重新喂了

 喂养,第二次使用就可以注释掉

另外运行前需要将自己的key更改成自己的

应用场景

可以通过这种上传文件的方式,解决openai的token的字数限制问题,让我们的文档变成一个帮助你学习的助手,当然其他的一些可以用来创业的想法,大家可以自行的去研究。


http://www.niftyadmin.cn/n/179622.html

相关文章

在 Python 中访问字典列表中的值

Python 中要访问字典列表中的值: 使用 for 循环遍历列表。使用括号表示法访问每个字典中特定键的值。使用 list.append() 方法将值追加到列表中。 list_of_dictionaries [{id: 1, name: Alice, job: accountant},{id: 2, name: Borislav, job: beekeeper},{id: 3…

字节、阿里等大厂年薪50w+的测试都什么水平?

各位做测试的朋友,但凡经历过几次面试,那么你一定曾被问到过以下问题: 1、在Linux环境下,怎么执行web自动化测试? 2、Shell如何,Docker熟悉吗? 3、全链路的压测实操过吗,如何推进与开…

vue数据字典下拉框,要回显下拉列表中没有的值?

思路:下拉框的回显,是根据下拉列表数组来回显的,假设下拉列表中没有该值,则无法回显;那么我们把不能回显的值也放到数组里面,只是显示下拉列表的时候隐藏,就可以达到回显的作用了; 数据字典中有个enable字段,用于字典的启用和停用;我们可以根据这个值来判断是否显示和…

限流、熔断、服务降级

在分布式系统中,如果某个服务节点发生故障或者网络发生异常,都有可能导致调用方被阻塞等待,如果超时时间设置很长,调用方资源很可能被耗尽。这又导致了调用方的上游系统发生资源耗尽的情况,最终导致系统雪崩。 举例&a…

Vuex详解,从概念理解到使用步骤

文章目录什么是 Vuex?为什么需要 Vuex?核心概念StateGetterMutationActionModule什么是 Vuex? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预…

AIGC热门技术岗平均年薪超百万,脉脉林凡认为白领可能先于蓝领失业

3月,国内外AIGC新品相继发布引发热议,AIGC的人才需求也更加旺盛。脉脉高聘人才智库近期发布《2023 AIGC人才趋势报告》,数据显示,AIGC人才供需结构性失衡,热招岗位偏技术岗位,以算法工程师、自然语言处理、…

Linux 网络编程学习笔记——十、信号

目录 信号是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。Linux 信号可由如下条件产生: 对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。比如输入 Ctrl C 通常会给进程发送一个中断信…

【HDR图像处理】HDR图像,HDRI技术的一些基础概念 | GPT对话记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、灰度图像,一般彩色图像,HDR图像有什么区别?二、hdr文件,.exr文件能表示多少种亮度范围?三、彩色图…