在Google Colab中调用Gemini的API实现智能问答

一、引言

Google终于放出大招,在2023年12月6日正式推出规模最大、功能最强大的人工智能模型Gemini,对标ChatGPT,甚至有要赶超ChatGPT-4.0的节奏。

相比之前的Bard,Gemini的文本理解能力、图片识别能力和语义抽取能力大大增强,可以进行复杂深入的推理分析,精确的文本信息抽取,细节入微的理解判断,将有助于用户在文本生成、智能问答、科学研究等领域实现历史性的突破。

更为重要的是Google随后开放了免费Gemini的API的申请,大家可以通过以下网站轻松申请到免费的API。

API​ai.google.dev

二、如何在Colab中调用Gemini的API

那么如何使用Gemini的API呢?本文将教你一步一步在Google Colab中用python调用Gemini的API。

第一步:申请Gemini的API Key

打开网站后显示如下,可以点击【Get API key in Google AI Studio】

Gemini的官方页面

进入到Google AI studio后,点击Get API key就可以得到一个Gemini的API key。与ChatGPT不同的时,这个key可以反复查看,不用担心生成后忘记或者丢失。

申请API key

第二步:配置Google Colab

有了API key后,我们可以在Google的Colab中搭建一个项目,具体网址如下:

Google Colab​

进入到Colab中,我们新建一个记事本,把Gemini的API key复制一下,点击Colab左侧的小钥匙图标,添加一个环境变量:【GOOGLE_API_KEY】,它的值就定义为你的API key,这样就可以通过GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')安全调用,同时在运行时不在代码中显示你的key,从而防止key泄露。

配置环境变量

第三步: 调用Gemini的API代码

接着,我们需要把以下代码粘贴到记事本的单元格中。本文使用的是Gemini自带的Python代码,并加以修改以后如下:

import pathlib
import textwrapimport google.generativeai as genai# Used to securely store your API key
from google.colab import userdatafrom IPython.display import display
from IPython.display import Markdowndef to_markdown(text):text = text.replace('•', '  *')return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')genai.configure(api_key=GOOGLE_API_KEY)model = genai.GenerativeModel('gemini-pro')response = model.generate_content("Tell me 5 resorts in the US for international travelers.")md_content = to_markdown(response.text)display(md_content)

在上面response一列可以输入自己的问题,如我输入的是:【Tell me 5 resorts in the US for international travelers.】告诉我美国的五大旅游胜地?经过Gemini的处理,我们得到了下面markdown格式的内容:

Gemini的Markdown格式显示

三、学后反思

  1. Gemini目前是Google推出的最强大的人工智能工具,性能上不次于Chatgpt plus,而且还免费开放其API 申请,如果能结合APIkey + Colab + Python使用,对于用户来说将简单方便。

  2. 使用Colab的好处是,我们不用在本地安装Python软件,配置安装环境,能够节省本地资源,同时减少运行环境不完善带来的报错,是我们调试Python程序的绝佳平台。

  3. 以上的资源均为免费,可以节省预算,又能最大限度地综合发挥各大平台的优势,方便我们使用。动手能力强的小伙伴可以试试。

  4. 使用Python的原因是,我们可以更好地批量调用Gemini的API,而不用一次输入一个问题,而是一次输入多个问题,静待答案的生成。Google强大的计算能力能让我们统筹各项工作,不用担心本地计算资源不足的问题。

关注我,一个喜欢Python爱好者,带给你不一样的学习体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/313087.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C#]使用ONNXRuntime部署一种用于边缘检测的轻量级密集卷积神经网络LDC

源码地址: github.com/xavysp/LDC LDC: Lightweight Dense CNN for Edge Detection算法介绍: 由于深度学习方法的快速发展,近年来,用于执行图像边缘检测的卷积神经网络(CNN)模型爆炸性地传播。但边缘检测…

山西电力市场日前价格预测【2024-01-02】

日前价格预测 预测说明: 如上图所示,预测明日(2024-01-02)山西电力市场全天平均日前电价为92.93元/MWh。其中,最高日前电价为275.90元/MWh,预计出现在18:00。最低日前电价为0.00元/MWh,预计出现…

磁盘阵列(RAID)

1.独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks) 旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称磁盘阵列 用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵…

基于JAVA的酒店管理系统设计

摘 要 我们对酒店进行调研,发现部分酒店依托第三方平台,但第三方平台没有办法更好帮助酒店管理,故我们决定帮助酒店开发一套基于 Java 的酒店管理系统。使用基于Java的酒店管理系统可以帮助酒店完成顾客入住信息的管理,酒店物资的…

Python进行批量字符替换的3种方法

一、问题的提出 之前,我写过一篇如何在word中计算数学算式: 如何用Python批量计算Word中的算式-CSDN博客 为了计算算式,就需要对算式进行格式化,把不规则的算式转换成规则的算式,这时就会涉及到一些字符的批量替换。…

基于蚁狮算法优化的Elman神经网络数据预测 - 附代码

基于蚁狮算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于蚁狮算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于蚁狮优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要:针…

分布式系统架构设计之分布式数据存储的扩展方式、主从复制以及分布式一致性

三、水平扩展和垂直扩展 在分布式系统中,数据存储的扩展是为了适应业务的增长和提高系统的性能。分为水平扩展和垂直扩展两种方式,这两种方式在架构设计和应用场景上有着不同的优势和局限性。 水平扩展 水平扩展是通过增加节点或服务器的数量来扩大整…

【NLP论文】03 基于 jiagu 的情感分析

本篇是NLP论文系列的最后一篇,主要介绍如何计算情感分析结果,并将其融入到XX评价体系和物流关键词词库,之前我已经写了两篇关于情感分析的文章,分别是 SnowNLP 和 Cemotion 技术,最终我才用了 jiagu 来写我的论文&…

【MyBatis】操作数据库——入门

文章目录 为什么要学习MyBatis什么是MyBatisMyBatis 入门创建带有MyBatis框架的SpringBoot项目数据准备在配置文件中配置数据库相关信息实现持久层代码单元测试 为什么要学习MyBatis 前面我们肯定多多少少学过 sql 语言,sql 语言是一种操作数据库的一类语言&#x…

域名转移:将腾讯云转移至阿里云

当时注册域名时,腾讯域云相对便宜,但目前阿里云在业界更加成熟,因此将自己申请的域名由阿里云转移至阿里云,并记录转移过程。 一、域名转出 进入腾讯云,登陆后选择控制台,选择我的资源–域名注册–全部域名…

HarmonyOS4.0系统性深入开发11通过message事件刷新卡片内容

通过message事件刷新卡片内容 在卡片页面中可以通过postCardAction接口触发message事件拉起FormExtensionAbility,然后由FormExtensionAbility刷新卡片内容,下面是这种刷新方式的简单示例。 在卡片页面通过注册Button的onClick点击事件回调,…

按行依次处理数据的文件操作(C语言版)

按行依次处理数据的文件操作(C语言版) 这段代码的目的是处理多个文件,为每个文件创建一个新文件,将以 ‘r’ 开头的行添加 “./” 前缀,并将修改后的内容写入新文件。在main函数中,通过调用process函数,逐个处理了一系…