您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

使用LangChain和DeepInfra构建客户支持聊天机器人的操作指南

时间:2023-09-18 10:26:33  来源:51CTO  作者:

译者 | 布加迪

审校 | 重楼

您可能在日常的网上互动中遇到过聊天机器人,但有没有考虑过底层为这些数字助手提供支持的技术?聊天机器人(尤其在客户支持领域)已经成为现代企业的一个主力工具,在提高效率的同时改进了客户服务。今天,我们将深入研究LangChAIn和DeepInfra如何使这种聊天机器人变得响应更迅即、更高效。

聊天机器人的基本组成部分

不妨先了解基础知识——聊天机器人的核心组件有哪些?在开发一个响应迅即又高效的聊天机器人时,三个要素必不可少:模型、提示模板(Prompt Template)和记忆。

模型代表了聊天机器人背后的AI大脑,它负责理解和响应用户输入。提示模板引导聊天机器人的响应,确保它们的回复紧扣对话主题。最后,记忆保持交互的状态,使聊天机器人能够记住过去的对话,并利用它们来理解当前对话的上下文。

操作指南

现在开始动手吧。我们将逐步介绍使用LangChain和DeepInfra构建客户支持聊天机器人的过程。我们假设这个聊天机器人在一家在线服装店“工作”,可以帮助顾客为他们挑选衣服。

  • 获取DeepInfra API密钥

DeepInfra拥有其简单的API和可扩展的生产级基础设施,使您可以轻松运行主流的AI模型。首先,您需要使用该链接获取DeepInfra API密钥,以便与其服务进行交互。一旦有了密钥,您就可以在环境中设置API令牌,如下所示:

from getpass import getpass
import os
# Set the DeepInfra API token
DEEPINFRA_API_TOKEN = getpass()
os.environ["DEEPINFRA_API_TOKEN"] = DEEPINFRA_API_TOKEN
  • 建立LangChain和DeepInfra环境

接下来,您需要创建LangChain和DeepInfra环境。导入必要的组件,并为DeepInfra模型创建实例。比如说,您可以使用像“databricks/dolly-v2-12b”这样的模型:

from langchain import ConversationChain, LLMChain, PromptTemplate
from langchain.memory import ConversationBufferWindowMemory
from langchain.llms import DeepInfra
# Create the DeepInfra instance
llm = DeepInfra(model_id="databricks/dolly-v2-12b")
llm.model_kwargs = {'temperature': 0.7, 'repetition_penalty': 1.2, 'max_new_tokens': 250, 'top_p': 0.9}
  • 注意:为聊天机器人选择和部署合适的模型

您可以为LLM使用许多不同的模型。这个例子展示了如何使用databricks/dolly-v2-12b模型,但在DeepInfra上还有许多其他模型可供使用。由于选择众多,您可能希望使用像AIModels这样的工具,希望找到可与LangChain结合使用的合适的LLM。您可以随意搜索、过滤和筛选AI模型,以便找到最适合您项目的模型。查看DeepInfra页面,即可找到可供选择的模型。

  • 创建提示模板以指导聊天机器人的响应

现在,是时候定义提示模板来指导聊天机器人的响应了。这将确保聊天机器人的响应与上下文和用户的输入保持一致。我尝试了几个不同的模板,要得到一个完美的模板并非易事。设计正确提示的过程名为提示工程。最终,我能够重复使用我在Pinecone网站上找到的一个模板。

template = """Given the following user prompt and conversation log, formulate a question that would be the most relevant to provide the user with an answer from a knowledge base.
 You should follow the following rules when generating and answer:
 - Always prioritize the user prompt over the conversation log.
 - Ignore any conversation log that is not directly related to the user prompt.
 - Only attempt to answer if a question was posed.
 - The question should be a single sentence.
 - You should remove any punctuation from the question.
 - You should remove any words that are not relevant to the question.
 - If you are unable to formulate a question, respond with the same USER PROMPT you got.

Conversation log: {history}
USER PROMPT: {human_input}
Your response:
"""

prompt = PromptTemplate(
 input_variables=["history", "human_input"], 
 template=template
)
  • 初始化聊天机器人,并设置记忆

准备好模型和提示模板后,下一步是初始化聊天机器人,并设置记忆,以保持交互的状态。

# Now using DeepInfra with the LLMChain
llm_chain = LLMChain(
llm=llm,
prompt=prompt,
verbose=True,
memory=ConversationBufferWindowMemory(k=2),
)
  • 运行聊天机器人并与之交互

最后,您现在可以与聊天机器人进行交互了。不妨看一个例子:

output = llm_chain.predict(human_input="Hello! What clothes do you recommend I buy to rebuild my summer wardrobe")
print(output)

因而生成的响应推荐一些衣服:

In the context of summer wardrobe recommendations, you should buy your clothes from the following list:
- V-neck T-shirts
- Tank Tops
- Solid Color Swim Shorts
- Swim Shorts
- Skirts
- Cardigans
- Sandals

聊天机器人中的记忆概念

