使用chatgpt api快速分析pdf

打印 上一主题 下一主题

主题 559|帖子 559|积分 1677

需求背景

搞质料的兄弟经常要分析pdf,然后看到国外有产物是专门调用chatpdf来分析pdf的,以是就来问我能不能帮他也做一个出来。正好我有chatgpt的api,以是就研究了一下这玩意怎么弄。
需求分析

由于chatgpt是按字符算钱的,以是如果把整个pdf文本全部塞进去,固然效果是好了,但是钱花的巨快。测试的时候不小心传了个86页的pdf进去,好家伙,直接余额变负值了,一下子花了6刀多。。。。以是我们只能先对pdf做预处置惩罚,重要使用了langchain包加载和生成向量库
引入依靠
  1. from langchain.document_loaders import PyPDFLoader
  2. from langchain.indexes.vectorstore import VectorstoreIndexCreator
  3. from langchain.vectorstores.chroma import Chroma
  4. from langchain.embeddings.openai import OpenAIEmbeddings
  5. from langchain.indexes.vectorstore import VectorStoreIndexWrapper
复制代码
生成向量
  1. # https://chatpdf4cn.com/
  2. def load_pdf_and_save_to_index(file_path, index_name):
  3.     loader = PyPDFLoader(file_path)
  4.     index = VectorstoreIndexCreator(vectorstore_kwargs={"persist_directory":get_index_path(index_name)}).from_loaders({loader})
  5.     print('save')
  6.     index.vectorstore.persist()
复制代码
加载向量库
  1. def load_index(index_name):
  2.     index_path=get_index_path(index_name)
  3.     embedding = OpenAIEmbeddings()
  4.     vectordb = Chroma(
  5.     persist_directory=index_path,
  6.     embedding_function=embedding
  7. )
  8.     return VectorStoreIndexWrapper(vectorstore=vectordb)
复制代码
最后调用chatgpt访问
  1. load_pdf_and_save_to_index(file_path, index_name)
  2. index = load_index(index_name)
  3. ans = index.query("文章中提到的两种磁化模式有什么区别?",chain_type_kwargs={}) #RetrievalQAWithSourcesChain
  4. print(ans)
复制代码
附上完备项目试用地址
chatpdf4cn
调用chatgpt接口照旧蛮贵的,以是限制了试用次数,如果有需要的可以联系我开放限制,希望能反馈一些使用意见。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

知者何南

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表