如何将Gemini和Sheets与BigQuery集成?

​我经常使用 Google Sheets。有些人可能会说我使用得太频繁了。由于我也使用Gemini做各种事情,因此将 Gemini 集成到我的 Sheets 工作流程中是合情合理的。

我可以使用汇总工作表和创建公式等功能来提高 Sheets 的工作效率。现在,Gemini 已在 Gmail、Docs、Sheets 等应用中提供,并且适用于Google AI One Premium计划。

基于这些内置功能,让我们来看看自定义集成可以实现哪些功能。例如,如果您想使用 Gemini 一次性生成或丰富多行数据,该怎么办?在这篇博文中,我们将介绍如何做到这一点。

这是我所可视化的内容。使用在线零售数据集,我们可以从产品描述中提取颜色到新列中。此新列可以帮助客户使用颜色过滤器轻松找到他们想要的内容。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/image2_7dxSA8c.gif

直接方法

让我们探索如何从 Sheets 调用 Gemini API。我们将使用的 Google Workspace 中的关键功能是urlFetchApp,它可以发出 HTTP 请求或获取 Web 内容。它可以自定义标头、设置超时、遵循重定向以及处理身份验证

使用 urlFetchApp,我们可以调用generateContent REST API,传入模型和端点:

POST https://{service-endpoint}/v1/{model}:generateContent

此Google Sheets 自定义函数提供了所需的所有步骤。设置服务帐户并配置 Apps 脚本属性后,您将拥有一个自定义函数,其中包含两个输入,即提示中包含的单元格范围,然后是提示。

<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">=gemini(A1:A10,"Extract colors from the product description")</span></span></span></span></span>

该函数本身将这些参数嵌入到提示中:

<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">function gemini(range,prompt) {</span></span></span></span></span>
<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">  prompt = `For the table of data: ${range}, Answer the following: ${prompt}. Do not use formatting. Remove all markdown.`</span></span></span></span></span>
<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">  return getAiSummary(prompt);</span></span></span></span></span>
<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">}</span></span></span></span></span>

​该函数调用的辅助函数处理身份验证并发出 HTTP 请求。

如果您想亲眼见证这一功能,请查看 Google Cloud Next 2024 会议、Apps Script 和 Gemini:构建自定义 AI 驱动的 Google Workspace 解决方案。此脚本还有一个AI Studio 版本可用。

通过 BigQuery 集成

现在让我们展示如何使用 BigQuery 作为 Apps Script 和 Gemini 之间的代理。这是一种适用于大型数据集或用户已集成 BigQuery 和 Sheets 的稳健方法。

Google Cloud BigQuery Apps Script 服务提供 BigQuery 对象和函数以及直接在 Sheets 中执行查询的能力。

使用此服务,BigQuery 可以直接向 Vertex AI 中的 Gemini Pro 模型发出整列数据请求。您在 BigQuery 中只需创建一个模型端点,并指定要使用的模型。

你可以像这样形象地想象这个过程:

https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_spHzff2.max-700x700.png

流程概述

通过此集成,我们将创建链接到 Apps Script 函数的菜单项,而不是自定义函数。您也可以像我们之前展示的那样创建一个函数,但在这里我们将探索不同的样式。

我们首先查看原始输入数据。在我们的场景中,我们想要从产品描述中提取颜色:

描述(C2):

WHITE HANGING HEART T-LIGHT HOLDER

然后,我们将创建一个包含指令的提示列,并与输入数据连接在一起。

颜色提示(I2):

"Extract the color(s) from the product description, all in capital letters... If there are multiple, return a valid comma separated list of colors (without the word and). Here is the product description: " & C2

这是此提示的一个示例响应,我们将其放在提示单元格正右侧的单元格中。

颜色(J2):

WHITE

为了实现这一点,请从菜单中选择“查询”,并选择提示单元格:

https://storage.googleapis.com/gweb-cloudblog-publish/images/image3_pTyDvxh.max-800x800.png

怎么运行的

菜单是在onOpen()触发器中创建的,每个菜单项都链接到Apps Script(基于云的 JavaScript 平台)中的一个函数:

菜单项

功能

询问

使用选定的提示查询 Gemini,并将答案放在右侧的列中。

设置

在 BigQuery 中创建运行解决方案所需的工件:数据集、临时表和模型。

配置 > 温度

控制令牌选择的随机性程度;0 是确定性的。

配置 > 最大输出令牌

响应中可生成的最大标记数。标记可能小于单词,大约为 4 个字符。

 该解决方案的核心是 BigQuery 的功能。从基于云的 JavaScript 平台Apps Script,我们可以使用每个提示和配置参数执行 SQL 查询:ML.GENERATE_TEXT​

<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">const query = `SELECT * FROM ML.GENERATE_TEXT( MODEL \`${datasetId}.${modelId}\`, ` +</span></span></span></span></span>
<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">   `(SELECT * FROM \`${projectId}.${datasetId}.${tableName}\`), ` +</span></span></span></span></span>
<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">   `STRUCT(${getMaxOutputTokens()} AS max_output_tokens, ${getTemperature()} AS temperature));`</span></span></span></span></span>

由于响应以任意顺序返回,我们将它们存储在映射中,以便我们可以将它们与原始提示的顺序匹配。提示本身存储在临时表中。我们可以直接将工作表中的所有值包含在查询字符串中,但使用表可以让我们处理超过1MB 最大查询长度的大型数据集。​

数据集、表和端点在函数中配置setup()。在用户选择的项目中,输入:

<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">const query = `CREATE MODEL \`${projectId}.${datasetId}.${modelId}\`\n` +</span></span></span></span></span>
<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">     `REMOTE WITH CONNECTION \`${projectId}.${location}.${connectionId}\`\n` +</span></span></span></span></span>
<span style="background-color:#f8f9fa"><span style="background-color:white"><span style="color:black"><span style="background-color:#f8f9fa"><span style="color:inherit">     `OPTIONS(ENDPOINT = "${modelName}")`</span></span></span></span></span>

亲自尝试

您可以在此处访问 Apps Script 代码。您可以创建一个新工作表(sheet.new是一个方便的 URL 快捷方式),然后通过扩展 > Apps Script添加它。然后您需要将 BigQuery API 服务添加到您的 Apps Script 项目中。

当您刷新工作表时,您将看到菜单。

如果您还没有启用BigQuery API,则需要启用它。您还需要创建与 Vertex AI 的 BigQuery 连接。提供的代码使用连接 ID genai-connection。

首次运行代码时,系统会提示您授权 Apps Script 访问您的 Google Cloud 项目。您可能还需要配置服务帐号以访问 Vertex AI。如果尚未配置,对话框将提供 URL 和服务帐号电子邮件地址,以使此过程变得简单。

下一步

您已经了解了如何直接从 Sheets 查询 Gemini 来实现各种新任务。您可以根据自己的工作流程自定义此处提供的集成代码。

如需深入了解如何在 BigQuery 中使用生成式 AI,请查看Bookshelf Analytics 代码实验室。如果您想了解有关 Apps Script 的更多信息,Apps Script 基础知识播放列表将帮助您入门。

通过将 Gemini 模型与 Sheets 相结合,更多的用户可以获得 AI 洞察并节省自定义任务的时间和精力。

更多相关内容尽在:国外VPS网站 - 国外VPS测评,云服务器,香港VPS,主机推荐

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值