【Langchain Agent研究】SalesGPT项目介绍(一)

  【2024最全最细LangChain教程-13】Agent智能体(二)-CSDN博客

        之前我们介绍了langchain的agent,其实不难看出,agent是更高级的chain,可以进行决策分析、可以使用工具,今天我们开始开启一些更高阶的课程,来看一下多Agent构成的相对复杂的系统,而且我们开始研究一下github上高星的项目,看看这些项目的设计思想、工程结构、代码实现和应用场景,对于我们自己构造复杂多Agent系统大有裨益。

        我们首先来看一下SalesGPT这个项目,项目的git地址如下:GitHub - jerry1900/SalesGPT: Context-aware AI Sales Agent to automate sales outreach. 

        我自己也fork了这个项目,所以大家直接去我的github上看这个项目就行。我关注和学习这个项目,有两个原因:

1. 我认为应用大模型在营销上,具有巨大的想象空间和应用场景,这个虽然现在不是热点,但是未来一定是重要的人工智能应用领域

2. 从技术上学习多agent部署、对话阶段判断、提示词模板转换等技术,这些技术在其他项目里也会有应用

1. SalesGPT的简单介绍      

       这个项目想做的事情并不复杂,就是利用大模型技术打造一个可以和用户交流、向用户推销产品的机器人。这个机器人把销售过程分为如下步骤,下面是这些步骤和样例内容,如下图所示:

Introduction: 您好,我是来自XYZ公司的ChatGPT。我们是一家专注于提供创新解决方案的公司。

Qualification: 您好,我想确认一下您是否是负责公司决策的相关人员?

Value Proposition: 我们的产品/服务可以帮助您提高效率,降低成本,并提升您的业务竞争力。

Needs Analysis: 您认为目前您的业务中存在哪些主要挑战或问题?

Solution Presentation: 基于您提到的挑战,我们的产品/服务可以提供以下解决方案...

Objection Handling: 如果您有任何对我们产品/服务的顾虑或疑问,我很乐意解答并提供更多信息。

Close: 针对我们讨论的内容,您是否有兴趣进一步了解我们的产品/服务?如果是的话,我们可以安排一个演示或提供更多资料。

End Conversation: 如果您目前没有兴趣或时间进一步了解,我完全理解。感谢您的时间,如果您未来有任何问题或需要,随时联系我们。祝您一切顺利。

        这个项目的核心思想,是要依靠大模型作为判断和推理引擎,通过设置多个agent,判断和用户交流的状态以确定不同的销售阶段给大模型不同的提示词策略,这个项目的整体核心流程如下图所示:

        

2. 业务流程介绍

        2.1 Seed the Agent

         初始化一个agent,设置启动agent所必须的数据,比如销售产品信息、销售人员设置等信息

        2.2 Autonomous Sales Agent

         启动agent开始决策判断,决定下一步的动作,是调用工具?还是将结果呈现给用户?还是做其他的操作

        2.3 Human Input

        接收用户的输入,并把用户和机器人的输出都放到memory里。

        2.4 Stage Analyzer

        这一步是我最感兴趣的,我想知道这个Agent是基于什么来判断不同的销售l阶段。这个在任何其他场景里都极有用处,比如我之前构造的旅游聊天机器人,如果可以判断出他对某个地方特别感兴趣,就可以给他推销一下旅游产品广告了,这个非常有用。

        2.5 Adjust agent’s prompt based on conversation stages

        这个也是我感兴趣的地方,就是他可以通过不同的对话阶段调整agent使用的模板,我不知道他这个是怎么去实现的,这个也是我想学习的地方。

3. 项目部署和安装

        项目的部署和安装其实并不太复杂,项目的调用代码也很简答,但是这些不是最重要的,最重要的是要我们解构一下这个项目,看看里面真正的逻辑是什么样的,尤其是阶段判断和提示词调整两块的东西是怎么做的。

        项目调用代码:

