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

网站开发课设个人总结优秀的网页设计案例

网站开发课设个人总结,优秀的网页设计案例,建设银行移动门户网站,工商变更网上办理流程在本文中,使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序,可以从任何pdf文件中回答问题。 一、LangChain简介 LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few-…

    

       在本文中,使用LangChain、HuggingFaceEmbeddings和HuggingFace的Mistral-7B LLM创建一个简单的Python程序,可以从任何pdf文件中回答问题。

一、LangChain简介

        LangChain是一个在语言模型之上开发上下文感知应用程序的框架。LangChain使用带prompt和few-shot示例的LLM来提供相关响应和推理。LangChain擅长文档问答、聊天机器人、分析结构化数据等。LangChain提供方便处理LLM的抽象组件及其实现,还为更高级别的任务提供组件Chain。

安装langchain:

pip install langchain

LangChain中的模块Model I/O(模型I/ORetrieval(检索Chains(), Agents(代理), Memory(记忆), Callbacks(回调)

1.1 模型I/O模块

      模型I/O是应用程序的核心元素。使用LangChain,可以使用任何大语言模型。这个接口需要三个组件:大语言模型提示输出解析器

       LangChain提供了许多函数来构建提示,为各种任务提供现成的提示模板,也可以自定义提示模板。

       LangChain可以使用LLM,也可以使用以聊天消息列表为输入并返回聊天聊天消息。它可以与许多LLM一起工作,包括OpenAI LLMs和开源LLM。

      输出解析器用于构建从LLM接收的响应,PydanticOutputParser是LangChain中输出解析器的主要类型。

1.2 检索模块

       检索模块实现了检索增强生成(RAG),可以访问大模型训练数据之外的用户私有数据。检索步骤包括以下几步:加载数据、转换数据、创建或获取嵌入、存储嵌入和检索嵌入。LangChain拥有大约100个文档加载器,可以读取主要的文档格式,比如CSV、HTML、pdf、代码等。它可以使用不同的算法转换数据。LangChain集成了超过25个嵌入模型和超过50家向量数据库。

1.3 链条模块

       复杂的应用程序通常需要组合多个LLM来完成。LangChain提供了Chain功能,可以集成多个LLM,Chain也可以调用其他Chain。

1.4 代理模块

       代理也是一种Chain,负责决定下一步动作。代理由一个语言模型和一个提示组成,它需要以下输入:可用工具列表用户输入和历史执行信息(如果有的话)。代理cals的功能被称为“工具”。代理使用LLM来决定要采取的操作和顺序。操作包括——使用工具,观察工具的输出,向用户返回响应。

1.5 记忆模块

       记忆模块使系统能够记住过去的信息,这在对话机器人中非常重要。

1.6 回调模块

       回调机制允许用户使用API的“回调”参数返回LLM应用程序不同阶段的信息,比如用于日志记录、监控、流式传输等。

二、Mistral-7B

       Mistral-7B是一个强大的语言模型(目前是开源的),具有73亿个参数,性能优于很多参数量更高的大模型。它可以下载以供离线使用,也可以在云中使用或从HuggingFace下载。使用langchain中的HuggingFaceHub,可以使用以下代码加载并使用Mistral-7B:

repo_id = "mistralai/Mistral-7B-v0.1"llm = HuggingFaceHub(huggingfacehub_api_token='your huggingface access token here',                      repo_id=repo_id, model_kwargs={"temperature":0.2, "max_new_tokens":50})

三、HuggingFace Embedding

       在处理文本、图像、音频、视频、文档等数据时,通常首先会进行embedding把他们表示成数字类型,这样便于神经网络处理,embedding不仅仅是一种数字表示,它也可以捕捉数据的上下文语义信息。

       HuggingFace提供了Sentence Transformers模型可以进行embedding,安装如下所示:

pip install -U sentence-transformers

         然后使用它加载一个预先训练好的模型来对文本句子进行编码。

四、chroma向量存储

       chroma是一个开源的嵌入数据库(矢量存储),用于创建、存储、检索和进行嵌入的语义搜索。安装如下:

pip install chroma

       它允许用户连接到chroma客户端,创建一个集合,将带有元数据和id的文档添加到集合(此步骤创建嵌入),然后查询此集合(语义检索)。

五、pypdf库

       pypdf库可以读取、拆分、合并、裁剪、转换pdf文件的页面,添加自定义数据,更改查看选项,为pdf文件添加密码,从pdf文件中检索文本和元数据。安装如下所示:

pip install pypdf

         要将pypdf与AES加密或解密一起使用,请安装额外的依赖项:

pip install pypdf[crypto]

六、实现代码:

# Install dependencies!pip install huggingface_hub!pip install chromadb!pip install langchain!pip install pypdf!pip install sentence-transformers
# import required librariesfrom langchain.document_loaders import PyPDFLoaderfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.embeddings import HuggingFaceEmbeddingsfrom langchain.llms import HuggingFaceHubfrom langchain.vectorstores import Chromafrom langchain.chains import ConversationalRetrievalChain
# Load the pdf file and split it into smaller chunksloader = PyPDFLoader('report.pdf')documents = loader.load()# Split the documents into smaller chunks text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)texts = text_splitter.split_documents(documents)
# We will use HuggingFace embeddings embeddings = HuggingFaceEmbeddings()
#Using Chroma vector database to store and retrieve embeddings of our textdb = Chroma.from_documents(texts, embeddings)retriever = db.as_retriever(search_kwargs={'k': 2})
# We are using Mistral-7B for this question answering repo_id = "mistralai/Mistral-7B-v0.1"llm = HuggingFaceHub(huggingfacehub_api_token='your huggingface access token here',                      repo_id=repo_id, model_kwargs={"temperature":0.2, "max_new_tokens":50})
# Create the Conversational Retrieval Chainqa_chain = ConversationalRetrievalChain.from_llm(llm, retriever,return_source_documents=True)
#We will run an infinite loop to ask questions to LLM and retrieve answers untill the user wants to quitimport syschat_history = []while True:    query = input('Prompt: ')    #To exit: use 'exit', 'quit', 'q', or Ctrl-D.",    if query.lower() in ["exit", "quit", "q"]:        print('Exiting')        sys.exit()    result = qa_chain({'question': query, 'chat_history': chat_history})    print('Answer: ' + result['answer'] + '\n')    chat_history.append((query, result['answer']))

        至此,基于PDF的聊天机器人就搭建好了,你可以从一个长而难的pdf中回答你的所有问题。Just do it!

参考文献:

[1] https://medium.com/@nimritakoul01/chat-with-your-pdf-files-using-mistral-7b-and-langchain-f3be9363301c

[2] https://colab.research.google.com/corgiredirector?site=https%3A%2F%2Fmedium.com%2F%40woyera%2Fhow-to-chat-with-your-pdf-using-python-llama-2-41df80c4e674

[3] https://www.shakudo.io/blog/build-pdf-bot-open-source-llms

http://www.mmbaike.com/news/110225.html

相关文章:

  • 响应式网站标准尺寸百度网址安全检测中心
  • 沈阳模板建站安徽seo顾问服务
  • 贵州企业品牌网站建设网店代运营诈骗
  • 电商网站设计文档北京网站优化策略
  • 仙桃做网站广告推广投放平台
  • 芯火信息做网站怎么样佛山企业用seo策略
  • 电子商务网站建设的相关流程广告投放公司
  • 布吉网站建设多少钱查询网入口
  • 自由空间网站建设微信营销的方法和技巧
  • 深圳大型商城网站建设seo百度推广
  • 做网站应聘平台郑州百度推广外包
  • 设计师培训生招聘长沙做优化的公司
  • 我想做网站卖衣服做百度指数网页版
  • 秦淮网站建设用html制作淘宝网页
  • 辽源网站建设seo公司发展前景
  • 哪里有做家教网站的短期培训班学什么好
  • appui界面设计seo网站关键词优化
  • 百度商桥置入网站网络营销的含义
  • 用jsp做网站登录界面模板线下营销推广方式有哪些
  • 淘宝客网站主题模板怎么做百度推广运营
  • 珠海网站建设小程序长春网站排名提升
  • 如何在网站插做视频百度热搜关键词排行榜
  • 自学做网站长春网站优化流程
  • 苏州网站建设店铺装修英文外链seo兼职
  • 秦皇岛网站关键词推广关键词组合工具
  • 淄博桓台网站建设公司网站运营课程
  • 行业网站搭建搞一个公司网站得多少钱
  • 网站域名可以更换吗关键词林俊杰歌词
  • 上海市建设安全协会网站百度sem运营
  • 做动画人设有哪些网站可以借鉴情感营销的十大案例