RAG支持:使用GPT-4o打造智能SaaS聊天机器人

2024年05月29日 由 alex 发表 192 0

如果你想在人工智能驱动的产品上建立业务,检索增强世代(RAG)聊天机器人是一个非常热门的话题。只需谷歌一下 "聊天 PDF",你就会发现有几十家公司正在就这一主题建立 SaaS 业务。本文将提供技术细节,帮助你在 Databutton 中从零开始构建一个聊天机器人。这些信息还将使你更容易编写适当的提示,并与 Databutton 的代理框架共享上下文,从而使整个过程简单明了。


因此,为了使我们的应用程序能够进入市场......我首先会优先考虑添加用户身份验证功能。它能确保应用程序的安全,管理用户访问,并确保只有授权用户才能使用它。我们将使用 Firebase 进行用户身份验证,这是大多数应用程序开发人员的首选服务。


6


如何改进和微调我们的 RAG 框架?

我们将进行一些关键改进,以提高结果的速度和质量。毕竟,这样一个聊天机器人的价值不仅取决于答案的准确性,还取决于生成答案的速度。


重复使用存储的嵌入 - 我们可以使用开源矢量数据库,如 Chroma DB。该数据库可存储索引内容(如从上传的 PDF 文件中)--允许用户根据这些内容提问,而无需再次重新索引。这种方法既节省时间又降低成本。


7


扩增生成 - 利用最新的人工智能模型更新我们的 RAG 框架。为了提高增强过程的速度,使用 OpenAI 的最新模型 GPT-4 Omni 是最佳选择。它速度快,价格实惠。由于 gpt-4o 提供了 128,000 个令牌大小的上下文窗口,我们可以轻松地从向量数据库中执行的相似性搜索中传递额外的上下文。这有助于增强响应,提高响应质量。此外,利用这个广阔的上下文窗口还能确保聊天机器人以更高的效率和准确性处理更复杂的查询。


和以前一样,我们使用 Langchain python 库作为协调工具来处理解析、分块和将文档嵌入到向量数据库中。Langchain 还能执行相似性搜索,并根据相关上下文生成响应。


但这里最大的优势是,只需通过 Databutton 的代理框架提示,就能构建整个功能应用程序。

Databutton 是一个在线平台,在这里你可以从头开始构建会话式全栈应用程序!在 Databutton 中构建应用程序时,提示是关键。


  • 功能部分(后端)用 Python 生成,并以 API 端点的形式提供,可以从前端调用。
  • 用户界面(前端)由 React JS 生成。


1. 在应用程序中添加身份验证

每个 Databutton 应用程序都有一个默认的身份验证封装模板作为用户界面组件。


8


如果我们对 Databutton 代理进行提示,它就能快速将身份验证添加到我们的用户界面中。下面是一个提示:


我想添加 #AuthWrapper 组件并保护我的页面


让我们看看代理在主程序中成功添加 AuthWrapper 组件的代码。


....
return (
    <AuthWrapper>
      <Flex w="full" h="full" direction="column">
        <Box
          p={2}
          borderBottom="1px"
          textAlign="center"
          borderColor="lightgray"
          bg="black"
        >
          <Heading size="2xl" fontWeight="bold" color="white" mt={4}>
            PDF Knowledge Bot
          </Heading>
....
</AuthWrapper>
  );
}


不过,使用 Firebase Authentication 时需要进行一些必要的配置(关键步骤如下):


  1. 设置 Firebase 身份验证
  2. 手动或通过提示将 Firebase 配置添加到模板中
  3. 配置登录方法
  4. 添加授权域

有关开始使用 Firebase 的详细说明,请查看 Databutton 提供的综合文档。


9


2. 在 React 中构建初始用户界面

在构建用户界面时,最好的方法是根据用户界面组件(前端的可重用构件)来考虑页面。


10


以下是使用的提示


我想创建一个用户界面组件。- 一个 PDF URL 文本输入框(浅灰色占位符颜色和黑色边框)--一个唯一名称文本输入框--一个黑色确认按钮。所有这些都在侧边栏中。


接下来,构建一个简单的聊天组件


主应用程序中间的聊天组件。


- 提示输入框和发送按钮。

- 聊天的输出: 聊天应具有人工智能和用户界面消息线程,就像对话一样。


11


现在我们有了应用程序的蓝图!这为我们的用户界面开了个好头。


我们可以稍后整合后台,并根据需要进一步改进前台。


3. 用 Python 构建后台(API 端点)

在构建后端时,我们必须提示后端的输入和输出模型。


12


对于这个 RAG 框架,我们至少需要 4 个 API 端点才能使其正常工作!与用户界面一样,考虑应用程序有多少不同的核心功能或 "输入/输出 "也很重要。


13


上传 PDF - 我们的想法是,终端用户将从前端上传一个 PDF URL。然后,后台将加载 URL、分割内容并准备嵌入。


以下是我的提示:


14


注意--粘贴文档和附加上下文总是能帮助 Databutton 代理执行得更好。


嵌入文本--RAG 的另一个关键步骤是嵌入文本。我们专门为此设计了一个完整的端点--处理嵌入和在 Databutton 上存储索引。


Databutton 有自己的存储空间,而且 Databutton 代理对其内部 SDK 非常熟悉。在提示时,请确保包含 Langchain 的嵌入相关文档,并要求代理使用自己的 SDK 上传索引数据。


14


执行相似性搜索 - 下一步是根据用户查询执行相似性搜索,并从存储的索引中检索结果。检索结果将与自定义提示(Prompt)一起进一步传递给 LLM,以便从 LLM 创建增强型响应。


这样,我们的最终用户就可以在 Databutton 存储器上查询他们存储的索引数据。如前所述,通过重复使用存储数据并绕过嵌入步骤,我们提高了可重用性并确保了成本效益。


15


使用流增强生成--使用最新的 GPT-4 Omni 模型,人工智能将高效生成最终响应。


下面是用于在 Databutton 中创建此类后台的提示--"我想创建一个简单的聊天机器人式后台。


我想创建一个简单的聊天机器人风格的后台。用户提供输入,Open AI LLM 对其做出响应。响应必须流式传输到前端。


16


4. 集成后台、迭代用户界面和部署应用程序

在将后台(API 路由器)与用户界面集成时,为代理提供清晰简明的提示至关重要。以下是关于使用 Databutton 时的实用技巧和窍门的详细文档 - https://docs.databutton.com/databutton-tips-and-tricks/practical-tips-and-strategies


使用标签将后台与用户界面集成--在提示输入框中使用 "#",所有用户界面组件和 API 端点都会弹出。这有助于自然而然地引导哪个端点必须集成到哪里。


17


用户界面组件级 → 主用户界面页面 - 在 Databutton 中,一个好的做法是在用户界面组件级上工作,然后逐渐将组件拼接成一个完整的应用程序(页面)。这种方法允许代理一次处理少量代码。


18


改进用户界面,使其适应市场并具有吸引力,是构建具有众多功能的复杂应用程序时最关键、最耗时的步骤之一。请注意,这不是一天就能完成的神奇工作,一切都会水到渠成。这是一个 Databutton Agent 与用户之间反复对话的过程。


应用程序部署--在 Databutton 中,部署超级简单!只需点击一下,应用程序就可以通过唯一的 URL 访问(当然,我们可以进一步自定义 URL 或添加自己的域)


19


该应用程序可通过以下链接访问 - https://avra.databutton.app/chat-with-pdfurls


20


文章来源:https://medium.com/@avra42/building-a-saas-ready-rag-powered-chatbot-with-the-gpt-4o-omni-model-00931fb8a22b
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消