在办公任务中,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帮助,让您在工作任务中节省时间与精力。