使用Langchain、Weviate和Streamlit构建自定义的基于AI的聊天机器人

使用Langchain、Weviate和Streamlit构建自定义AI聊天机器人

<h2 id="使用生成式AI、流行的向量数据库、提示链接和UI工具构建定制聊天机器人的综合指南

随着多个组织纷纷竞相构建定制化语言模型(LLMs),一个常见的问题是:有哪些工具可以简化这个过程?

在本文中,我将向您展示如何构建一个完全功能的应用程序,通过在文档之上构建聊天机器人来进行对话。这个应用程序利用ChatGPT/GPT-4(或其他大型语言模型)的强大能力,从嵌入在向量数据库中的文档数据中提取信息,并使用Langchain进行提示链接。以下是一个预览:

Docs QA Bot | Skanda Vivek

那么,让我们开始吧!

构建应用程序🏗️

首先,创建一个名为`app`的新文件夹,其中包含应用程序的源代码。这将作为Streamlit应用程序的入口点。然后创建执行不同任务的文件夹,例如从PDF中提取文本、创建文本嵌入、存储嵌入,最后进行聊天。`app`目录的结构如下:

App Directory Structure | Skanda Vivek

PDF上传

上传PDF并提取文本以进行进一步处理。

from PyPDF2 import PdfReaderimport streamlit as [email protected]_data()def extract_text(_file):    """        :param file: 要提取的PDF文件    """    content = ""    reader = PdfReader(_file)    number_of_pages = len(reader.pages)    # 从多个页面中提取文本    for i in range(number_of_pages):        page = reader.pages[i]        text = page.extract_text()        content = content + text    return content

代码链接

https://github.com/LLM-Projects/docs-qa-bot/blob/main/app/extract.py