在办公任务中,Google Sheets经常频繁地被使用。同时,我们也经常使用Gemini,那么将Gemini引入Sheets的工作流程中就显得再合适不过了。


通过汇总表格和创建公式等功能,可以大大提升Sheets的工作效率。如今,借助Google AI One Premium计划,Gemini已支持Gmail、Docs、Sheets等更多应用。


基于这些内置功能,让我们一同探索自定义集成的无限可能。例如,若您希望使用Gemini一次性生成或丰富多行数据,该如何操作呢?在本文中,我们将详细阐述这一流程。


我们设想可以在表格里使用这样的功能:借助在线零售数据集,可以从产品描述中提取颜色信息并填充至新列中,这一新列帮助顾客通过颜色筛选轻松找到所需商品。




直接方式


让我们一同探寻如何在Sheets中调用Gemini API。


在Google Workspace中,我们将借助核心功能的是urlFetchApp,它能发起HTTP请求或抓取网页内容。


这一工具不仅能自定义头部信息,设置超时时长,追踪重定向,更能妥善处理身份验证等复杂操作。


借助urlFetchApp,我们得以调用generateContent REST API,将模型与终端点一并传入,实现精准的数据处理与提取。

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


在这款Google Sheets自定义函数中,已涵盖所有的所需步骤。

待您设置好服务账户并配置Apps Script的属性后,即可拥有一款自定义函数。

它接受两个输入参数:一是提示中所包含的单元格范围,二是具体的提示内容。

=gemini(A1:A10,"Extract colors from the product description")


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

function gemini(range,prompt) {  prompt = `For the table of data: ${range}, Answer the following: ${prompt}. Do not use formatting. Remove all markdown.`  return getAiSummary(prompt);}


该函数调用的辅助函数负责身份验证和发起HTTP请求。


与BigQuery集成


让我们来演示如何借助BigQuery,将Apps Script与Gemini链接,这一稳定强大的策略,尤其适用于处理庞大的数据集,或用户已经将BigQuery与Sheets整合的场景。


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


借助此项服务,BigQuery能够直接对整个数据列的数据发起请求,传输至Vertex AI中的Gemini Pro模型。在BigQuery中,您只需创建一个模型端点,指定您希望使用的模型即可。


这一过程可以形象地描绘为:




流程概述


通过此集成,我们将创建与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

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




运行原理


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



此方案的核心在于BigQuery的ML.GENERATE_TEXT函数。从Apps Script——这一云端JavaScript平台出发,我们可以针对每一个提示和配置参数执行SQL查询:

const query = `SELECT * FROM ML.GENERATE_TEXT( MODEL \`${datasetId}.${modelId}\`, ` +   `(SELECT * FROM \`${projectId}.${datasetId}.${tableName}\`), ` +   `STRUCT(${getMaxOutputTokens()} AS max_output_tokens, ${getTemperature()} AS temperature));`


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


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

const query = `CREATE MODEL \`${projectId}.${datasetId}.${modelId}\`\n` +     `REMOTE WITH CONNECTION \`${projectId}.${location}.${connectionId}\`\n` +     `OPTIONS(ENDPOINT = "${modelName}")`


试用操作


您可以访问Apps Script代码(https://github.com/GoogleCloudPlatform),新建一个表格,然后通过“Extensions > Apps Script”将其添加进去。


之后,您需要将BigQuery API服务添加到Apps Script项目中。


当您刷新表格时,您将看见菜单栏。


若您尚未操作,则需启用BigQuery API,并创建至Vertex AI的BigQuery连接。提供的代码使用了连接ID genai-connection。


首次运行代码时,系统将提示您授权Apps Script访问您的Google Cloud项目。您可能还需配置一个服务账户以访问Vertex AI。若尚未配置,系统将弹出一个对话框,提供URL和服务账户电子邮件地址,使配置过程更为便捷。


邀您使用


您已经了解了如何直接从 Sheets 查询 Gemini 来实现各种新任务,您可以根据自身工作流程,对这里提供的集成代码进行个性化定制。


通过Gemini模型与Sheets的集成,能够轻松获取AI帮助,让您在工作任务中节省时间与精力。


返回全部