前言
在前文中,我们探讨了如何利用 AI 自动化修复 Bug 的实现思路。当时为了避免内容杂乱,我们并未深入讨论 Google AI 的接入方法,本篇我们详细了解该如何接入 Google AI。
Gemimi 介绍
Google 在 2023 年发布的 Gemini 人工智能模型旨在实现真正的通用人工智能。作为一个多模态模型,Gemini 能够跨多种模态无缝对话并提供最佳响应。它是 Google 迄今为止打造的最大、最强大的模型,能够理解我们周围的世界,处理各种类型的输入和输出,不仅限于文本,还涵盖代码、音频、图像和视频。在测试中,Gemini的性能在许多方面匹及甚至超越领域专家。
Gemini提供三个版本的人工智能模型:
- Gemini Ultra:用于处理高度复杂的任务。
- Gemini Pro:适用于广泛的任务。
- Gemini Nano:特别为设备端任务设计。
最近刚宣布的 Gemini Advanced 模型目前还在内测中,需加入等待名单才能体验。尽管 Gemini Advanced 目前还不能用,不过其他三个AI模型的使用不受影响,Gemini 的 API 接口目前开放免费调用。
申请 API Key
首先进行 Google AI Studio 创建一个 API Key
Google AI Studio 地址:aistudio.google.com/app/apikey
- 首先点击左侧菜单中的
Get API key
- 然后点击页面中的
Create API key
按钮
- 点击创建按钮后会出现一个弹窗,选择一个 Google Cloud Project, 这里应该会默认有一个 Generative Language Client, 如果有的话直接选择就可以了,即便没有也可以上 Google Cloud 创建一个空项目就可以。
- 选择后点击
Create API key in existing project
创建 API Key
- 生成之后会弹出一个弹窗,我们复制出这个 api key 后续备用即可
- 额外说一点,如果这个 api key 忘记了,也可以在页面点击那条 Api key 再次查看
Gemini API
Gemini API 提供了多个语言的 SDK,例如:Python、Go、Node.js 等等,此外允许 API 调用者直接通过接口地址进行调用。
设置
安装Python SDK
包中包含 Gemini API 的 Python SDK google-generativeai
。使用 pip 安装依赖项:
shell
pip install -q -U google-generativeai
导入包
在使用时导入 google.generativeai
这个包即可
python
import google.generativeai as genai
设置 API 密钥
这里就用到我们上文中创建的 API Key 了,设置秘钥有两种方式:
- 将密钥放入
GOOGLE_API_KEY
环境变量中(SDK 会自动从那里获取)。 - 将密钥传递给
genai.configure(api_key=...)
python
# 方式一:将 GOOGLE_API_KEY 设置环境变量(或者直接加入系统变量)
import os
os.environ["GOOGLE_API_KEY"] = "<你的API Key>"
# 方式二:通过 genai.configure 设置 api Key
genai.configure(api_key=GOOGLE_API_KEY)
注意:以上两种方式只用选一种即可。
接口调用
Gemini 目前提供了三种模型,对于纯文本提示我们使用 gemini-pro
即可。
python
model = genai.GenerativeModel('gemini-pro')
通过 generate_content
方法,Gemini 模型能够处理包括多轮对话和跨模态输入在内的多种复杂用例。这意味着无论是单次的直接问答还是一连串的对话,或是需要对图像资料进行分析和描述,Gemini都能提供有效的输出。
为了实现基础的文本提示功能,你只需向 GenerativeModel.generate_content
方法传递一个字符串。例如,要询问生命的意义,代码将如下所示:
python
response = model.generate_content("什么是生命的意义?")
# 我们通过 `response.text` 可以拿到响应内容
print(response.text)
默认情况下,模型只有在完成整个内容的生成之后才会返回响应,这种方法非常适合于那些不需要即时反馈的场景。然而,在某些情况下,你可能希望能够实时地(更快的)获得模型的每个响应部分,流式传输正是设计用来满足这种需求的。
启用流式传输的方法很简单。只需在调用 generate_content
方法时添加一个 stream=True
参数。这样,你就可以在模型生成响应的同时接收到每一块内容,提供更为动态和互动的体验。
python
response = model.generate_content("什么是生命的意义?", stream=True)
for chunk in response:
print(chunk.text)
结语
Gemini 还支持处理图片、聊天对话等等,因为之前写工具没有涉及到,也没有详细研究,我们这里就不展开讲了,如果感兴趣可以直接前往 Google API 文档查阅,内容很详细。
相关资料
- Gemini API 文档: ai.google.dev/docs
- Google Gemini 宣传片: www.youtube.com/watch?v=jV1...