基于LLM+Tair构建具备私域知识的专属Chatbot

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 MongoDB,通用型 2核4GB
简介: ChatGPT因为之前的一个故障,使我们得以一窥内部架构,其使用了Redis作为ChatGPT的Cache系统。Tair是企业版的内存数据库系统,兼容Redis生态,并且也提供了向量检索的能力,是阿里云上Redis的平替。本服务基于开源的langchain-ChatGLM实现,借助Tair的高性能内存引擎和向量索引能力,实现了“企业私域数据”的理解问答,以帮助企业快速构建专属Chatbot服务;并实现了对用户长Session聊天历史记录缓存,以摆脱LLM的Token数限制。模型ChatGLM-6B是由清华大学团队开发的是一个开源的、支持中英双语的对话语言模型,请自觉遵守用户协议、法律法规等。

Tair+大模型

OpenAI / ChatGPT之前出过一个故障(因为redis-py的问题,导致用户可以看到其他用户的聊天信息),使得大家知道了ChatGPT也深度使用了Redis。Tair是阿里云的企业版内存数据库,100%兼容Redis生态,可平替Redis,并且提供了灵活、易用的向量检索能力,支持embedding向量的实时读写,并且具备高性能、低门槛等优势。通过向量检索,可以从用户的会话历史和私有知识库中,找到跟问题相关度最高的内容,构建出更加精确的提示词,再结合LLM的已有知识、推断、概括等能力,使模型能够产出更准确的回答。Tair已经整合进了langchain、llama_index等热门开源项目,开箱即用,助力用户构建具备私域知识库的Chatbot。

以上两种使用方式可以组合使用,并不相互冲突。

服务介绍

集成计算巢,通过对Langchain+ChatGLM + Tair 快速部署,可以一键拉起定制化Chatbot服务,主要实现了“企业私域数据”的理解问答以及带Session会话两个功能。

依赖资源:ECS + 云原生内存数据库Tair

截屏2023-06-19 上午11.19.02.png

一键拉起Chatbot服务

1、访问 创建服务实例页面,https://computenest.console.aliyun.com/user/cn-hangzhou/serviceInstanceCreate?ServiceId=service-e0d7fd4e157d49119f47

有任何疑问可以加入文章下方提供的钉钉支持群。

2、创建服务实例

  • 资源组和地域:
  • 地域:目前支持北京、张家口、杭州、上海、深圳
  • 付费类型配置:
  • 付费类型:分为按量付费、包年包月,设定后ECS与Tair实例的付费类型相同
  • ECS实例配置
  • 实例类型:对应ECS规格
  • 实例密码:登录ECS实例的密码
  • 模型配置:
  • Tair:

3、确认订单及创建

         点击下方的【立即创建】

实例管理

1、点击【服务实例管理】可以查看正在创建的实例,整个创建周期大概在30min左右,主要耗时在下载ChatGLM-6B模型。

image.png

2、点击上方的红色框进入实例的【资源】界面

服务首先会自动创建VPC、VSwitch、安全组基本资源,然后会创建指定规格的Tair实例,最后会创建ECS实例,创建ECS完成后,会下载您指定ChatGLM-6B模型。

点击图中的相关链接可以跳转到不同的资源详情界面查询详情信息。

使用Chatbot服务

待实例创建完成后,便可以访问该服务了。

1、获取服务登录域名,

如下图所示,Endpoint即是外网的登录域名。

image.png

2、登录专属Chatbot服务。

需要输入创建时模型配置模块的软件登录名及登录密码

3、服务主页面


4、知识库问答

将用户"私域数据"存储在Tair中,利用Tair向量检索能力,检索出私域数据中和用户问题相关性最强的几条数据,然后prompt提交给大模型。

注:目前仅支持txt文本格式文件

截屏2023-06-26 下午6.12.52.png

5、带Session的对话

将用户的历史问题编码成向量存储Tair中,可以让大模型拥有短暂的记忆。本服务中实现的Demo所有Session都存储在一个索引中,且5分钟后没有任何访问会自动删除索引数据,如果有定制化需求,可以为每个用户分配不同的索引,该功能目前会持续探索。Tair本身是Schema-Free,使用便捷、灵活,无需进行复杂的配置,相信我们可以一起探索更多的使用场景,有任何需求或疑问请加入下放提供的钉钉支持群。

常见问题

1、快速登录Tair实例,运行向量相关命令?

向量相关命令请参考:https://help.aliyun.com/document_detail/453885.html

可以使用redis-cli登录实例,在部署大模型的ECS机器上已经安装好。

在上文的【实例管理】模块中有【资源】,点击ECS的资源ID,可以进入ECS实例详情页面。

在首次登录ECS机器是需要设置白名单安全组,根据图中提示,复制图中IP。

在【安全组】页面,点击【安全组ID】进入页面后点击【快速添加】,端口范围设置SSH(22),授权对象拷贝刚才复制的IP,再次重新登录实例即可

执行如下命令便可以登录Tair实例

2、Session索引过期删除机制?

