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-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

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

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

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

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

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

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

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

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...