如何向 Gemini API 请求添加 maxOutputTokens 参数

问题描述 投票:0回答:1

我想在我的代码中添加

maxOutputTokens
参数,但我不知道如何。

import requests


API_KEY = 'INPUT_API_KEY'
API_URL = 'https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent'


def call_gemini_api(prompt):
    headers = {
        'Content-Type': 'application/json',
        'x-goog-api-key': API_KEY,
    }
    data = {
        'contents': [
            {
                'role': 'model',
                'parts': [{'text': 'You are AI'}]
            },
            {
                'role': 'user',
                'parts': [{'text': prompt}]
            }
        ]
    }
    response = requests.post(API_URL, headers=headers, json=data)
    return response.json()

prompt = "Hello"
response = call_gemini_api(prompt)
print(response)
python google-gemini gemini
1个回答
0
投票

除了您的具体问题之外,关于您提供的代码,还有几件事需要注意。

首先,如果您使用 REST,有两个有用的资源可以帮助您了解需要发送到 Gemini 的数据结构。

鉴于这些,您可以看到,如果要调整

maxOutputTokens

,您需要向 
data
 变量添加一个名为 
generationConfig
 的新对象,并且它会有一个 
maxOutputTokens
 参数。

在您的代码中,它可能看起来像这样:

data = { 'contents': [ # contents omitted for clarity ], 'generationConfig': { 'maxOutputTokens': 1024 } }
但是,我想指出您提供的代码的其他一些问题:

  • contents
    数组
    必须在“用户”和“模型”角色之间交替,并且“用户”角色必须既是第一个也是最后一个。
  • 您在 URL 中指定“v1”。虽然这是有效的,但 Gemini 的许多功能在 v1 中无法使用。您不妨考虑使用“v1beta”。
  • 您正在指定“gemini-pro”模型。目前,这是“gemini-1.0-pro”的别名,而“gemini-1.0-pro”目前是“gemini-1.0-pro-001”的别名。鉴于有更好、更便宜的型号可供选择,并且具有更多功能,例如“gemini-1.5-flex”,您可能希望考虑切换。
如果您对这些有疑问 - 请打开一个新的 Stack Overflow 问题。

最后,正如评论中所述,您可能只想考虑使用标准 python 库或其他一些第三方库。除非您需要手动使用 REST 接口,否则该库提供了一些额外的抽象(例如历史记录),可以使某些任务变得更容易。

© www.soinside.com 2019 - 2024. All rights reserved.