Banyak model terbuka di Vertex AI menawarkan model terkelola sepenuhnya dan serverless sebagai API menggunakan Chat Completions API Vertex AI. Untuk model ini, Anda tidak perlu menyediakan atau mengelola infrastruktur.
Anda dapat melakukan streaming respons untuk mengurangi persepsi latensi pengguna akhir. Respons yang di-streaming menggunakan peristiwa yang dikirim server (SSE) untuk mengalirkan respons secara bertahap.
Halaman ini menunjukkan cara melakukan panggilan streaming dan non-streaming ke model terbuka yang mendukung OpenAI Chat Completions API. Untuk pertimbangan khusus Llama, lihat Meminta prediksi Llama.
Sebelum memulai
Untuk menggunakan model terbuka dengan Vertex AI, Anda harus melakukan
langkah-langkah berikut. Vertex AI API
(aiplatform.googleapis.com
) harus diaktifkan untuk menggunakan
Vertex AI. Jika sudah memiliki project dengan
Vertex AI API yang diaktifkan, Anda dapat menggunakan project tersebut, bukan membuat
project baru.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Buka kartu model Model Garden untuk model yang ingin Anda gunakan, lalu klik Aktifkan untuk mengaktifkan penggunaan model di project Anda.
- MODEL: Nama model yang ingin Anda gunakan,
misalnya
deepseek-ai/deepseek-v3.1-maas
. - ROLE: Peran yang terkait dengan
pesan. Anda dapat menentukan
user
atauassistant
. Pesan pertama harus menggunakan peranuser
. Model beroperasi dengan giliranuser
danassistant
yang bergantian. Jika pesan terakhir menggunakan peranassistant
, maka konten respons akan langsung dilanjutkan dari konten dalam pesan tersebut. Anda dapat menggunakan ini untuk membatasi bagian respons model. - CONTENT: Konten, seperti
teks, dari pesan
user
atauassistant
. - MAX_OUTPUT_TOKENS:
Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.
Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk potensi respons yang lebih panjang.
- LOCATION: Region yang mendukung model terbuka.
- MODEL: Nama model yang ingin Anda gunakan,
misalnya
deepseek-ai/deepseek-v2
. - ROLE: Peran yang terkait dengan
pesan. Anda dapat menentukan
user
atauassistant
. Pesan pertama harus menggunakan peranuser
. Model beroperasi dengan giliranuser
danassistant
yang bergantian. Jika pesan terakhir menggunakan peranassistant
, maka konten respons akan langsung dilanjutkan dari konten dalam pesan tersebut. Anda dapat menggunakan ini untuk membatasi bagian respons model. - CONTENT: Konten, seperti
teks, dari pesan
user
atauassistant
. - MAX_OUTPUT_TOKENS:
Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.
Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk potensi respons yang lebih panjang.
- STREAM: Boolean yang menentukan
apakah respons di-streaming atau tidak. Streaming respons Anda untuk mengurangi persepsi latensi penggunaan akhir. Setel ke
true
untuk melakukan streaming respons danfalse
untuk menampilkan respons sekaligus. - MODEL: Nama model yang ingin Anda gunakan,
misalnya
deepseek-ai/deepseek-v3.1-maas
. - ROLE: Peran yang terkait dengan
pesan. Anda dapat menentukan
user
atauassistant
. Pesan pertama harus menggunakan peranuser
. Model beroperasi dengan giliranuser
danassistant
yang bergantian. Jika pesan terakhir menggunakan peranassistant
, maka konten respons akan langsung dilanjutkan dari konten dalam pesan tersebut. Anda dapat menggunakan ini untuk membatasi bagian respons model. - CONTENT: Konten, seperti
teks, dari pesan
user
atauassistant
. - MAX_OUTPUT_TOKENS:
Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.
Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk potensi respons yang lebih panjang.
- LOCATION: Region yang mendukung model terbuka.
- MODEL: Nama model yang ingin Anda gunakan,
misalnya
deepseek-ai/deepseek-v2
. - ROLE: Peran yang terkait dengan
pesan. Anda dapat menentukan
user
atauassistant
. Pesan pertama harus menggunakan peranuser
. Model beroperasi dengan giliranuser
danassistant
yang bergantian. Jika pesan terakhir menggunakan peranassistant
, maka konten respons akan langsung dilanjutkan dari konten dalam pesan tersebut. Anda dapat menggunakan ini untuk membatasi bagian respons model. - CONTENT: Konten, seperti
teks, dari pesan
user
atauassistant
. - MAX_OUTPUT_TOKENS:
Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.
Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk potensi respons yang lebih panjang.
- STREAM: Boolean yang menentukan
apakah respons di-streaming atau tidak. Streaming respons Anda untuk mengurangi persepsi latensi penggunaan akhir. Setel ke
true
untuk melakukan streaming respons danfalse
untuk menampilkan respons sekaligus. - Pelajari cara menggunakan Panggilan fungsi.
- Pelajari Output terstruktur.
- Pelajari Prediksi batch.
Melakukan panggilan streaming ke model terbuka
Contoh berikut melakukan panggilan streaming ke model terbuka:
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Sebelum menjalankan contoh ini, pastikan untuk menetapkan variabel lingkungan OPENAI_BASE_URL
.
Untuk mengetahui informasi selengkapnya, lihat Autentikasi dan kredensial.
from openai import OpenAI client = OpenAI() stream = client.chat.completions.create( model="MODEL", messages=[{"role": "ROLE", "content": "CONTENT"}], max_tokens=MAX_OUTPUT_TOKENS, stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="")
REST
Setelah Anda menyiapkan lingkungan, Anda dapat menggunakan REST untuk menguji perintah teks. Contoh berikut mengirim permintaan ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Isi JSON permintaan:
{ "model": "MODEL", "messages": [ { "role": "ROLE", "content": "CONTENT" } ], "max_tokens": MAX_OUTPUT_TOKENS, "stream": true }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Melakukan panggilan non-streaming ke model terbuka
Contoh berikut melakukan panggilan non-streaming ke model terbuka:
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Sebelum menjalankan contoh ini, pastikan untuk menetapkan variabel lingkungan OPENAI_BASE_URL
.
Untuk mengetahui informasi selengkapnya, lihat Autentikasi dan kredensial.
from openai import OpenAI client = OpenAI() completion = client.chat.completions.create( model="MODEL", messages=[{"role": "ROLE", "content": "CONTENT"}], max_tokens=MAX_OUTPUT_TOKENS, stream=False, ) print(completion.choices[0].message)
REST
Setelah Anda menyiapkan lingkungan, Anda dapat menggunakan REST untuk menguji perintah teks. Contoh berikut mengirim permintaan ke endpoint model penayang.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
Isi JSON permintaan:
{ "model": "MODEL", "messages": [ { "role": "ROLE", "content": "CONTENT" } ], "max_tokens": MAX_OUTPUT_TOKENS, "stream": false }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip seperti berikut:
Endpoint regional dan global
Untuk endpoint regional, permintaan ditayangkan dari region yang Anda tentukan. Jika Anda memiliki persyaratan residensi data atau jika model tidak mendukung endpoint global, gunakan endpoint regional.
Saat Anda menggunakan endpoint global, Google dapat memproses dan menayangkan permintaan Anda dari region mana pun yang didukung oleh model yang Anda gunakan. Hal ini dapat menyebabkan latensi yang lebih tinggi dalam beberapa kasus. Endpoint global membantu meningkatkan ketersediaan secara keseluruhan dan membantu mengurangi error.
Tidak ada perbedaan harga dengan endpoint regional saat Anda menggunakan endpoint global. Namun, kuota endpoint global dan kemampuan model yang didukung dapat berbeda dengan endpoint regional. Untuk mengetahui informasi selengkapnya, lihat halaman model pihak ketiga terkait.
Menentukan endpoint global
Untuk menggunakan endpoint global, tetapkan region ke global
.
Misalnya, URL permintaan untuk perintah curl menggunakan format berikut:
https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/endpoints/openapi
Untuk Vertex AI SDK, endpoint regional adalah defaultnya. Tetapkan
region ke GLOBAL
untuk menggunakan endpoint global.
Membatasi penggunaan endpoint API global
Untuk membantu menerapkan penggunaan endpoint regional, gunakan batasan kebijakan organisasi constraints/gcp.restrictEndpointUsage
untuk memblokir permintaan ke endpoint API global. Untuk mengetahui informasi selengkapnya, lihat Membatasi penggunaan endpoint.