import os
from salesgpt.agents import SalesGPT
from langchain_community.chat_models import ChatLiteLLMfrom dotenv import load_dotenv
load_dotenv() # make sure you have .env file with your API keys, eg., OPENAI_API_KEY=sk-xxx# select your model - we support 50+ LLMs via LiteLLM https://docs.litellm.ai/docs/providers
llm = ChatLiteLLM(temperature=0.4, model_name="gpt-3.5-turbo") sales_agent = SalesGPT.from_llm(llm, use_tools=True, verbose=False,product_catalog = "examples/sample_product_catalog.txt",salesperson_name="Ted Lasso",salesperson_role="Sales Representative",company_name="Sleep Haven",company_business='''Sleep Haven is a premium mattress company that providescustomers with the most comfortable andsupportive sleeping experience possible. We offer a range of high-quality mattresses,pillows, and bedding accessories that are designed to meet the unique needs of our customers.''')
sales_agent.seed_agent()
sales_agent.determine_conversation_stage() # optional for demonstration, built into the prompt
# agent 
sales_agent.step()# user
user_input = input('Your response: ') # Yea, sure
sales_agent.human_step(user_input)# agent
sales_agent.determine_conversation_stage() # optional for demonstration, built into the prompt
sales_agent.step()# user
user_input = input('Your response: ') # What pricing do you have for your mattresses?
sales_agent.human_step(user_input)# agent
sales_agent.determine_conversation_stage() # optional for demonstration, built into the prompt
sales_agent.step()

        我们从下节课开始,先不去部署和调用他的代码,我们主要做的是把这个项目的工程结构和核心代码进行拆解,然后我们模仿他的结构和核心原理,自己构造一个销售机器人应用于我们自己的旅游聊天机器人里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/672954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】单变量线性回归

