双子座API(Gemini API):通过直接输入PDF来革新内容创作
2024/10/24 21:03:34
本文主要是介绍双子座API(Gemini API):通过直接输入PDF来革新内容创作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Gemini API现在支持直接处理PDF文档以生成内容,消除图像转换并降低成本。本报告提供一个示例脚本,以展示此新功能及其潜在应用。
Gemini API最近引入了直接处理PDF数据以生成内容的能力,大大增强了其功能,。此前,为了使用PDF数据生成内容,需要将每个PDF页面转换成单独的图像。这个耗时且资源密集的过程已被简化,从而大幅降低了处理成本。
通过直接读取PDF内容,Gemini API为各种应用程序带来了新的可能性。本报告将提供一个示例脚本,以展示如何有效利用Gemini API直接从PDF数据生成内容。
在此脚本中使用了GeminiWithFiles(谷歌应用脚本)。因此,在运行下面的脚本之前,请先安装它。参考更多使用说明请参见。
请将下面的脚本复制并粘贴到 Google 应用脚本的脚本编辑器中。然后,请设置您的 API 密钥。
function sample() { const apiKey = "###"; // 请设置您的API密钥。 const urls = [ "https://journals.aps.org/pr/pdf/10.1103/PhysRev.48.73", // 来自 https://journals.aps.org/pr/abstract/10.1103/PhysRev.48.73 "https://arxiv.org/pdf/1706.03762.pdf", // 来自 https://research.google/pubs/attention-is-all-you-need/ ]; const blobs = UrlFetchApp.fetchAll(urls).map((r) => r.getBlob()); const jsonSchema = { description: "请总结以下论文,每篇总结不超过50字。同时,获取每篇论文的标题和作者。", type: "array", items: { type: "object", properties: { title: { description: "论文标题", type: "string" }, authors: { description: "论文作者", type: "string" }, summary: { description: "论文总结,50字以内。", type: "string", }, }, required: ["title", "summary"], additionalProperties: false, }, }; const g = new GeminiWithFiles.geminiWithFiles({ apiKey, response_mime_type: "application/json", model: "models/gemini-1.5-pro-latest", doCountToken: true, }); const fileList = g.setBlobs(blobs).uploadFiles(); console.log(fileList); // 在这里,你可以看到上传数据的元数据。 const res = g .使用已上传文件生成内容(fileList) .generateContent({ jsonSchema }); g.deleteFiles(fileList.map(({ name }) => name)); console.log(res); }
脚本中的这些URL如下。
-
https://journals.aps.org/pr/pdf/10.1103/PhysRev.48.7
:这个PDF来自这篇论文。 https://arxiv.org/pdf/1706.03762.pdf
:这个PDF来自这篇论文。
在这个脚本里,PDF数据被下载下来并用于Gemini API。脚本流程可以在本报告顶部的图片中看到。
zh: 2024年8月3日这天,GeminiWithFiles 更新至 v2.0.0。这次更新还包括我更新了上述脚本。
运行此脚本时,会得到以下结果。多个PDF文件可以一次性通过一个API调用来解析。
[ { "title": "广义相对论中的粒子难题", "authors": "A. 爱因斯坦 和 N. 罗森", "summary": "本文探讨了一种基于广义相对论和电磁学的物质和电原子论理论。它修改了引力方程,以便在静态球对称情况下有规则的解,并将粒子表示为“桥”,连接两个相同的空间片层。该理论解释了没有负质量粒子的存在,并提供了一个对场和运动的统一处理。" }, { "title": "注意力就够了", "authors": "Ashish Vaswani, Noam Shazeer, Niki Parmar, Llion Jones, Aidan N. Gomez, Illia Polosukhin, Łukasz Kaiser, Jakob Uszkoreit,", "summary": "本文介绍了一种基于注意力机制的新颖网络架构——Transformer,用于序列转换。它用多头自注意力机制替代了传统的循环和卷积层,从而实现了更好的并行化和性能。在机器翻译实验中,显著提高了BLEU分数和训练时间,达到了最先进的水平。" } ]
从v2开始,GeminiWithFiles可以直接使用PDF blob,就像上述脚本那样。但是,当使用v1时,PDF blob会被转换成每页的图片。当使用v1时,脚本通过const fileList = await g.setBlobs(blobs, false).uploadFiles();
这一行中的false
参数来决定如何处理PDF数据。这里,false
表示脚本会直接将PDF数据提供给API进行处理。相反,如果将参数设置为true
(例如const fileList = await g.setBlobs(blobs, true).uploadFiles();
),脚本会将每一页PDF转换成单独的图片后再发送给API。
这项实验比较了直接使用PDF文件和将PDF转换为图像的处理时间的对比。具体如下:
此处直接使用了Markdown格式中的破折号列表,未做更改。
- 直接处理PDF:15秒,基于图像的处理方式:120秒
分别在(测试过的)来自https://journals.aps.org/pr/pdf/10.1103/PhysRev.48.7
的5页数PDF和来自https://arxiv.org/pdf/1706.03762.pdf
的15页数PDF上进行了测试。
如结果所示,直接将PDF数据输入Gemini API的处理成本明显低于基于图像转换的方法。这很可能是由于每一页图像转换过程中产生的额外开销。
此示例脚本是为Google Apps Script编写的。不过,这种方法也可以应用于其他语言,除了Google Apps Script之外。
- GeminiWithFiles(点击链接查看 GeminiWithFiles 的 GitHub 页面)
(A file processing tool based on Gemini)
这篇关于双子座API(Gemini API):通过直接输入PDF来革新内容创作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-22程序员出海做 AI 工具:如何用 similarweb 找到最佳流量渠道?
- 2024-12-20自建AI入门:生成模型介绍——GAN和VAE浅析
- 2024-12-20游戏引擎的进化史——从手工编码到超真实画面和人工智能
- 2024-12-20利用大型语言模型构建文本中的知识图谱:从文本到结构化数据的转换指南
- 2024-12-20揭秘百年人工智能:从深度学习到可解释AI
- 2024-12-20复杂RAG(检索增强生成)的入门介绍
- 2024-12-20基于大型语言模型的积木堆叠任务研究
- 2024-12-20从原型到生产:提升大型语言模型准确性的实战经验
- 2024-12-20啥是大模型1
- 2024-12-20英特尔的 Lunar Lake 计划:一场未竟的承诺