生成式 AI 成为“智能私厨”,根据您的心情搭配适合的食物

五月 16, 2023
Avneet Singh Product Manager Google Partner Innovation

Google 合作伙伴创新团队正在开发一系列生成式 AI 模板,以证明可以将大型语言模型 (LLM) 与现有 Google API 和技术相结合,从而解决特定行业用例中的问题。

generativeAIRecipe1

概述

我们都有过在网上搜索食谱的经历、我们都有过在遇到困难时上网寻求生活建议的时候。但请设想这样一个场景:利用生成式 AI,将搜索食谱和寻求建议的功能相结合,创造出一个独具个性的私厨,它会倾听您今天过得怎么样、您的感受如何、您在想什么……然后根据您的心情创作出新颖独特的、采用特别食材搭配的菜肴。

generativeAIRecipe2

“MoodFood”是对传统食谱搜索工具的一种有趣创新。该应用充当“食物治疗师”的角色,询问用户的感受或他们想要的感受,并生成各种食谱。这些食谱不仅包括对经典菜肴的幽默改编,比如“心碎汤”或“周一忧郁千层面”,还包括一些真诚的生活建议类“食谱”,例如,如何通过美食给未来的岳母留下深刻印象。

在上面的例子中,假设用户说他们感到压力很大,并且需要给男朋友的母亲留下深刻印象。根据这一输入,MoodFood 会推荐一款名为“未来婆婆的爱心鸡汤”新颖食谱。这个食谱的名称和内容都是基于用户输入而生成的。然后,该应用还会生成一张图文并茂的食谱卡片以及整理好的食材清单和步骤说明。用户可以将这些信息传递给合作伙伴网站以进行食材购买。

这种可能的用例基于一种新颖的产品发现方式。通过询问用户的心情,AI 可以在音乐应用中提供歌曲推荐、为旅游伙伴提供旅行目的地建议,或者提供可从食品配送应用中购买食材的可行食谱。这个模板还可以用作电子商务和零售用例中的发现机制。LLM 正在开启一个充满探索性和可能性的新世界。我们希望用户能够体验到 LLM 的强大力量,该模型可以将已知的元素与完全不同的背景(例如用户的心情)结合起来,从而创造出用户可以尝试的新事物!

实现

我们希望探索如何在整个体验中以不同的方式使用 PaLM API,因此我们多次将 API 用于不同的目的。例如,生成幽默的响应、生成食谱、创建结构化格式、进行安全保障等等。

generativeAIRecipe3

在当前的演示中,我们使用了四次 LLM。在第一次提示中,我们要求 LLM 根据用户的输入和上下文发挥创意,为用户设计新的食谱;第二次提示用于将响应转化为 JSON 格式;第三次提示用于确保食谱名称的恰当性,以作为保障措施;最后一次提示用于将非结构化的食谱转化为格式化的 JSON 食谱。

LLM 可以为开发者提供的一项帮助是数据格式化。开发者可以使用 PaLM API 将任何文本来源的数据转换成所需的格式,例如 JSON、Markdown 等。

为了在保持响应格式规范的同时生成幽默的响应内容,我们会多次调用 PaLM API。当要增加输入的随机性时,我们会为模型设置一个较高的“温度”;当对响应进行格式化处理时,则会降低模型的“温度”。

在本演示中,我们希望 PaLM API 以 JSON 格式返回食谱,因此我们会在请求中附上一个已格式化的响应示例。这只是对 LLM 的一个小提示,告诉它如何准确地以特定格式回答。但是,将食谱转换为 JSON 格式的过程可能会相当耗时,这可能影响到用户的体验。为了解决这个问题,我们在生成 JSON 格式食谱的同时,会快速生成一条幽默的反应消息。当接收到幽默反应消息后,我们会立即逐个渲染这些字符,这样一来,在等待 JSON 食谱响应的过程中,便可以减轻用户所产生的等待感。

generativeAIRecipe4

如果某个任务在要求保持预定义格式的同时需要更多的创造性,我们建议开发者将这个主要任务拆分为两个子任务。其中一个子任务使用较高温度设置来生成创新性响应;另一个子任务则使用较低的温度设置确定所需格式,以平衡输出。

提示词生成

提示词生成是一种用于指导大型语言模型 (LLM) 执行特定任务的技术,涉及向 LLM 提供一小段描述任务的文本,以及 LLM 完成任务所需的任何相关信息。使用 PaLM API 时,提示词生成需要四个参数:context、messages、temperature 和 candidate_count

  • context 是指对话的上下文,用于让 LLM 更好地理解对话。
  • messages 是一个包含聊天消息的数组,按照从过去到现在的顺序交替出现用户 (author=0) 和 LLM (author=1) 的消息。第一条消息始终来自用户。
  • temperature 是介于 0 和 1 之间的浮点数。温度越高,响应的创造性就越强。温度越低,响应的正确性就较高。
  • Candidate_count 是 LLM 将返回的响应数。

在 MoodFood 中,我们运用了提示词生成技术来指导 PaLM API。我们让它扮演一个富有创意和幽默感的厨师角色,并根据用户的消息返回新颖奇特的食谱。我们还要求它将返回结果的格式分为四个部分:回应、名称、食材、步骤与描述。

  • 回应:以礼貌但有趣的方式对用户消息的直接幽默回应。
  • 名称:食谱的名称。我们告诉 PaLM API 使用礼貌的双关语生成食谱名称,并确保不冒犯任何人。
  • 食材:含计量单位的食材清单
  • 描述:PaLM API 生成的食品描述

generativeAIRecipe5

第三方集成

PaLM API 提供嵌入服务,促进 PaLM API 与客户数据的无缝集成。您只需使用 PaLM API 嵌入服务设置合作伙伴数据的嵌入数据库,即可轻松上手。

generativeAIRecipe6

集成后,当用户搜索有关食物或食谱的信息时,PaLM API 将会在嵌入空间中进行搜索,以找到与用户查询匹配的理想结果。此外,通过与合作伙伴提供的购物 API 进行集成,我们还可以使用户通过聊天界面直接从合作伙伴网站购买食材。

合作伙伴

印度在线食品订购和送餐平台 Swiggy 对于像 MoodFood 这样的体验所带来的用例感到十分兴奋。

“我们十分看好生成式 AI 的潜力,它可以改变我们在平台上与客户和商家互动的方式。Moodfood 可以通过有趣、引人入胜的方式帮助我们更深入地探索我们的产品和服务。”- Swiggy 首席技术官 Madhusudhan Rao

我们将公开 MoodFood 的源代码,因此开发者和初创公司可以在我们创建的体验之上进行构建。Google 合作伙伴创新团队还将继续与当地市场合作构建功能和工具,以扩展已在进行的研发。点击此处查看 GitHub 上的项目。

致谢

我们要感谢以下人士对这个项目做出的宝贵贡献:KC Chung、Edwina Priest、Joe Fry、Bryan Tanaka、Sisi Jin、Agata Dondzik、Sachin Kamaladharan、Boon Panichprecha,以及 Miguel de Andres-Clavera。