Type something to search...
使用 Python 免费构建营销专家聊天机器人!

使用 Python 免费构建营销专家聊天机器人!

使用 Python 和 DSPY 构建的营销聊天机器人

构建您的营销专家助手,专门用于回答您所有的营销相关问题,使用 Python 和 DSPy。

还不是会员?请随意访问完整文章 here

营销是影响产品成败的关键因素之一。除了影响销售增长、品牌建设和客户获取外,它还影响客户忠诚度。

了解营销对任何项目的好处和重要性。我们将创建一个营销专家,帮助您解决所有营销相关的问题。

那么,让我们开始吧。

以下是本文的目录,供您参考。

· 项目工作流程· 收集前置条件(Google API 密钥)· 安装包 ∘ DSPy· 编写代码 ∘ 代码结构 ∘ DSPy 模型配置(gemini-flash-1.5) ∘ DSPy 签名 ∘ CoT 类(使用 DSPy 链式思维模块) ∘ CoT 对象 ∘ 使用聊天机器人· 完整代码库· 结论· 作者的话

那么,让我们开始吧。

项目工作流程

在我们实际开始项目工作之前,先让我们明确一下我们营销聊天机器人的工作流程。

收集先决条件(Google API 密钥)

让我们收集构建项目所需的一些要求。

在这个项目中,我们将使用 Google 的 gemini-1.5-flash 模型作为我们的基础 LLM,为此,我们需要 Google 的 API 密钥来查询模型并获取其响应。

要获取您自己的免费 Google API 密钥,只需按照以下两个简单步骤操作,

  1. 访问 https://aistudio.google.com/app/apikey
  2. 登录您的 Google 账户后,点击 Create API key
  3. 选择任何一个现有的 Google Cloud 项目。
  4. 点击 Create API key in existing project
  5. 完成!保存此 API 密钥以备后用。

安装包

现在,让我们安装一些将在项目中使用的包。这些包是,-

DSPy

DSPy 是一个用于以真正声明性和模块化方式编程基础模型(包括大型语言模型和检索模型)的框架。它附带了一个自动编译器,该编译器指导 LLM 执行这些声明性步骤,最终使我们能够专注于高层逻辑,而将语言模型的微调交给专门的优化器。

您可以在此处阅读更多关于此框架的信息 这里

我们将使用该包中的一个重要方法,称为 Chain Of Thought。它的作用是将查询修改为一个结构良好的提示,包含 LM 模型回答问题所需的所有指令和上下文。

要下载该包,请在终端中使用以下命令。

pip install dspy==0.1.5

编写代码

现在,我们已经具备了所有必要的前提条件和包,可以开始真正的编码了。所以,让我们开始吧。

代码结构

让我们首先通过以下插图来理解代码的结构。

此插图提到了一个类 CoT,它将作为我们的营销专家聊天机器人,回答我们所有的查询。

该类包含两个方法 __init__()forward()。构造函数用于初始化 DSPy 包的 Chain Of Thought 模块。

Chain Of Thought 模块本身需要一个 DSPy 签名,其中包含我们的初始提示,即我们希望提供给模型的所有高级指令。

因此,在理解了结构之后,我们知道要按什么顺序进行。

DSPy 模型配置(gemini-flash-1.5) -> DSPy 签名 -> CoT 类(带有 DSPy Chain Of Thought 模块)-> CoT 对象 -> 使用聊天机器人

现在让我们按顺序完成这些步骤,-

DSPy 模型配置 (gemini-flash-1.5)

在使用模型之前,我们需要将语言模型配置为 dspy 设置,并且为此,我们将需要之前创建的 Google API 密钥。

要将 dspy 与模型配置,

import dspy

gemini = dspy.Google(model='gemini-1.5-flash', api_key="<YOUR_GOOGLE_API_KEY>", temperature=0.3)
dspy.settings.configure(lm=gemini)

这里,你需要将 <YOUR_GOOGLE_API_KEY> 替换为你的 API 密钥。此外,我将温度设置为 0.3,表示稍微增加一些创造力。你可以尝试不同的值,选择从 0 到 1 之间的任何值(创造力随值增大而减少)。

DSPy 签名

DSPy 签名包含高级指令,这些指令是你希望提供给模型的,基于这些指令,DSPy 会定制和优化语言模型以适应使用场景。

