在本指南中,您将使用 API 向 Gemini 发送文本提示,并查看模型回答。
您可以在本地环境中使用适用于 Python 的客户端库或向 REST API 发送命令行请求,完成本指南。
了解 Gemini 支持的语言,您可以使用这些语言发送提示。
准备工作
您必须拥有启用了 Gemini API 的项目,并且必须拥有适当的角色和凭据,然后才能开始发送文本提示,让 Gemini 生成文本。您必须安装、初始化并使用 gdcloud CLI 进行身份验证,并安装适用于 Python 的客户端库。
如需了解详情,请参阅入门指南。
向 Gemini API 发送提示
使用以下代码向 Gemini API 发送文本提示。此示例返回帝国大厦的高度。
您可以通过命令行、使用 IDE 或将代码包含在应用中来运行代码。
Python
请按照以下步骤操作,通过 Python 脚本发送文本提示并生成文本:
将 API 请求保存在名为
request.json的 JSON 文件中。该文件必须类似于以下示例:{ "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "How tall is the Empire State Building?" } ] }如需了解请求正文详情,请参阅设置 API 请求的格式。
您可以尝试在请求中使用不同的参数。如需了解详情,请参阅功能。
安装所需的 Python 库:
pip install openai pip install absl-py pip install typing pip install protobuf将以下代码添加到您创建的 Python 脚本中:
import json import os from absl import app from absl import flags from openai import OpenAI, OpenAIError from google.protobuf import json_format from google.protobuf.struct_pb2 import Value from typing import Sequence _INPUT = flags.DEFINE_string("input", None, "input", required=True) _HOST = flags.DEFINE_string("host", None, "Chat Completion endpoint", required=True) _TOKEN = flags.DEFINE_string("token", None, "STS token", required=True) def chat_completion_client(host): return OpenAI( api_key="None", base_url="https://" + host + "/v1/projects/PROJECT_ID/locations/PROJECT_ID" ) def chat_completion(client, messages, token): try: response = client.chat.completions.create( model="MODEL_ID", messages=messages, extra_headers={"Authorization" : "Bearer " + token, "Content-Type": "application/json"} ) print("response:", response) except Exception as e: print("Got exception:", e) def main(argv: Sequence[str]): del argv # Unused. with open(_INPUT.value) as json_file: data = json.load(json_file) print("Request: ", data) client = chat_completion_client(_HOST.value,) chat_completion(client=client, messages=data["messages"], token=_TOKEN.value) if __name__=="__main__": app.run(main)替换以下内容:
PROJECT_ID:您的项目 ID。MODEL_ID:您要生成回答的模型端点 ID。
保存 Python 脚本。
使用 Chat Completions 界面向 Gemini 发送请求:
python SCRIPT_NAME --input=request.json --host=ENDPOINT --token=TOKEN替换以下内容:
您必须获得类似如下所示的响应:
ChatCompletion(id='', choices=[Choice(finish_reason='', index=0, logprobs=0, message=ChatCompletionMessage(content='The Empire State Building is **1,454 feet** (443 meters) tall.\n', refusal=None, role='assistant', function_call=None, tool_calls=None))], created=0, model='', object='', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=0, prompt_tokens=0, total_tokens=0))
curl
按照以下步骤操作,通过向 REST API 发送 curl 请求来发送文本提示并生成文本:
将 API 请求保存在名为
request.json的 JSON 文件中。该文件必须类似于以下示例:{ "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": "How tall is the Empire State Building?" } ] }如需了解请求正文详情,请参阅设置 API 请求的格式。
您可以尝试在请求中使用不同的参数。如需了解详情,请参阅功能。
发出请求:
curl \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -X POST https://ENDPOINT:443/v1/projects/PROJECT_ID/locations/PROJECT_ID/chat/completions -d @./request.json替换以下内容:
您必须获得类似如下所示的响应:
ChatCompletion(id='', choices=[Choice(finish_reason='', index=0, logprobs=0, message=ChatCompletionMessage(content='The Empire State Building is **1,454 feet** (443 meters) tall.\n', refusal=None, role='assistant', function_call=None, tool_calls=None))], created=0, model='', object='', service_tier=None, system_fingerprint=None, usage=CompletionUsage(completion_tokens=0, prompt_tokens=0, total_tokens=0))