Transformasi Metode Tunggal Inferensi AI (SMT) memungkinkan Anda mendapatkan inferensi pada pesan Pub/Sub dari model Gemini Enterprise Agent Platform. Anda dapat menggunakan model kustom Anda sendiri yang di-deploy di endpoint Agent Platform, atau menggunakan salah satu model Google dan partner yang tersedia melalui Agent Platform. Inferensi model ditambahkan ke setiap pesan, sehingga tersedia untuk pemrosesan hilir bersama dengan data pesan asli.
Kasus penggunaan untuk SMT Inferensi AI mencakup hal berikut:
Pengayaan real-time: Tambahkan konteks, klasifikasi, prediksi, sentimen, atau sematan ke data peristiwa saat data tersebut mengalir melalui Pub/Sub.
Pipeline AI yang disederhanakan: Tidak perlu lagi layanan perantara untuk mendapatkan inferensi dari model AI. Pub/Sub menangani panggilan model AI dan memperkaya pesan dengan inferensi.
Mengurangi latensi untuk pipeline AI: Hapus hop jaringan tambahan dalam arsitektur Anda untuk mencapai latensi end-to-end yang lebih rendah.
Kontrol alur yang ditingkatkan: Untuk menghindari kelebihan beban pada endpoint model, Pub/Sub mengoptimalkan kecepatan permintaan ke model AI. Untuk mengetahui informasi selengkapnya, lihat Alur pesan dalam dokumen ini.
SMT Inferensi AI mendukung jenis model berikut:
Model yang di-deploy sendiri. Model terbuka, partner, dan kustom yang di-deploy ke endpoint Agent Platform publik bersama atau khusus.
Model Model-as-a-Service (MaaS). Model yang ditawarkan sebagai layanan melalui Model Garden, seperti Gemini dan Claude, yang tidak mengharuskan Anda mengelola deployment. Untuk mengetahui daftar model MaaS yang kompatibel dengan SMT Inferensi AI, lihat Model MaaS yang kompatibel.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang
diperlukan guna membuat topik atau langganan dengan SMT,
minta administrator untuk memberi Anda peran IAM
Pub/Sub Editor (roles/pubsub.editor) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk membuat topik atau langganan dengan SMT. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat topik atau langganan dengan SMT:
-
Buat topik:
pubsub.topics.createpada project -
Buat langganan:
pubsub.subscriptions.createpada project
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Izin akun layanan
SMT Inferensi AI menggunakan akun layanan IAM untuk memanggil
endpoint Agent Platform. Secara default, akun ini menggunakan akun Agen Layanan Cloud Pub/Sub (service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com).
Anda juga dapat memberikan akun layanan Anda sendiri.
Akun layanan memerlukan izin berikut di project Google Cloud yang berisi endpoint Agent Platform:
aiplatform.endpoints.getaiplatform.endpoints.predict
Untuk memberikan izin ini, berikan peran IAM berikut ke akun layanan:
Jika Anda menggunakan akun layanan Cloud Pub/Sub Service Agent, berikan peran Vertex AI Service Agent.
Jika Anda menggunakan akun layanan lain, berikan peran Vertex AI User.
Pemrosesan pesan
Bagian ini menjelaskan cara SMT Inferensi AI memproses pesan Pub/Sub.
Input
Data pesan Pub/Sub harus berupa permintaan untuk dikirim ke model AI, sebagai string JSON. Anda juga dapat menentukan parameter model tambahan yang akan dikirim dengan setiap permintaan. SMT menggabungkan parameter ini dengan data pesan dan mengirimkan JSON gabungan ke endpoint model.
Tabel berikut menunjukkan API yang dipanggil SMT untuk mendapatkan inferensi, berdasarkan jenis model.
| Deployment model | Jenis model | API |
|---|---|---|
| Di-deploy sendiri | Semua |
rawPredict
|
| Model-as-a-Service (MaaS) |
Model dasar Gemini Contoh: |
Chat Completions API
|
|
Model Gemini lainnya Contoh: |
rawPredict
|
|
| Anthropic, Mistral AI, atau AI21 |
rawPredict
|
|
| Semua model MaaS lainnya |
Chat Completions API
|
Untuk memformat data pesan dan parameter model dengan benar, lihat dokumentasi untuk model Anda. Misalnya, untuk model dasar Gemini, lihat contoh Chat Completions API.
Output
Jika panggilan ke endpoint model berhasil, SMT akan memperkaya pesan Pub/Sub asli dengan respons model. Pesan yang telah dipertajam adalah string JSON seperti berikut, dengan ORIGINAL_MESSAGE adalah data pesan asli dan INFERENCE_RESULT adalah respons dari model:
{
"original_message": { ORIGINAL_MESSAGE },
"model_output": { INFERENCE_RESULT }
}
Alur pesan
SMT Topik: Saat Anda menentukan SMT Inferensi AI pada topik, Pub/Sub menangani pesan masuk sebagai berikut:
Aplikasi penerbit mengirimkan pesan ke topik Pub/Sub.
Pesan dikirim ke endpoint model yang dikonfigurasi untuk inferensi. Pesan yang telah di-enrich, yang berisi data asli dan inferensi model, ditulis ke penyimpanan internal Pub/Sub.
Pub/Sub mengirimkan pesan yang telah di-enrich ke semua langganan yang terlampir.
SMT Langganan: Saat Anda menentukan SMT Inferensi AI pada langganan, Pub/Sub menangani pesan masuk sebagai berikut:
Aplikasi penerbit mengirimkan pesan ke topik Pub/Sub.
Pub/Sub mengirimkan pesan ke langganan.
Pesan dikirim ke endpoint model yang dikonfigurasi untuk inferensi.
Langganan mengirimkan pesan yang telah di-enrich ke aplikasi pelanggan.
Pub/Sub mengoptimalkan kecepatan permintaan ke model AI untuk memaksimalkan throughput, berdasarkan latensi dan kuota deployment Anda. Catatan: Kemampuan ini tidak didukung saat menggunakan unary pull API.
Anda dapat menggabungkan SMT Inferensi AI dengan satu atau beberapa SMT UDF JavaScript. Gunakan pola ini untuk melakukan pra-pemrosesan pesan agar sesuai dengan format input yang diharapkan model Anda, atau melakukan pasca-pemrosesan output model sebelum dikirimkan kepada pelanggan.
Membuat SMT Inferensi AI
SMT dapat dikonfigurasi pada topik atau langganan Pub/Sub.
- SMT topik dieksekusi sebelum Pub/Sub menyimpan pesan, dan hasilnya tersedia untuk semua pelanggan.
SMT langganan dijalankan sebelum pesan dikirim, dan hasilnya hanya tersedia untuk langganan tersebut.
Konsol
Di konsol Google Cloud , buka halaman Topics Pub/Sub.
Buat topik atau langganan.
Untuk membuat topik, klik Buat topik. Halaman Buat topik akan terbuka.
Untuk membuat langganan:
Klik nama topik tempat Anda menginginkan langganan.
Klik Buat langganan. Halaman Add subscription to topic akan terbuka.
Di bagian Transformasi, klik Tambahkan transformasi.
Untuk Transform type, pilih AI Inference.
Untuk Endpoint, masukkan nama resource lengkap dari endpoint model Anda:
- Model yang di-deploy sendiri:
projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT - Model Model Garden:
projects/PROJECT/locations/LOCATION/publishers/PUBLISHER/models/MODEL_NAME
- Model yang di-deploy sendiri:
Opsional. Pilih Service account yang akan digunakan saat memanggil endpoint Agent Platform. Untuk mengetahui informasi selengkapnya, lihat Izin akun layanan.
Opsional. Di kolom Parameters, masukkan parameter model sebagai objek JSON. SMT menggabungkan parameter ini dengan setiap pesan sebelum memanggil model. Contoh:
{ "temperature": 0.5, "max_tokens": 1000 }Untuk membuat topik atau langganan, klik Buat.
gcloud
Membuat file definisi
Buat file YAML atau JSON yang menentukan Inference AI.
YAML
- aiInference:
endpoint: "ENDPOINT_RESOURCE"
unstructuredInference: {
parameters:
MODEL_PARAMETERS
}
service_account_email: SERVICE_ACCOUNT
JSON
{
"aiInference": {
"endpoint": "ENDPOINT_RESOURCE",
"unstructuredInference": {
"parameters": {
MODEL_PARAMETERS
}
}
"service_account_email": SERVICE_ACCOUNT
}
}
Ganti kode berikut:
ENDPOINT_RESOURCE: Nama lengkap resource endpoint model. Gunakan format berikut:
- Model yang di-deploy sendiri:
projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT - Model Model Garden:
projects/PROJECT/locations/LOCATION/publishers/PUBLISHER/models/MODEL_NAME
- Model yang di-deploy sendiri:
MODEL_PARAMETERS: Opsional. Parameter model, ditentukan sebagai objek JSON. SMT menggabungkan parameter ini dengan setiap pesan sebelum memanggil model. Contoh:
{ "temperature": 0.5, "max_tokens": 1000 }SERVICE_ACCOUNT: Opsional. Email akun layanan yang akan digunakan saat memanggil endpoint. Untuk mengetahui informasi selengkapnya, lihat Izin akun layanan.
Membuat topik atau langganan
Untuk membuat topik, jalankan perintah
gcloud pubsub topics create.
gcloud pubsub topics create TOPIC_ID \
--message-transforms-file=TRANSFORMS_FILE
Ganti kode berikut:
- TOPIC_ID: ID atau nama topik yang ingin Anda buat.
- TRANSFORMS_FILE: Jalur ke file definisi.
Untuk membuat langganan, jalankan perintah
gcloud pubsub subscriptions create.
gcloud pubsub subscriptions create SUBSCRIPTION_ID \
--topic=projects/PROJECT_ID/topics/TOPIC_ID \
--message-transforms-file=TRANSFORMS_FILE
Ganti kode berikut:
SUBSCRIPTION_ID: ID atau nama langganan yang akan dibuat.
PROJECT_ID: ID project yang berisi topik.
TOPIC_ID: ID topik yang akan dijadikan langganan.
TRANSFORMS_FILE: Jalur ke file definisi.
Memvalidasi dan menguji
Secara opsional, Anda dapat memvalidasi dan menguji SMT yang dikonfigurasi, sebelum membuat topik atau langganan. Untuk informasi selengkapnya, baca dokumen berikut:
Contoh: Menggunakan SMT Inferensi AI
Contoh berikut menunjukkan cara membuat langganan dengan SMT Inferensi AI, lalu menggunakannya untuk mengirim perintah ke Gemini.
gcloud
Dengan menggunakan editor teks, buat file bernama
ai-smt.yamldan tempelkan teks berikut:- aiInference: endpoint: projects/PROJECT_ID/locations/LOCATION/publishers/google/models/gemini-2.5-flash unstructuredInference: { parameters: { "max_tokens": 25000 } }Ganti kode berikut:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Lokasi endpoint yang akan dipanggil.
Contoh:
us-central1.
Buat topik Pub/Sub baru.
gcloud pubsub topics create TOPIC_IDGanti TOPIC_ID dengan nama topik yang akan dibuat. Contoh:
topic-1.Buat langganan yang memiliki SMT Inferensi AI.
gcloud pubsub subscriptions create TOPIC_ID-sub \ --ack-deadline=600 \ --topic TOPIC_ID \ --message-transforms-file ai-smt.yamlMemublikasikan pesan ke topik. Pesan berisi perintah yang diformat untuk Chat Completions API.
gcloud pubsub topics publish TOPIC_ID --message=$'{ "model":"google/gemini-2.5-flash","messages":[{ "role": "user", "content": "Explain how AI works in a few words" }] }'Menerima pesan dari langganan.
gcloud pubsub subscriptions pull TOPIC_ID-subJika panggilan ke Platform Agen berhasil, pesan akan dilengkapi dengan output dari perintah.
Model MaaS yang kompatibel
Tabel berikut mencantumkan model Model-as-a-Service (MaaS) yang telah diuji Google dengan SMT Inferensi AI dan diketahui kompatibel. Daftar ini dapat berubah, karena model tidak digunakan lagi atau model MaaS baru ditambahkan.
| Model | API yang dipanggil |
|---|---|
google/gemini-2.0-flash-001 |
Chat Completions API |
google/gemini-2.0-flash-lite-001 |
Chat Completions API |
google/gemini-2.5-flash |
Chat Completions API |
google/gemini-2.5-flash-lite |
Chat Completions API |
google/gemini-2.5-pro |
Chat Completions API |
google/gemini-2.5-flash-image |
Chat Completions API |
google/gemini-3-pro-preview |
Chat Completions API |
google/gemini-3-pro-image-preview |
Chat Completions API |
google/gemini-3-flash-preview |
Chat Completions API |
google/gemini-3.1-pro-preview |
Chat Completions API |
google/gemini-3.1-flash-image-preview |
Chat Completions API |
google/gemini-3.1-flash-lite-preview |
Chat Completions API |
meta/llama-3.3-70b-instruct-maas |
Chat Completions API |
meta/llama-4-maverick-17b-128e-instruct-maas |
Chat Completions API |
meta/llama-4-scout-17b-16e-instruct-maas |
Chat Completions API |
deepseek-ai/deepseek-r1-0528-maas |
Chat Completions API |
deepseek-ai/deepseek-v3.1-maas |
Chat Completions API |
qwen/qwen3-235b-a22b-instruct-2507-maas |
Chat Completions API |
qwen/qwen3-coder-480b-a35b-instruct-maas |
Chat Completions API |
openai/gpt-oss-20b-maas |
Chat Completions API |
openai/gpt-oss-120b-maas |
Chat Completions API |
google/text-multilingual-embedding-002 |
rawPredict |
google/text-embedding-005 |
rawPredict |
google/text-embedding-large-exp-03-07 |
rawPredict |
google/gemini-embedding-001 |
rawPredict |
google/multimodalembedding |
rawPredict |
anthropic/claude-sonnet-4 |
rawPredict |
anthropic/claude-sonnet-4-5 |
rawPredict |
anthropic/claude-sonnet-4-6 |
rawPredict |
anthropic/claude-opus-4 |
rawPredict |
anthropic/claude-opus-4-1 |
rawPredict |
anthropic/claude-opus-4-5 |
rawPredict |
anthropic/claude-opus-4-6 |
rawPredict |
anthropic/claude-haiku-4-5 |
rawPredict |
mistralai/mistral-small-2503 |
rawPredict |
mistralai/mistral-medium-3 |
rawPredict |
mistralai/mistral-ocr-2505 |
rawPredict |
mistralai/codestral-2 |
rawPredict |
Batasan
Hanya satu SMT Inferensi AI yang diizinkan per topik atau langganan.
Endpoint pribadi tidak didukung. Model yang di-deploy sendiri harus dihosting di endpoint Platform Agen publik.
Endpoint global hanya didukung untuk model dasar Gemini. Untuk model lainnya, Anda harus menggunakan endpoint regional.
Pub/Sub tidak memvalidasi data pesan input. Anda bertanggung jawab untuk memastikan format data sudah benar.
Transformasi mengirimkan satu permintaan inferensi per pesan Pub/Sub. Pengelompokan sisi klien tidak dilakukan.
Inferensi batch asinkron tidak didukung.
Inferensi tidak boleh memakan waktu lebih dari 60 detik. Jika melebihi 60 detik, upaya pengiriman akan mencapai waktu tunggu dan Pub/Sub akan mencoba lagi, hingga durasi retensi pesan yang dikonfigurasi dan setelan kebijakan percobaan ulang. Jika upaya mencapai waktu tunggu, pesan akan diteruskan ke topik pesan yang pengirimannya dihentikan, jika dikonfigurasi.
Model yang tidak didukung
SMT Inferensi AI tidak mendukung model MaaS berikut. Banyak model ini memiliki versi yang di-deploy sendiri yang dapat Anda gunakan sebagai gantinya.
deepseek-ai/deepseek-ocr-maasdeepseek-ai/deepseek-v3.2-maasgoogle/gemini-embedding-2-previewgoogle/lyria-002google/lyria-3-clip-previewgoogle/lyria-3-pro-previewgoogle/veo-3.1-fast-generate-001google/veo-3.1-generate-001intfloat/multilingual-e5-large-instruct-maasintfloat/multilingual-e5-small-instruct-maasminimaxai/minimax-m2-maasmoonshotai/kimi-k2-thinking-maasqwen/qwen3-next-80b-a3b-instruct-maasqwen/qwen3-next-80b-a3b-thinking-maaszai-org/glm-4.7-maaszai-org/glm-5-maas
Batasan regional
Batasan berikut berlaku untuk SMT Inferensi AI berdasarkan region endpoint Platform Agen.
Jika SMT Inferensi AI ditentukan pada topik, region endpoint harus berada dalam region yang diizinkan oleh kebijakan penyimpanan pesan topik.
Batasan ini juga berlaku untuk SMT langganan jika Terapkan region dalam transit untuk pesan Pub/Sub batasan kebijakan organisasi berlaku.
Jika SMT Inferensi AI ditentukan pada langganan ekspor, maka region endpoint harus berada di region resource terkait:
- Untuk langganan BigQuery, wilayah tabel tujuan.
- Untuk langganan Cloud Storage, region bucket Cloud Storage.
Jika permintaan publikasi dilakukan ke region selain region endpoint, Pub/Sub akan otomatis mengalihkan permintaan ke region endpoint.
Jika Anda menarik dari langganan dengan SMT Inferensi AI, dan permintaan penarikan dibuat ke region selain region endpoint, Pub/Sub akan menolak permintaan tersebut. Sebaiknya gunakan endpoint lokasi untuk langganan pull. Batasan ini berlaku untuk penarikan streaming dan penarikan unary.
Jika langganan push memiliki SMT Inferensi AI, langganan akan mengirimkan pesan dari region endpoint. Jika terjadi pelanggaran batasan regional, Pub/Sub akan berhenti mengirimkan pesan dari langganan tersebut.
Pemecahan masalah
Bagian ini memberikan tips pemecahan masalah untuk SMT Inferensi AI.
Error SMT topik. Jika inferensi gagal saat pesan dipublikasikan, seluruh permintaan publikasi akan gagal. Informasi error ditampilkan ke klien penayang.
Error SMT langganan. Jika inferensi gagal saat pesan dikirim, pesan dapat diteruskan ke topik pesan yang dihentikan pengirimannya. Sebaiknya siapkan topik yang dihentikan pengirimannya saat menggunakan SMT di langganan.
Error inferensi model. Jika inferensi gagal dan menampilkan error, periksa hal berikut:
Pastikan endpoint yang dikonfigurasi sudah benar.
Pastikan data pesan Pub/Sub berisi permintaan inferensi yang valid untuk model Anda.
Pastikan semua parameter model valid.
Inferensi mungkin gagal karena alasan lain, seperti masalah konektivitas.
Error izin atau endpoint. Jika akun layanan yang dikonfigurasi kehilangan izin ke endpoint, atau endpoint dihapus, SMT akan gagal.
Kuota dan batas
Selain kuota dan batas Pub/Sub, SMT Inferensi AI tunduk pada kuota dan batas kecepatan endpoint Agent Platform. Kontrol alur bawaan Pub/Sub secara otomatis menyesuaikan kecepatan permintaan untuk menghindari kelebihan beban pada endpoint, tetapi kecepatan tidak dapat melebihi kuota model.
Ukuran pesan akhir yang telah diubah, termasuk pesan asli dan output inferensi, harus kurang dari batas ukuran pesan Pub/Sub. Jika pesan yang diubah melampaui batas, transformasi akan gagal.
Langkah berikutnya
- Pelajari SMT lebih lanjut
- Memilih SMT topik atau langganan
- Membuat topik dengan SMT
- Membuat langganan dengan SMT