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

LangChain pdf的读取以及向量数据库的使用

以下使用了3399.pdf, Rockchip RK3399 TRM Part1

import ChatGLM
from langchain.chains import LLMChain
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain.chains import SimpleSequentialChain
from langchain_core.runnables import RunnablePassthrough
from operator import itemgetter
from langchain_community.document_loaders import PyPDFLoader
import ChatGLM
from langchain.chains import LLMChain
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain.chains import LLMMathChain
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.vectorstores import Chroma
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableParallel, RunnablePassthrough
from langchain_community.embeddings import JinaEmbeddings

# https://jina.ai/embeddings/
# https://python.langchain.com/docs/integrations/text_embedding/jina
# demo:  https://python.langchain.com/cookbook



llm = ChatGLM.ChatGLM_LLM()
loader = PyPDFLoader("3399.pdf")
documents = loader.load_and_split()

embeddings = JinaEmbeddings(
    jina_api_key="jina_fa2c341a2f634f1381f7cfec767150caSconYmQA2XRAcVKfZ7-Zboaqeydu", model_name="jina-embeddings-v2-base-en"
)

vectorstore = Chroma.from_documents(documents, embeddings)
retriever = vectorstore.as_retriever()

template = """Answer the question based only on the following context:
{context}

Question: {question}
"""
prompt = ChatPromptTemplate.from_template(template)
llm = ChatGLM.ChatGLM_LLM()
output_parser = StrOutputParser()
setup_and_retrieval = RunnableParallel(
    {"context": retriever, "question": RunnablePassthrough()}
)
chain = setup_and_retrieval | prompt | llm | output_parser

print(chain.invoke("eFuse Function Description"))






http://www.kler.cn/a/229387.html

相关文章:

  • 赛灵思(Xilinx)公司Artix-7系列FPGA
  • 【数据结构学习笔记】19:跳表(Skip List)
  • 504 Gateway Timeout:网关超时解决方法
  • 幂次进近
  • MAC AndroidStudio模拟器无网络
  • WINFORM - DevExpress -> devexpress版--报表(report)
  • 一文掌握SpringBoot注解之@Configuration知识文集(5)
  • 【UE5 C++】超详细虚幻C++零基础学习教程
  • 爬虫实战--人民网
  • 60-JS-Ajax
  • 傅里叶变换在图像处理中的应用
  • QT QDialog 中的按钮,如何按下后触发 accepted 消息?
  • 《动手学深度学习(PyTorch版)》笔记6.3
  • C#,河豚算法(Blowfish Algorithm)的加密、解密源代码
  • 音频二维码怎么制作出来的?支持多种格式音频生码的方法
  • 一文讲透ast.literal_eval() eval() json.loads()
  • Linux第42步_移植ST公司uboot的第3步_uboot命令测试,搭建nfs服务器和tftp服务器
  • python使用fabric库
  • 复习单向,双向链表,并且实现两种链表的增加和删除功能。
  • 阿木实验室SpireCV安装脚本
  • 解决Linux Shell脚本错误:“/bin/bash^M: bad interpreter: No such file or directory”
  • java执行可执行文件
  • kafka-splunk数据通路实践
  • Java注解与策略模式的奇妙结合:Autowired探秘
  • 算法学习——LeetCode力扣哈希表篇1
  • 在WebGL中创建动画