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

昆山住房和城乡建设局网站首页wordpress中文企业模板

昆山住房和城乡建设局网站首页,wordpress中文企业模板,建筑人才网app下载,哈尔滨做网站哪家好与大型 PDF 对话很酷。你可以与笔记、书籍和文档等聊天。这篇博文将帮助你构建一个基于 Multi RAG Streamlit 的 Web 应用程序,以通过对话式 AI 聊天机器人读取、处理和与 PDF 数据交互。以下是此应用程序工作原理的分步分解,使用简单的语言易于理解。 N…

与大型 PDF 对话很酷。你可以与笔记、书籍和文档等聊天。这篇博文将帮助你构建一个基于 Multi RAG Streamlit 的 Web 应用程序,以通过对话式 AI 聊天机器人读取、处理和与 PDF 数据交互。以下是此应用程序工作原理的分步分解,使用简单的语言易于理解。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 

1、使用必要的工具设置舞台

该应用程序首先导入各种强大的库:

  • Streamlit:用于创建 Web 界面。
  • PyPDF2:用于读取 PDF 文件的工具。
  • Langchain:一套用于自然语言处理和创建对话式 AI 的工具。
  • FAISS:用于高效搜索向量相似性的库,可用于在大型数据集中快速查找信息。
import streamlit as st
from PyPDF2 import PdfReader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.embeddings.spacy_embeddings import SpacyEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.tools.retriever import create_retriever_tool
from dotenv import load_dotenv
from langchain_anthropic import ChatAnthropic
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain.agents import AgentExecutor, create_tool_calling_agentimport os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"

2、读取和处理 PDF 文件

我们应用程序中的第一个主要功能旨在读取 PDF 文件:

PDF 阅读器:当用户上传一个或多个 PDF 文件时,应用程序会读取这些文档的每一页并提取文本,将其合并为单个连续字符串。

提取文本后,将其拆分为可管理的块:

文本拆分器:使用 Langchain 库,将文本分成每 1000 个字符的块。这种分割有助于更有效地处理和分析文本。

def pdf_read(pdf_doc):text = ""for pdf in pdf_doc:pdf_reader = PdfReader(pdf)for page in pdf_reader.pages:text += page.extract_text()return textdef get_chunks(text):text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)chunks = text_splitter.split_text(text)return chunks

2、创建可搜索的文本数据库并进行嵌入

为了使文本可搜索,应用程序将文本块转换为矢量表示:

矢量存储:应用程序使用 FAISS 库将文本块转换为矢量,并在本地保存这些矢量。这种转换至关重要,因为它允许系统在文本中执行快速有效的搜索。

embeddings = SpacyEmbeddings(model_name="en_core_web_sm")def vector_store(text_chunks):vector_store = FAISS.from_texts(text_chunks, embedding=embeddings)vector_store.save_local("faiss_db")

3、设置对话式 AI

此应用程序的核心是对话式 AI,它使用 OpenAI 的强大模型:

  • AI 配置:该应用程序使用 OpenAI 的 GPT 模型设置对话式 AI。此 AI 旨在根据其处理的 PDF 内容回答问题。
  • 对话链:AI 使用一组提示来理解上下文并为用户查询提供准确的响应。如果文本中没有问题的答案,AI 将被编程为以“上下文中没有答案”来响应,以确保用户不会收到错误的信息。
def get_conversational_chain(tools, ques):llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0, api_key="")prompt = ChatPromptTemplate.from_messages([...])tool=[tools]agent = create_tool_calling_agent(llm, tool, prompt)agent_executor = AgentExecutor(agent=agent, tools=tool, verbose=True)response=agent_executor.invoke({"input": ques})print(response)st.write("Reply: ", response['output'])def user_input(user_question):new_db = FAISS.load_local("faiss_db", embeddings,allow_dangerous_deserialization=True)retriever=new_db.as_retriever()retrieval_chain= create_retriever_tool(retriever,"pdf_extractor","This tool is to give answer to queries from the pdf")get_conversational_chain(retrieval_chain,user_question)

4、用户交互

后端准备就绪后,应用程序使用 Streamlit 创建用户友好的界面:

  • 用户界面:用户可以看到一个简单的文本输入框,他们可以在其中输入与 PDF 内容相关的问题。然后,应用程序会直接在网页上显示 AI 的响应。
  • 文件上传和处理:用户可以随时上传新的 PDF 文件。应用程序会实时处理这些文件,并使用新文本更新数据库,以供 AI 搜索。
def main():st.set_page_config("Chat PDF")st.header("RAG based Chat with PDF")user_question = st.text_input("Ask a Question from the PDF Files")if user_question:user_input(user_question)with st.sidebar:pdf_doc = st.file_uploader("Upload your PDF Files and Click on the Submit & Process Button", accept_multiple_files=True)if st.button("Submit & Process"):with st.spinner("Processing..."):raw_text = pdf_read(pdf_doc)text_chunks = get_chunks(raw_text)vector_store(text_chunks)st.success("Done")

5、流程图与完整代码