要定义一个 DSPy 签名,

## 定义继承自 dspy.Signature 的 MarketingChatbot 类
class MarketingChatbot(dspy.Signature):
  """你是一个营销聊天机器人,主要目标是回答用户的营销问题。

  你可能会收到提示和响应的历史记录,回答问题时请使用这些历史记录作为上下文。

  你的所有回答都必须严格限定在营销领域。

  如果查询中包含与营销无关的内容,你必须礼貌地拒绝回答。
  """

  # 所有的输入和输出变量,以及它们的描述。
  history = dspy.InputField(desc="提示和响应的历史记录")
  query = dspy.InputField(desc="用户的查询。")
  answer = dspy.OutputField(desc="对用户查询的回答。")

MarketingChatbot 类继承了 dspy.Signature 的所有方法和对象,用于作为签名。

在这里,定义在 """ """ 之间的类描述包括根据使用场景定制和优化语言模型参数的指令。你可以更改此描述以查看模型的响应。

在这里,我们声明了三个变量,分别是 historyqueryanswer。用户可能会对聊天机器人生成的响应提出反问,因此模型需要有先前消息的上下文,这一目的由 history 变量实现。query 变量用于记录用户提出的任何问题或查询,而 answer 则包含模型的响应。

所有输入变量都是 dspy.InputField() 的对象,所有输出变量都应是 dspy.OutputField() 的对象。

CoT 类(带有 DSPy 链式思维模块)

现在,我们已经将基础 LM 模型配置为 DSPy 设置,并创建了带有初始提示或指令的签名,接下来可以创建初始化链式思维模块并处理所有输入和输出变量的类。

定义一个 CoT 类,

import dspy

## The CoT class
class CoT(dspy.Module):

  # The constructor
  def __init__(self):
    super().__init__()
    self.program = dspy.ChainOfThought(MarketingChatbot)
  
  # The method used for calling the model.
  def forward(self, history, query):
    return self.program(history=history, query=query)

这里,类 CoT 继承了 dspy.Module,这有助于访问类中定义的所有基础方法。

构造函数初始化 dspy.ChainOfThought() 方法,使用我们之前定义的签名。传递的签名确保在调用函数时传递所有输入变量,并给出结构化传递的用户查询和优化模型参数的指令。它返回基础 LM 的响应(answer)。

类中定义的 forward 方法处理我们之前定义的所有输入变量,并返回链式思维模块的程序对象的响应,该响应包含基础 LM 模型的响应。

CoT 对象

至此,我们已经完成了所有的工作,只需要创建一个 CoT 类的对象并开始查询它。

对象的创建通常很简单,没有复杂的操作。

## 初始化 CoT 类的对象
marketingChatbot = CoT()

使用聊天机器人

要使用聊天机器人,我们只需要调用 marketingChatbot 对象的 forward() 方法,传入用户的 query 和聊天记录 history

聊天机器人的使用方法如下:

## 获取聊天记录和响应历史
history = gemini.history.copy()

## 用户的查询
query = "我正在构建一个免费的营销聊天机器人,请为它制定一个营销计划。"

## 从聊天机器人获取响应
response = marketingChatbot.forward(history=history, query=query)

## 打印从生成的响应中获取的查询答案
print(response.answer)

运行代码后,生成的输出如下所示。

在这里,生成的响应中我们可以注意到它包含了标题和项目符号的正确 Markdown 格式。除了结构良好的答案外,我们还可以看到生成的响应的质量。答案简洁明了,几乎涵盖了所有方面,证明了它是一个专业的营销助手。

完整代码库

我们营销聊天机器人的完整编译代码库如下,

结论

这是对本文讨论内容的简要总结。

  • DSPy 是一个用于以真正声明性和模块化方式编程基础模型(包括大语言模型和检索模型)的框架。它附带一个自动编译器,指导语言模型执行这些声明性步骤,最终使我们能够专注于高层次逻辑,而将语言模型的微调交给专门的优化器。
  • 本文讨论了使用基础模型配置 DSPy、创建 DSPy 签名以及在 DSPy 的链式思维模块中使用它的方法。

作者的话

感谢您阅读本文。如果您有任何问题或建议,请随时在评论区留言。我非常欢迎反馈。

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多