【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的简单介绍      

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

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

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

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 ChatLiteLLM

from 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 provides
                            customers with the most comfortable and
                            supportive 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()

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

02-08 07:02