Gemini Pro模型API调用指南:申请、实战与问题解决

21

Gemini Pro 模型API调用全攻略:从申请到实战应用

在人工智能领域,Gemini Pro模型以其强大的语言理解和生成能力,吸引了众多开发者。本文将详细介绍如何申请Gemini Pro模型的API密钥,并提供多种API调用方法,以及常见问题的解决方案,助您快速上手并充分利用这一强大的工具。

Gemini Pro 模型API密钥申请

要开始使用Gemini Pro模型,首先需要获取API密钥。以下是详细步骤:

  1. 注册并登录Google账号: 确保您已拥有Google账号,并在浏览器中完成登录。
  2. 访问API密钥申请页面: 前往https://makersuite.google.com/app/apikey
  3. 按照页面提示操作: 按照页面上的指引,创建并获取您的API密钥。请妥善保管您的密钥,避免泄露。

Gemini Pro 模型API调用方法

获取API密钥后,您可以使用多种方法调用Gemini Pro模型。下面介绍两种常用的方法:

一、使用HTTP进行调用

这种方法简单直接,适用于快速测试和原型开发。

import requests
import json

def test_with_http(apikey, text):
    url = f'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key={apikey}'
    headers = {'Content-Type': 'application/json'}
    data = {
        'contents': [
            {
                'parts': [
                    {
                        'text': text
                    }
                ]
            }
        ]
    }
    response = requests.post(url, headers=headers, data=json.dumps(data))
    print(response.json())

if __name__ == '__main__':
    apikey = "这里换成ApiKey"
    text = "请做一个自我介绍"
    test_with_http(apikey=apikey, text=text)

代码解析:

  • 导入必要的库: requests用于发送HTTP请求,json用于处理JSON数据。
  • 构造请求URL: 将API密钥添加到URL中。
  • 设置请求头: 指定Content-Type为application/json。
  • 构造请求数据: 将要发送的文本内容封装成JSON格式。
  • 发送POST请求: 使用requests.post发送请求,并获取响应。
  • 解析响应: 将响应内容解析为JSON格式并打印。

二、基于Google提供的Python库

Google提供了一个专门用于与Gemini模型交互的Python库,使用起来更加方便。

注意事项

根据Gemini API的使用文档,Python版本需要在3.9以上。建议使用Python 3.10或更高版本。

步骤
  1. 创建Python虚拟环境(可选): 为了隔离不同项目的依赖,建议创建一个新的Python虚拟环境:python -m venv pyvenv
  2. 激活虚拟环境(可选): 激活当前环境:.\pyvenv\Scripts\activate (Windows) 或 source pyvenv/bin/activate (Linux/macOS)。
  3. 安装google-generativeai库: 使用pip安装:pip install google-generativeai
  4. 编写测试代码:
import google.generativeai as genai


def test_with_api(apikey, text):
    # 注意这行代码,官方提供的demo没有transport='rest' 会出现超时问题,因此一点要加上
    genai.configure(api_key=apikey, transport='rest')
    model = genai.GenerativeModel('gemini-pro')
    response = model.generate_content(text, stream=True)
    for chunk in response:
        print(chunk.text, end='', flush=True)


if __name__ == '__main__':
    apikey = "这里换成ApiKey"
    text = "请做一个自我介绍"
    test_with_api(apikey=apikey, text=text)

代码解析:

  • 导入google.generativeai库: import google.generativeai as genai
  • 配置API密钥: 使用genai.configure(api_key=apikey, transport='rest')配置API密钥。注意: 必须设置transport='rest',否则可能出现超时问题。
  • 创建GenerativeModel对象: 使用genai.GenerativeModel('gemini-pro')创建一个Gemini Pro模型的实例。
  • 生成内容: 使用model.generate_content(text, stream=True)生成内容,stream=True表示以流式方式返回结果。
  • 处理响应: 遍历响应中的每个chunk,并打印其文本内容。
可能遇到的报错及解决方案
  1. google-auth版本过低:

    • 报错信息: 类似google-auth版本过低的错误。
    • 解决方案: 升级google-auth:pip install --upgrade google-auth
  2. 连接超时问题:

    • 报错信息: google.api_core.exceptions.RetryError: Deadline of 60.0s exceeded while calling target function
    • 原因:
      • 网络问题:请检查您的网络连接。
      • 未设置网络传输方式:请确保在配置API密钥时设置了transport='rest',即genai.configure(api_key=apikey, transport='rest')

Gemini-Pro模型其他应用场景

Gemini Pro模型除了文本生成外,还可以用于图像理解等多种应用场景。

使用gemini-pro-vision进行图片API调用

Gemini提供gemini-progemini-pro-vision两个免费的API服务。gemini-pro-vision专门用于处理图像相关的任务。

步骤
  1. 安装pillow库: pip install pillow
  2. 准备图片: 建议使用jpg格式的图片,并且图片大小尽量控制在500kb以下。
  3. 编写代码:
import google.generativeai as genai
import PIL.Image


def test_gemini_pro_vision(apikey, text, image_path):
    genai.configure(api_key=apikey, transport='rest')
    model = genai.GenerativeModel('gemini-pro-vision')
    img = PIL.Image.open(image_path)
    response = model.generate_content([text, img], stream=True)
    response.resolve()
    print(response.text)


if __name__ == '__main__':
    apikey = "这里换成ApiKey"
    test_gemini_pro_vision(apikey, text="请你描述一下图片的内容。", image_path='2.jpg')

代码解析:

  • 导入必要的库: google.generativeai用于与Gemini模型交互,PIL.Image用于处理图像。
  • 配置API密钥: 使用genai.configure(api_key=apikey, transport='rest')配置API密钥。
  • 创建GenerativeModel对象: 使用genai.GenerativeModel('gemini-pro-vision')创建一个Gemini Pro Vision模型的实例。
  • 打开图像: 使用PIL.Image.open(image_path)打开图像。
  • 生成内容: 使用model.generate_content([text, img], stream=True)生成内容,将文本描述和图像一起作为输入。
  • 处理响应: 使用response.resolve()等待响应完成,并打印其文本内容。

总结

本文详细介绍了Gemini Pro模型API的申请、调用方法以及常见问题的解决方案。通过本文,您可以快速上手Gemini Pro模型,并将其应用到各种实际场景中,例如文本生成、图像理解等。希望这些信息能帮助您更好地利用Gemini Pro模型的强大功能。

参考资料

  1. Gemini API: Quickstart with Python: https://ai.google.dev/tutorials/python_quickstart
  2. 谷歌Gemini Api Key获取方式: apikey