记忆在聊天机器人中起着至关重要的作用。它有助于维持聊天机器人交互中的上下文和历史记录,从而使聊天机器人能够回忆过去的对话,并理解当前对话的上下文。这种能力对于创造更人性化的交互从而改善用户体验至关重要。记忆方面的话题有很多文章值得深入研究,建议您看看这篇指南,以了解更多的信息。

更多参考资料和示例

为了进一步理解,我建议查看Langchain网站上的ChatGPT Clone笔记本、Conversation Memory笔记本和Conversation Agent笔记本等资源。这些资源更深入地介绍了记忆概念,记忆关键概念和记忆示例提供了实用指导。

您还应该查看AIModels.fyi上的其他Langchain指南。

DeepInfra还为其平台提供了完备的文档,甚至还有一个博客,您可以获取详细的帖子、指南和文章。

结论

使用LangChain和DeepInfra构建面向客户支持的聊天机器人最初可能看起来很复杂,但一旦您了解了基本组件和步骤,整个过程就会变得简单得多。利用这些技术可以显著改进客户服务,提高业务效率,并提高总体客户满意度。将来,这些技术会变得真正大有潜力,预计它们会继续发展,并影响客户服务领域。

原文标题:Building a Customer Support Chatbot with LangChain and DeepInfra: A Step-by-Step Guide,作者:Mike Young

 



Tags:LangChain   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
一文解析如何基于 LangChain 构建 LLM 应用程序
Hello folks,我是 Luga,今天我们继续来聊一下人工智能(AI)生态领域相关的技术 - LangChain ,本文将继续聚焦在针对 LangChain 的技术进行剖析,使得大家能够了解 LangChain 实现...【详细内容】
2024-03-07  Search: LangChain  点击:(31)  评论:(0)  加入收藏
LangChain与Redis合作搞事情!创建提高财务文档分析准确性的工具
作者 | Tannista编译 | 星璇出品 | 51CTO技术栈(微信号:blog51cto)让ChatGPT准确回答来自证券交易委员会文件的复杂问题,可谓是到处都是坑。先进人工智能模型的出现彻底改变了自...【详细内容】
2023-12-27  Search: LangChain  点击:(110)  评论:(0)  加入收藏
如何使用LangChain和OpenAI API分析文档?
译者 | 布加迪审校 | 重楼从文档和数据中提取洞察力对于您做出明智的决策至关重要。然而在处理敏感信息时,会出现隐私问题。结合使用LangChain与OpenAI API,您就可以分析本地...【详细内容】
2023-11-23  Search: LangChain  点击:(201)  评论:(0)  加入收藏
如何使用LangChain、RStudio和足够的Python生成人工智能
译者 | 李睿审校 | 重楼LangChain是当今最热门的开发平台之一,用于创建使用生成式人工智能的应用程序,但它只适用于Python和JavaScript。对于想要使用LangChain的R程序员,该怎...【详细内容】
2023-11-21  Search: LangChain  点击:(229)  评论:(0)  加入收藏
LLMs应用框架:LangChain端到端语言模型
在当今数字化时代,语言处理技术的重要性日益凸显。大语言模型(LLMs)作为其中的重要分支,已经在多个领域取得了显著的进展。然而,如何将这些模型应用到实际场景中,实现端到端的自动...【详细内容】
2023-11-16  Search: LangChain  点击:(167)  评论:(0)  加入收藏
LangChain大模型应用开发指南-AI大模型衍生的新能力
今天我将为大家介绍LangChain基于AI大模型衍生的新能力,Model I/O、Retrieval、和Memory。组件总览 大家看完今天的文章后,可以回头再来看下LangChain的组件与架构图,就能从全...【详细内容】
2023-10-07  Search: LangChain  点击:(24)  评论:(0)  加入收藏
LangChain实战:大语言模型理解代码库
作者 | 崔皓审校 | 重楼摘要随着LLM(大语言模型)的发展,最近流行起利用大语言模型对源代码进行分析的潮流。网络博主纷纷针对GitHub Co-Pilot、Code Interpreter、Codium和Code...【详细内容】
2023-09-20  Search: LangChain  点击:(360)  评论:(0)  加入收藏
使用LangChain和DeepInfra构建客户支持聊天机器人的操作指南
译者 | 布加迪审校 | 重楼您可能在日常的网上互动中遇到过聊天机器人,但有没有考虑过底层为这些数字助手提供支持的技术?聊天机器人(尤其在客户支持领域)已经成为现代企业的一个...【详细内容】
2023-09-18  Search: LangChain  点击:(204)  评论:(0)  加入收藏
非程序员小白版本地部署ChatGLM2-6B +LangChain 个人知识库模型
ChatGLM2-6B 部署我这次采用的是本地部署,机器是 Macbook pro M1 64G进入你的系统“终端”# 键盘:command + 空格键 # 搜索“终端”,点击“打开”,进入“终端”界面 下载源码#...【详细内容】
2023-07-31  Search: LangChain  点击:(837)  评论:(0)  加入收藏
把c跑起来的三个方法
使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来...【详细内容】
2023-07-04  Search: LangChain  点击:(150)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(5)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(12)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(8)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(10)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(8)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条