使用了Tair中的expire/ttl机制,在创建完向量索引后,直接对向量索引设置 expire,每次有查询后,重新设置expire。

如果对Tair缓存大模型Session机制感兴趣,可以加入支持群,我们一起探索更多的使用场景。

支持群

  • 您在使用时有任何问题可以搜钉钉群:31520029139
  • 钉钉群.jpg
相关实践学习
ECS云服务器新手上路
本实验会自动创建一台ECS实例。首先,远程登陆ECS实例,并部署应用。然后,登陆管理控制台,并对这台ECS实例进行管理操作。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
监控 数据处理 索引
整合LlamaIndex与LangChain构建高级的查询处理系统
该文阐述了如何结合LlamaIndex和LangChain构建一个扩展性和定制性强的代理RAG应用。LlamaIndex擅长智能搜索,LangChain提供跨平台兼容性。代理RAG允许大型语言模型访问多个查询引擎,增强决策能力和多样化回答。文章通过示例代码展示了如何设置LLM、嵌入模型、LlamaIndex索引及查询引擎,并将它们转换为LangChain兼容的工具,实现高效、精准的问题解答。通过多代理协作,系统能处理复杂查询,提高答案质量和相关性。
79 0
|
2月前
|
弹性计算 自然语言处理 开发工具
基于阿里云向量检索 Milvus 版和 LangChain 快速构建 LLM 问答系统
本文介绍如何通过整合阿里云Milvus、阿里云DashScope Embedding模型与阿里云PAI(EAS)模型服务,构建一个由LLM(大型语言模型)驱动的问题解答应用,并着重演示了如何搭建基于这些技术的RAG对话系统。
|
19天前
|
存储 人工智能 自然语言处理
LangChain让LLM带上记忆
最近两年,我们见识了“百模大战”,领略到了大型语言模型(LLM)的风采,但它们也存在一个显著的缺陷:没有记忆。在对话中,无法记住上下文的 LLM 常常会让用户感到困扰。本文探讨如何利用 LangChain,快速为 LLM 添加记忆能力,提升对话体验。
49618 6
LangChain让LLM带上记忆
|
17天前
|
人工智能 自然语言处理 API
深入浅出 LangChain 与智能 Agent:构建下一代 AI 助手
深入浅出 LangChain 与智能 Agent:构建下一代 AI 助手
130 0
深入浅出 LangChain 与智能 Agent:构建下一代 AI 助手
|
3天前
|
存储 人工智能 机器人
LangChain结合LLM做私有化文档搜索
我们知道LLM(大语言模型)的底模是基于已经过期的公开数据训练出来的,对于新的知识或者私有化的数据LLM一般无法作答,此时LLM会出现“幻觉”。针对“幻觉”问题,一般的解决方案是采用RAG做检索增强。
LangChain结合LLM做私有化文档搜索
|
12天前
|
数据采集 分布式计算 大数据
森马基于MaxCompute+Hologres+DataWorks构建数据中台
本次案例主要分享森马集团面对多年自建的多套数仓产品体系,通过阿里云MaxCompute+Hologres+DataWorks统一数仓平台,保障数据生产稳定性与数据质量,减少ETL链路及计算时间,每年数仓整体费用从300多万降到180万。
|
2月前
|
存储 自然语言处理 算法
OpenIM Bot: 用LLM构建企业专属的智能客服
OpenIM Bot 通过结合LLM和RAG技术,构建企业专属的智能客服系统。该系统通过优化向量存储、混合检索和查询分析,解决了LLM的幻觉、新鲜度、token长度和数据安全问题,提升了用户体验。向量存储和预处理步骤确保文档高质量,而混合检索结合文本和语义搜索,增强了检索结果的准确性。通过迭代优化,OpenIM Bot 提供了高效、智能的支持服务,减轻了支持团队的负担,提升了问题解决效率。
365 3
OpenIM Bot: 用LLM构建企业专属的智能客服
|
2月前
|
机器学习/深度学习 人工智能
【LangChain系列】第九篇:LLM 应用评估简介及实践
【5月更文挑战第23天】本文探讨了如何评估复杂且精密的语言模型(LLMs)应用。通过创建QA应用程序,如使用GPT-3.5-Turbo模型,然后构建测试数据,包括手动创建和使用LLM生成示例。接着,通过手动评估、调试及LLM辅助评估来衡量性能。手动评估借助langchain.debug工具提供执行细节,而QAEvalChain则利用LLM的语义理解能力进行评分。这些方法有助于优化和提升LLM应用程序的准确性和效率。
315 8
|
2月前
|
存储 安全 机器人
【LLM】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
【5月更文挑战第13天】智能学生顾问构建技术学习(Lyrz SDK + OpenAI API )
71 1
|
2月前
|
存储 人工智能 API
【AIGC】基于检索增强技术(RAG)构建大语言模型(LLM)应用程序
【5月更文挑战第7天】基于检索增强技术(RAG)构建大语言模型(LLM)应用程序实践
324 1