在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.rhkb.cn/news/231393.html

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

相关文章

Spring见解3 AOP

4.Spring AOP 4.1.为什么要学习AOP? 案例:有一个接口Service有一个insert方法,在insert被调用时打印调用前的毫秒数与调用后的毫秒数,其实现为: public class UserServiceImpl implements UserService {private UserDao userDao…

新年福利|这款价值数万的报表工具永久免费了

随着数据资产的价值逐渐凸显,越来越多的企业会希望采用报表工具来处理数据分析,了解业务经营状况,从而辅助经营决策。不过,企业在选型报表工具的时候经常会遇到以下几个问题: 各个报表工具有很多功能和特性&#xff0c…

金蝶云星空数据库根据仓库和仓位查询内码(SQL脚本)

SELECT a.仓库ID,a.仓库名称,d.仓位ID,d.仓位名称,c.内码FROM ( SELECT a.FSTOCKID 仓库ID,b.FNAME 仓库名称FROM T_BD_STOCK aINNER JOIN T_BD_STOCK_L bON a.FSTOCKID b.FSTOCKID --仓库列表) aLEFT JOIN ( SELECT FENTRYID 仓位值表FENTRYID,FSTOC…

C++ 释放指针

在C中,释放指针通常使用delete或delete[]操作符; 如果指针指向的是单个对象,可以使用delete操作符进行释放; 在释放完内存后,最好将指针置为nullptr,以避免出现悬空指针(dangling pointer&#…

软件测试基础理论学习-软件测试方法论

软件测试方法论 软件测试的方法应该建立在不同的软件测试类型上,不同的测试类型会存在不同的方法。本文以软件测试中常见的黑盒测试为例,简述常见软件测试方法。 黑盒测试用例设计方法包括等价类划分法、边界值分析法、因果图法、判定表驱动法、正交试…

一、Qt介绍

一、Qt介绍 1、介绍 Qt是一套程序开发库,但是与MFC(依赖于Windows API)不同,Qt是跨平台开发库。 Qt获取:[Qt下载地址](https://download.qt.io/archive/qt/)2、Qt安装 QtMinGWSourcesQt ChartsQt Data Visualizatio…

c语言题目之统计二级制数中1的个数

文章目录 题目一、方法1二、方法2三,方法3总结 题目 统计二进制数中1的个数 输入一行,输出一行 输入: 输入一个整数 输出: 输出存储在内存中二进制的1的个数 一、方法1 之前的文章中,小编写了有关于内存在二进制中的存…

cissp 第10章 : 物理安全要求

10.1 站点与设施设计的安全原则 物理控制是安全防护的第一条防线,而人员是最后一道防线。 10.1.1 安全设施计划 安全设施计划通过关键路径分析完成。 关键路径分析用于找出关键应用、流程、运营以及所有必要支撑元索间的关系。 技术融合指的是各种技术、解决方案…

MongoDB 面试题

MongoDB 面试题 1. 什么是MongoDB? MongoDB是一种非关系型数据库,被广泛用于大型数据存储和分布式系统的构建。MongoDB支持的数据模型比传统的关系型数据库更加灵活,支持动态查询和索引,也支持BSON格式的数据存储,这…

ARCGIS PRO SDK Geoprocessing

调用原型:Dim gpResult AS IGPResult await Geoprocessing.ExecuteToolAsync(调用工具名称, GPValue数组, environment, null, null, executeFlags) 一、调用工具名称:地理处理工具名称。如面转线:management.PolygonToLine,而非…

解析为什么Go语言要使用[]rune而不是string来表示中文字符

众所周知,Go语言中有以下这些数据类型。但rune32这个go语言特有的数据类型,比较有意思却经常遭到忽视。所以今天探索学习一下这个数据类型的功能、用法。 Go基本数据类型 布尔:bool 字符串:string 整数: int int8 …

群晖Docker部署HomeAssistant容器结合内网穿透远程控制家中智能设备

目录 一、下载HomeAssistant镜像 二、内网穿透HomeAssistant,实现异地控制智能家居 三、使用固定域名访问HomeAssistant 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到网站 Ho…

Ubuntu20.04 上启用 VCAN 用作本地调试

目录 一、启用本机的 VCAN​ 编辑 1.1 加载本机的 vcan 1.2 添加本机的 vcan0 1.3 查看添加的 vcan0 1.4 开启本机的 vcan0 1.5 关闭本机的 vcan0 1.6 删除本机的 vcan0 二、测试本机的 VCAN 2.1 CAN 发送数据 代码 2.2 CAN 接收数据 代码 2.3 CMakeLists.…

缺失的第一个正数(LeetCode 41)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路4.1 暴力4.2 排序4.3 哈希表4.4 空间复杂度为 O(1) 的哈希表4.5 置换 参考文献 1.问题描述 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级…

CSS基本知识

文章目录 1. CSS 是什么2. 基本语法规范3. 引入方式3.1 内部样式表3.2 行内样式表3.3 外部样式 4. 选择器4.1 选择器的功能4.2 选择器的种类4.3 基础选择器4.3.1 标签选择器4.3.2 类选择器4.3.3 id 选择器4.3.4 通配符选择器 4.4 复合选择器4.4.1 后代选择器4.4.2 伪类选择器 5…

Spring学习 Spring概述

1.1.Spring介绍 ​ Spring是轻量级Java EE应用开源框架(官网: http://spring.io/ ),它由Rod Johnson创为了解决企业级编程开发的复杂性而创建 1.2.简化应用开发体现在哪些方面? IOC 解决传统Web开发中硬编码所造成的…

Swagger Editor 教程:从入门到精通编写 API 文档

在 API 开发的领域中,Swagger 以其卓越的使用效率与便捷性,备受开发者欢迎。它是一个强大的接口设计工具,允许开发人员对 RESTful API 进行高效的设计、构建及测试工作。本文旨在深入探讨其中一个子工具——Swagger Editor的使用介绍及它的有…

AIGC时代-GPT-4和DALL·E 3的结合

在当今这个快速发展的数字时代,人工智能(AI)已经成为了我们生活中不可或缺的一部分。从简单的自动化任务到复杂的决策制定,AI的应用范围日益扩大。而在这个广阔的领域中,有两个特别引人注目的名字:GPT-4和D…

代码随想录 718. 最长重复子数组

题目 给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例 1: 输入:nums1 [1,2,3,2,1], nums2 [3,2,1,4,7] 输出:3 解释:长度最长的公共子数组是 [3,2,1] 。 示例 2&#xff1…

计算机视觉入门与调优

大家好啊,我是董董灿。 在 CSDN 上写文章写了有一段时间了,期间不少小伙伴私信我,咨询如何自学入门AI,或者咨询一些AI算法。 90%的问题我都回复了,但有时确实因为太忙,没顾得过来。 在这个过程中&#x…