ChatGPT的火爆带动AIGC行业近期非常火热,客户对于智能客服、构建企业知识库用于智能问答、写作助手等相关需求非常旺盛;随着ChatGPT推出Retrieval plugin的方案,向量数据库(企业知识库)+ 大语言模型可以快速帮助企业构建专属的chatbot;本服务是对文章《云原生数据仓库AnalyticDB(ADB)+LLM:构建AIGC时代下企业专属Chatbot》的一个开源实现部署。
服务介绍
向量数据库(企业知识库)+ 大语言模型基于ChatGLM-6B,是由清华大学团队开发的是一个开源的、支持中英双语的对话语言模型,基于General Language Model(GLM)架构,具有62亿参数。本文介绍如何通过计算巢快速完成从0到1部署,在30分钟内可以快速构建企业专属聊天机器人(已经支持ChatGLM2-6B模型)。该服务提供名为 langchain+AnalyticDB+ChatGLM WebUI 的Web界面。界面左侧为对话区域,用户输入问题后系统基于知识库文档生成回答并列出出处;右侧为配置面板,支持切换 LLM 对话 和 知识库问答 两种模式,在 知识库问答 模式下可通过下拉框选择已有知识库(如 ADB-PGKB),也可上传文件或文件夹构建新的知识库。
部署该服务分为直接部署一站式企业专属Chatbot服务实例或部署代运维服务实例。
-
一站式企业专属Chatbot:通过对Langchain+ChatGLM2-6B(开源大模型)+AnalyticDB for PostgreSQL的部署,一键搭建企业专属知识库+Chatbot应用(依赖资源: ECS + AnalyticDB for PostgreSQL)。在计算巢中找到一站式企业专属Chatbot运维服务服务卡片(服务ID:
service-ab3bac294c3140649e56,提供商为阿里云计算有限公司),单击正式创建可直接部署服务实例,单击查看实例可查看已有实例。 -
代运维服务:如果部署遇到问题,可通过代运维服务授权运维人员使用大模型服务(免费)。服务部署完成后,可在服务管理页面查看服务卡片,包括服务ID、当前状态(如已上线)及版本号,并可通过下线服务或创建新版本按钮管理服务。
部署一站式企业专属Chatbot
创建流程
-
单击部署链接。
-
在配置界面中,填写服务实例名称、选择地域、配置GPU服务的规格、设置登录密码及访问白名单、设置ADBPG的实例规格和存储及数据库密码。然后单击下一步:确认订单。在创建服务实例页面,设置服务实例名称(如
chatglm_adbpg-blbr,长度不超过64个字符),选择资源组(如 账号全部资源)和地域(如 华北2(北京)),并完成付费类型配置等参数设置。 -
在确认订单页面,确认基础配置和账单信息,然后单击立即创建。在确认订单页面,核实服务实例配置信息,并在价格预览区域查看各资源的按量付费费用明细(包括 ECS 实例和 GPDB 实例),确认无误后提交订单。
-
单击去列表查看,查看服务实例状态。
服务实例创建时间约为20分钟。
管理资源(可选)
-
在服务实例详情页,查看服务实例部署进度,等待服务实例创建完成。整个创建流程约20分钟。
创建过程中包括拉起ECS资源用以部署Retrieval服务,预部署开源大语言模型,拉起ADB-PG实例用以构建企业专属知识库,联通VPC网络,设置安全组等资源并对外提供服务。
-
部署完成后,可通过Endpoint的地址访问软件。服务实例创建完成后,状态显示为已部署。在概览页签的实例信息区域,可获取Endpoint地址用于访问服务。
-
在资源页签中,可查看关联的安全组、AnalyticDB for PostgreSQL实例、VPC、VSW和vSwitch服务器信息。在服务实例详情页,单击资源页签,可查看该服务实例关联的所有云资源及其运行状态、IP 地址、付费方式等信息。对于 ECS 实例,可在操作列单击远程连接进行管理。
-
若创建服务实例时,填写的白名单地址不正确,则可点击安全组ID查看。
单击编辑,可修改访问的地址范围或入群进行支持。更多信息,请参见图说安全组。在安全组规则页面,选择入方向页签,找到目标规则,单击操作列的编辑,修改白名单地址。
开始使用企业专属ChatBot
-
登录计算巢控制台后,在左侧导航栏中,选择,然后单击我使用的服务。
-
找到创建服务实例的服务,单击查看实例所有保有的实例。
-
在概览页点击EndPoint所指向的服务登录Chatbot首页。
说明若发现无法访问,检查是否开通了VPN,关闭VPN。
-
登录后,在配置知识库处,选择新建知识库。在使用模式区域选择知识库问答(而非LLM 对话),然后在配置知识库区域的下拉框中选择已有知识库或单击新建知识库创建新的知识库。
-
选择知识库名称DEMO,单击红框位置,上传文件。在 向知识库中添加文件 区域,文件上传框支持拖拽文件或单击选择文件两种方式上传。
-
单击红色框位置上传并加载。在请选择使用模式区域选择知识库问答,上传文件后单击上传文件并加载知识库完成知识库加载。
-
完成文件上传后,即可开始向知识库进行提问。上传并加载完成后,在左侧对话区域输入问题(如 恩佐),Chatbot 将基于已加载的知识库内容生成回答,并在回答下方列出 出处[1] 至 出处[5] 等引用来源,标注回答内容所引用的具体文件。
代运维服务(可选)
代运维服务是在遇到问题的时候授权服务商进行运维操作。
-
单击部署链接,进入服务实例部署界面,根据界面提示配置参数。在运维配置区域,将运维对象选择为计算巢服务实例,并在计算巢服务实例下拉框中选择目标服务实例(实例ID以
si-开头)。在权限确认区域勾选同意授权服务商获取权限的复选框,在服务条款区域勾选同意《计算巢服务协议》的复选框。 -
单击创建。
创建完成后即可完成对后台运维服务进行授权操作。
常见问题
-
登录ADBPG实例。在服务实例详情页单击资源页签,可查看该实例包含的所有资源。资源列表展示资源ID、状态、所属产品、资源类型、IP地址及付费方式等信息,包括安全组、云原生数据仓库 AnalyticDB PostgreSQL 版实例、交换机、ECS 实例、云盘及专有网络等资源。可通过顶部筛选栏按资源类型或到期时间筛选资源。在 AnalyticDB PostgreSQL 实例的基本信息页面,单击登录数据库。
-
输入创建服务的用户名和密码。
例如数据库账号为
chatglmuser。管控模式选择自由操作。 -
可查询已有知识库和文档向量。
在DMS数据管理控制台中,展开chatglmuser数据库,选择public schema,可看到由LangChain自动创建的两张向量存储表:langchain_pg_collection和langchain_pg_embedding。在DMS SQL控制台中,执行
SELECT * FROM "langchain_pg_collection"和SELECT * FROM "langchain_pg_embedding"查询语句,可查看知识库集合信息及文档的向量嵌入数据,其中langchain_pg_embedding表包含uuid、collection_id、embedding等字段,embedding列存储浮点数向量数组。