Mengirim perintah teks

Dalam panduan ini, Anda akan mengirimkan perintah teks ke Gemini menggunakan API dan melihat respons model.

Anda dapat menyelesaikan panduan ini dengan menggunakan library klien untuk Python di lingkungan lokal atau mengirim permintaan command line ke REST API.

Pelajari bahasa yang didukung Gemini yang dapat Anda gunakan untuk mengirim perintah.

Sebelum memulai

Sebelum dapat mulai mengirim perintah teks agar Gemini menghasilkan teks, Anda harus memiliki project dengan Gemini API yang diaktifkan, dan Anda harus memiliki peran dan kredensial yang sesuai. Anda harus menginstal, melakukan inisialisasi, dan melakukan autentikasi dengan gdcloud CLI serta menginstal library klien untuk Python.

Untuk mengetahui informasi selengkapnya, lihat Mulai.

Mengirim perintah ke Gemini API

Gunakan kode berikut untuk mengirim perintah teks ke Gemini API. Contoh ini menampilkan tinggi gedung Empire State.

Anda dapat menjalankan kode dari command line, dengan menggunakan IDE, atau dengan menyertakan kode dalam aplikasi Anda.

Python

Ikuti langkah-langkah berikut untuk mengirim perintah teks dan membuat teks dari skrip Python:

  1. Simpan permintaan API Anda dalam file JSON bernama request.json. File harus terlihat seperti contoh berikut:

    {
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful assistant."
          },
          {
            "role": "user",
            "content": "How tall is the Empire State Building?"
          }
        ]
    }
    

    Untuk mengetahui detail isi permintaan, lihat Memformat permintaan API.

    Anda dapat bereksperimen dengan parameter dalam permintaan Anda. Untuk mengetahui informasi selengkapnya, lihat Kemampuan.

  2. Instal library Python yang diperlukan:

    pip install openai
    pip install absl-py
    pip install typing
    pip install protobuf
    
  3. Tetapkan variabel lingkungan yang diperlukan pada skrip Python.

  4. Lakukan autentikasi permintaan API Anda.

  5. Tambahkan kode berikut ke skrip Python yang Anda buat:

    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)
    

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda.
    • MODEL_ID: ID endpoint model yang ingin Anda gunakan untuk membuat respons.
  6. Simpan skrip Python.

  7. Mengirim permintaan ke Gemini dengan antarmuka Chat Completions:

    python SCRIPT_NAME --input=request.json --host=ENDPOINT --token=TOKEN
    

    Ganti kode berikut:

    • SCRIPT_NAME: nama yang Anda berikan ke skrip Python, seperti client.py.
    • ENDPOINT: endpoint Gemini yang Anda gunakan untuk organisasi Anda. Untuk mengetahui informasi selengkapnya, lihat status dan endpoint layanan.
    • TOKEN: token autentikasi yang Anda peroleh.

Anda harus mendapatkan respons yang mirip dengan berikut ini:

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

Ikuti langkah-langkah berikut untuk mengirim perintah teks dan membuat teks melalui permintaan curl ke REST API:

  1. Simpan permintaan API Anda dalam file JSON bernama request.json. File harus terlihat seperti contoh berikut:

    {
        "messages": [
          {
            "role": "system",
            "content": "You are a helpful assistant."
          },
          {
            "role": "user",
            "content": "How tall is the Empire State Building?"
          }
        ]
    }
    

    Untuk mengetahui detail isi permintaan, lihat Memformat permintaan API.

    Anda dapat bereksperimen dengan parameter dalam permintaan Anda. Untuk mengetahui informasi selengkapnya, lihat Kemampuan.

  2. Lakukan autentikasi permintaan API Anda.

  3. Buat permintaan:

    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
    

    Ganti kode berikut:

Anda harus mendapatkan respons yang mirip dengan berikut ini:

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))

Langkah berikutnya