import streamlit as st
from PyPDF2 import PdfReader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.embeddings.spacy_embeddings import SpacyEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.tools.retriever import create_retriever_tool
from dotenv import load_dotenv
from langchain_anthropic import ChatAnthropic
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain.agents import AgentExecutor, create_tool_calling_agentimport os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"embeddings = SpacyEmbeddings(model_name="en_core_web_sm")
def pdf_read(pdf_doc):text = ""for pdf in pdf_doc:pdf_reader = PdfReader(pdf)for page in pdf_reader.pages:text += page.extract_text()return textdef get_chunks(text):text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)chunks = text_splitter.split_text(text)return chunksdef vector_store(text_chunks):vector_store = FAISS.from_texts(text_chunks, embedding=embeddings)vector_store.save_local("faiss_db")def get_conversational_chain(tools,ques):#os.environ["ANTHROPIC_API_KEY"]=os.getenv["ANTHROPIC_API_KEY"]#llm = ChatAnthropic(model="claude-3-sonnet-20240229", temperature=0, api_key=os.getenv("ANTHROPIC_API_KEY"),verbose=True)llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0, api_key="")prompt = ChatPromptTemplate.from_messages([("system","""You are a helpful assistant. Answer the question as detailed as possible from the provided context, make sure to provide all the details, if the answer is not inprovided context just say, "answer is not available in the context", don't provide the wrong answer""",),("placeholder", "{chat_history}"),("human", "{input}"),("placeholder", "{agent_scratchpad}"),]
)tool=[tools]agent = create_tool_calling_agent(llm, tool, prompt)agent_executor = AgentExecutor(agent=agent, tools=tool, verbose=True)response=agent_executor.invoke({"input": ques})print(response)st.write("Reply: ", response['output'])def user_input(user_question):new_db = FAISS.load_local("faiss_db", embeddings,allow_dangerous_deserialization=True)retriever=new_db.as_retriever()retrieval_chain= create_retriever_tool(retriever,"pdf_extractor","This tool is to give answer to queries from the pdf")get_conversational_chain(retrieval_chain,user_question)def main():st.set_page_config("Chat PDF")st.header("RAG based Chat with PDF")user_question = st.text_input("Ask a Question from the PDF Files")if user_question:user_input(user_question)with st.sidebar:st.title("Menu:")pdf_doc = st.file_uploader("Upload your PDF Files and Click on the Submit & Process Button", accept_multiple_files=True)if st.button("Submit & Process"):with st.spinner("Processing..."):raw_text = pdf_read(pdf_doc)text_chunks = get_chunks(raw_text)vector_store(text_chunks)st.success("Done")if __name__ == "__main__":main()

通过将应用程序另存为 app.py 然后使用来运行该应用程序

streamlit run app.py

输出:


原文链接:PDF RAG应用开发实战 - BimAnt


文章转载自:

http://u1uJLO3g.ptfsn.cn
http://I3o0D0Xn.ptfsn.cn
http://M3CkQTVs.ptfsn.cn
http://SqZRrJ6v.ptfsn.cn
http://E6zS5xEY.ptfsn.cn
http://3iAXZrom.ptfsn.cn
http://EVWWeW28.ptfsn.cn
http://mJxO1OT0.ptfsn.cn
http://tLlJxsIC.ptfsn.cn
http://jOUSLMEn.ptfsn.cn
http://QR8y1Bjx.ptfsn.cn
http://FD3S90CM.ptfsn.cn
http://BcDWitrl.ptfsn.cn
http://Py4wBviN.ptfsn.cn
http://6obuNt31.ptfsn.cn
http://E061h5z8.ptfsn.cn
http://boZvhY1B.ptfsn.cn
http://ENOLgO5y.ptfsn.cn
http://KWYWRBzC.ptfsn.cn
http://bYj2euZk.ptfsn.cn
http://UfNlG9YL.ptfsn.cn
http://ibQO9irV.ptfsn.cn
http://Yldri26c.ptfsn.cn
http://vq27ujvw.ptfsn.cn
http://iZoDiHrq.ptfsn.cn
http://EKMWBQtz.ptfsn.cn
http://PsKcq1ko.ptfsn.cn
http://ZqCeNvGS.ptfsn.cn
http://ApV9yBGN.ptfsn.cn
http://mFQswTWe.ptfsn.cn
http://www.dtcms.com/wzjs/768178.html

相关文章:

  • 建设网站的目标客户群域名app
  • 二手书网站开发设计wordpress 导航别名
  • 网站建设公司宝安上海网站建设网页设计
  • 网站这么建设怎么看网站做没做seo
  • 鞍山网站建设企业南宁网站建设公司seo优化
  • 代发网站建设淘宝天猫优惠券网站建设费用
  • 织梦快速做双语网站公司名怎么取名比较旺
  • 珠海seo海网站建设深圳优化seo排名
  • 网站建设管理工作经验介绍wordpress国外主题 雅黑
  • 社科联网站建设网站开发软件中文版
  • 无锡模板建站wordpress 移动端网页
  • 免费中文网站模板html江西网站建设技术
  • 做减肥餐的网站wordpress连连支付
  • thinkphp 微网站开发洛阳新光建站系统
  • 自己怎么在网上做网站招生网站转换率低
  • 珠海网站建设哪家权威计算机前端开发就业方向
  • 开发一个网站的过程是什么网站百度收录怎么做
  • 网络营销怎么做网站儿童才艺网站建设模板
  • 网站制作公司下逻辑网络设计报告
  • iis停止单个网站苏州推广有限公司
  • 知名高端网站建设深圳宝安区有几个镇
  • 注册网站账号违法吗百度宿迁市建设局网站
  • 个人开网站深圳网站制作的公司有哪些
  • 深圳南山区网站建设公司安装wordpress导入工具
  • php语言 电商网站建设安徽省建设工程信息网站进不了
  • 沈阳网站开发招聘提高怎样做网站的外链
  • 南京企业网站开发费用申请网站优化搜索排名
  • 交互网站设计wordpress 询价按钮
  • 揭阳网站建设公司哪个好模版网站建设步骤详解
  • 诚信企业品牌网站建设wordpress获取指定分类的图像描述