文章目录 线性回归模型(linear regression model)损失/代价函数(cost function)——均方误差(mean squared error)梯度下降算法(gradient descent algorithm)参数(parame…

Nginx限流设置

1.反向代理(建议先看正向代理,反向代理则是同样你要与对方服务器建立连接,但是,代理服务器和目标服务器在一个LAN下,所以我们需要与代理服务器先建交,再由他获取与目标服务器的交互,好比一个带刀侍卫守护着目标服务器) 屏蔽目标服务器的真实地址,相对安全性较好&am…

ubuntu下修改hosts读写权限

ubuntu下修改hosts文件的操作: 由于需要在hosts文件下添加ip地址信息,但是初始情况下系统该文件为只读权限无法修改,具体操作如下所示; 1.cd到系统etc目录下,执行如下命令,此时会提示输入密码,直接输入回…

PgSQL技术内幕 - case when表达式实现机制

PgSQL技术内幕 - case when表达式实现机制 CASE表达式如同 C语言中的if/else语句一样,为SQL添加了条件逻辑处理能力,可以根据不同条件返回不同结果。PgSQL支持两种语法:简单表达式和搜索表达式。 1、搜索表达式 语法如下: CASE WH…

掼蛋牌桌上的默契-牌语解读篇

掼蛋不仅仅是个人战斗,也是和队友之间的默契与配合的战斗。长时间合作的玩家间往往能够通过一些特定的出牌方式传递信息,这些“暗号”或“牌语”成为了他们都顺利夺取胜利的秘密武器。 这些技巧都需要在日常实践中留心捕捉,用心理解和领悟&am…

1978-2022年各省家庭恩格尔系数(分城镇、农村)

1978-2022年各省家庭恩格尔系数(分城镇、农村) 1、时间:1978-2022年 2、指标:城镇家庭恩格尔系数、农村家庭恩格尔系数 3、来源:统计年鉴、省统计公报 4、范围:31省 5、指标解释:恩格尔系数…

springboot整合rabbitmq,及各类型交换机详解

RabbitMQ交换机: 一.交换机的作用 如果直接发送信息给一条队列,而这一消息需要多个队列的的多个消费者共同执行,可此时只会有一个队列的一个消费者接收该消息并处理,其他队列的消费者无法获取消息并执行。所以此时就需要交换机接…

如何使用phpStudy搭建网站并结合内网穿透远程访问本地站点

文章目录 [toc]使用工具1. 本地搭建web网站1.1 下载phpstudy后解压并安装1.2 打开默认站点,测试1.3 下载静态演示站点1.4 打开站点根目录1.5 复制演示站点到站网根目录1.6 在浏览器中,查看演示效果。 2. 将本地web网站发布到公网2.1 安装cpolar内网穿透2…

飞马座卫星

1960年代马歇尔太空飞行中心的历史显然与建造土星五号月球火箭有关。然而,鲜为人知的是该中心在设计科学有效载荷方面的早期工作。 Fairchild 技术人员正在检查扩展的 Pegasus 流星体探测表面。Pegasus 由马里兰州黑格斯敦的 Fairchild Stratos Corporation 通过马歇…

Verilog刷题笔记22

题目: Build a priority encoder for 8-bit inputs. Given an 8-bit vector, the output should report the first (least significant) bit in the vector that is 1. Report zero if the input vector has no bits that are high. For example, the input 8’b100…

springboot164党员教育和管理系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

gh0st远程控制——客户端界面编写(四)

本节任务点 ◉ 为所有菜单项添加测试响应函数 ◉ 添加删除列表指定条目的功能 为所有菜单项添加测试响应函数: 添加菜单响应函数: void CPCRemoteDlg::OnOnlineCmd() {if (TEST_MODE) {MessageBox("终端管理界面");} }void CPCRemoteDlg:…

Linux 研究文件描述符fd的分配规则

目标:研究fd的分配规则 方式:做实验 我们写一段代码,需要实现的功能如下:利用系统调用接口实现读入字符,并且把读入的字符打印在屏幕上。 实验1 我们需要用到read()函数。 read是系统调用接口,头文件和…

矩阵的正定(positive definite)性质的作用

1. 定义 注意,本文中正定和半正定矩阵不要求是对称或Hermite的。 2. 性质 3. 作用 (1)Axb直接法求解 cholesky实对称正定矩阵求解复共轭对称正定矩阵求解LDL实对称非正定矩阵求解复共轭对称非正定矩阵求解复对称矩阵求解LU实非对称矩阵求解…

假期作业5

TCP和UDP区别 TCP ----稳定 1、提供面向连接的,可靠的数据传输服务; 2、传输过程中,数据无误、数据无丢失、数据无失序、数据无重复; 3、数据传输效率低,耗费资源多; 4、数据收发是不同步的; U…

APIfox自动化编排场景(二)

测试流程控制条件 你可以在测试场景中新增流程控制条件(循环、判断、等待、分组)等。进一步满足了更复杂的测试场景/流程配置的使用,最终借助自动化测试功能解决复杂场景的测试工作。 分组​ 当测试流程中多个步骤存在相关联关系时&#xf…

相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

作业2.7

一、填空题 1、在下列程序的空格处填上适当的字句&#xff0c;使输出为&#xff1a;0&#xff0c;2&#xff0c;10。 #include <iostream> #include <math.h> class Magic {double x; public: Magic(double d0.00):x(fabs(d)) {} Magic operator(__const Magic&…

2024年2月11日(星期天)骑行金色螳川

2024年2月11日 (星期天&#xff0c;年初二) 骑行金色螳川(赏油菜花&#xff09;&#xff0c;早8:30到9:00&#xff0c; 大观公园门囗集合&#xff0c;9:30准时出发【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点:大观公园门囗集合 &#xff0c;家…

Redis 命令大全

文章目录 启动与连接Key&#xff08;键&#xff09;相关命令String&#xff08;字符串&#xff09;Hash&#xff08;哈希&#xff09;List&#xff08;列表&#xff09;Set&#xff08;集合&#xff09;Sorted Set&#xff08;有序集合&#xff09;其他常见命令HyperLogLog&…