Halaman ini menjelaskan cara menggunakan API dan SDK layanan Masukan untuk mengelola entri dan konteks masukan. Anda dapat menerapkan kontrol masukan kustom (seperti tombol suka atau tidak suka) di antarmuka pengguna seperti widget chat atau aplikasi seluler dan menggunakan layanan Masukan untuk melacak masukan.
Sebelum memulai
Pastikan Anda memiliki:
- Peran Pengguna Agent Platform (
roles/aiplatform.user). - Siapkan autentikasi dengan mengikuti langkah-langkah Authentication.
- Instance Agent Runtime yang di-deploy. Jika Anda tidak memiliki instance yang di-deploy, lihat Men-deploy agen atau lakukan inisialisasi dan buat instance dengan mengikuti langkah-langkah di bagian berikutnya.
- Opsional: Untuk melihat entri masukan di samping peristiwa rekaman aktivitas di konsol, pastikan instance Agent Runtime Anda telah mengaktifkan tracing.
Membuat instance Agent Runtime
Jika Anda belum memiliki instance Agent Runtime, Anda dapat menginisialisasi klien dan membuatnya:
Python SDK
import os
import agentplatform
# Set this environment variable to enable the Enterprise features.
os.environ["GOOGLE_GENAI_USE_ENTERPRISE"] = "TRUE"
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION"
)
# If you don't have an Agent Runtime instance already, create an instance.
agent_engine = client.runtimes.create()
# Optionally, print out the Agent Runtime resource name. You will need the
# resource name to interact with the Feedback service later on.
print(agent_engine.api_resource.name)
REST API
Nama resource Agent Runtime menggunakan format berikut:
projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID
Ganti kode berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region Anda. Lihat wilayah yang didukung untuk Runtime.
- AGENT_ENGINE_ID: ID resource instance Agent Runtime Anda.
Membuat entri masukan
Sebelum mengirimkan masukan, Anda harus memiliki sesi yang sudah ada dengan beberapa pesan yang dipertukarkan antara pengguna dan agen. Identifikasi respons yang ingin Anda kirimi masukan, lalu dapatkan ID peristiwa dan ID sesinya.
Untuk melakukannya:
Buat sesi interaksi dengan agen.
Kirim kueri ke agen dan identifikasi respons yang ingin Anda beri masukan.
Ambil ID sesi dan ID peristiwa respons (yang berfungsi sebagai ID peristiwa untuk entri masukan). Jika menggunakan Layanan Sesi terkelola dengan ADK, Anda bisa mendapatkan ID peristiwa dari kolom
raw_event.idrespons peristiwa daftar (lihat Mencantumkan peristiwa dalam sesi).
Mencatat entri masukan secara terprogram yang terikat langsung ke target session_id
dan event_id yang menentukan peristiwa percakapan agen pengguna.
Python SDK
import os
import agentplatform
# Set this environment variable to enable the Enterprise features.
os.environ["GOOGLE_GENAI_USE_ENTERPRISE"] = "TRUE"
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION"
)
operation = client.feedback_entries.create(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID",
session_id="SESSION_ID",
event_id="EVENT_ID",
feedback_type="THUMBS_UP",
config={
"feedback_text": "The response was helpful and accurate.",
"feedback_labels": ["accurate"],
"user_id": "user-123",
"source": "Chat UI",
"custom_metadata": {"model_temperature": "0.7"},
}
)
# Retrieve the created feedback entry details
feedback_entry = operation.response
print(f"Created feedback entry: {feedback_entry.name}")
Nilai yang didukung untuk feedback_type adalah:
"THUMBS_UP""THUMBS_DOWN""FEEDBACK_TYPE_UNSPECIFIED"
REST API
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region tempat instance Agent Engine Anda berada.
- AGENT_ENGINE_ID: ID resource instance Agent Engine Anda.
- SESSION_ID: ID sesi yang menentukan percakapan yang terkait dengan masukan.
- EVENT_ID: ID peristiwa yang mengidentifikasi pesan atau node tertentu yang menjadi target masukan.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries
Meminta isi JSON:
{
"sessionId": "SESSION_ID",
"eventId": "EVENT_ID",
"feedbackType": "THUMBS_DOWN",
"feedbackLabels": ["inaccurate"],
"feedbackText": "The answer was incorrect.",
"userId": "user-123",
"source": "Chat UI",
"customMetadata": {
"temperature": "0.7"
}
}
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries"
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries" | Select-Object -Expand Content
Anda menerima operasi yang berjalan lama yang menunjukkan status pembuatan entri masukan.
Mengambil entri masukan
Ambil payload terstruktur lengkap dari catatan masukan terisolasi menggunakan alamat resource uniknya.
Python SDK
import os
import agentplatform
# Set this environment variable to enable the Enterprise features.
os.environ["GOOGLE_GENAI_USE_ENTERPRISE"] = "TRUE"
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION"
)
feedback_entry = client.feedback_entries.get(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID"
)
print(f"Feedback Type: {feedback_entry.feedback_type}")
print(f"Feedback Text: {feedback_entry.feedback_text}")
REST API
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region tempat instance Agent Engine Anda berada.
- AGENT_ENGINE_ID: ID resource instance Agent Engine Anda.
- FEEDBACK_ENTRY_ID: ID resource entri masukan.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID" | Select-Object -Expand Content
Respons mencakup detail entri masukan seperti ID sesi, jenis, label, dan teks.
Mencantumkan entri masukan
Mencantumkan entri masukan di instance Agent Runtime Anda. Anda dapat menerapkan filter dan properti pengurutan.
Python SDK
import os
import agentplatform
# Set this environment variable to enable the Enterprise features.
os.environ["GOOGLE_GENAI_USE_ENTERPRISE"] = "TRUE"
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION"
)
response = client.feedback_entries.list(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID",
config={
"filter": 'session_id="SESSION_ID"',
"order_by": "create_time desc"
}
)
for entry in response:
print(f"Entry name: {entry.name}, Type: {entry.feedback_type}")
REST API
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region tempat instance Agent Engine Anda berada.
- AGENT_ENGINE_ID: ID resource instance Agent Engine Anda.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries" | Select-Object -Expand Content
Respons mencakup daftar entri masukan yang cocok dengan filter yang diterapkan, beserta token penomoran halaman jika ada entri tambahan.
Anda dapat menggunakan parameter kueri filter untuk membuat kueri menurut atribut tertentu. Untuk
mengurutkan, gunakan parameter kueri order_by.
Kolom yang didukung untuk pemfilteran:
session_id, sepertisession_id="SESSION_ID"user_id, sepertiuser_id="YOUR_USER_ID"feedback_type, sepertifeedback_type="THUMBS_DOWN"feedback_labels, sepertifeedback_labels: "inaccurate"create_timeupdate_time
Kolom yang didukung untuk pengurutan:
create_timeupdate_time
Memperbarui entri masukan
Memperbarui detail pada entri masukan yang ada seperti mengubah label, komentar, atau metadata kustom.
Python SDK
import os
import agentplatform
# Set this environment variable to enable the Enterprise features.
os.environ["GOOGLE_GENAI_USE_ENTERPRISE"] = "TRUE"
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION"
)
operation = client.feedback_entries.update(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID",
feedback_type="THUMBS_DOWN",
config={
"feedback_text": "Actually, this response was not accurate.",
"feedback_labels": ["inaccurate"],
}
)
updated_entry = operation.response
print(f"Updated entry: {updated_entry.name}")
REST API
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region tempat instance Agent Engine Anda berada.
- AGENT_ENGINE_ID: ID resource instance Agent Engine Anda.
- FEEDBACK_ENTRY_ID: ID resource entri masukan yang akan diperbarui.
Metode HTTP dan URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID?updateMask=feedbackType,feedbackLabels,feedbackText
Meminta isi JSON:
{
"feedbackType": "THUMBS_DOWN",
"feedbackLabels": ["inaccurate", "incomplete"],
"feedbackText": "The response was details-lacking and inaccurate."
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID?updateMask=feedbackType,feedbackLabels,feedbackText"
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 PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID?updateMask=feedbackType,feedbackLabels,feedbackText" | Select-Object -Expand Content
Anda menerima operasi yang berjalan lama yang menunjukkan progres operasi update.
Menghapus entri masukan
Menghapus entri masukan secara permanen dari project Anda.
Python SDK
import os
import agentplatform
# Set this environment variable to enable the Enterprise features.
os.environ["GOOGLE_GENAI_USE_ENTERPRISE"] = "TRUE"
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION"
)
client.feedback_entries.delete(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID"
)
print("Feedback entry deleted.")
REST API
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region tempat instance Agent Engine Anda berada.
- AGENT_ENGINE_ID: ID resource instance Agent Engine Anda.
- FEEDBACK_ENTRY_ID: ID resource entri masukan yang akan dihapus.
Metode HTTP dan URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID" | Select-Object -Expand Content
Anda menerima operasi yang berjalan lama yang menampilkan status penghapusan.
Konteks masukan
Konteks masukan (FeedbackContext) adalah resource turunan dari
entri masukan (FeedbackEntry) yang dibuat dan dihapus secara otomatis
bersama dengan entri masukan induknya. Secara default, konteks masukan
berisi daftar peristiwa kosong.
Konteks masukan menyimpan transkrip atau status peristiwa yang terkait dengan entri masukan. Pemisahan resource ini:
- Mempertahankan histori percakapan: Meskipun sesi asli dihapus, transkrip atau log yang disimpan dalam konteks masukan akan dipertahankan.
- Mengurangi ukuran respons: Saat mengambil entri masukan, Anda tidak perlu mengambil detail konteks yang mendetail.
Resource FeedbackContext memiliki struktur berikut:
projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID/feedbackContext
Mengambil konteks masukan
Dapatkan detail dan peristiwa percakapan yang disimpan dalam konteks masukan:
Python SDK
import os
import agentplatform
# Set this environment variable to enable the Enterprise features.
os.environ["GOOGLE_GENAI_USE_ENTERPRISE"] = "TRUE"
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION"
)
feedback_context = client.feedback_entries.feedback_contexts.get(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID/feedbackContext"
)
# Point to event list
for event in feedback_context.context_events:
print(f"Author: {event.author}")
if event.content and event.content.parts:
print(f"Content: {event.content.parts[0].text}")
REST API
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region tempat instance Agent Engine Anda berada.
- AGENT_ENGINE_ID: ID resource instance Agent Engine Anda.
- FEEDBACK_ENTRY_ID: ID resource entri masukan.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID/feedbackContext
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID/feedbackContext"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID/feedbackContext" | Select-Object -Expand Content
Respons mencakup detail untuk konteks masukan yang diminta, termasuk daftar peristiwa percakapan yang terkait dengan entri masukan induk.
Membuat dan memperbarui konteks masukan
Python SDK
Untuk mengisi atau mengubah histori percakapan yang terkait dengan entri masukan, perbarui konteks masukan menggunakan alur dua langkah berikut:
- Buat entri masukan: Panggil metode standar untuk membuat catatan masukan utama.
- Perbarui konteks masukan: Setelah mendapatkan ID entri masukan, kirim permintaan untuk mengisi peristiwa konteks.
import os
import agentplatform
# Set this environment variable to enable the Enterprise features.
os.environ["GOOGLE_GENAI_USE_ENTERPRISE"] = "TRUE"
client = agentplatform.Client(
project="PROJECT_ID",
location="LOCATION"
)
# Construct conversation events
session_event = {
"author": "user",
"content": {
"role": "user",
"parts": [{"text": "Hello Agent"}]
}
}
operation = client.feedback_entries.feedback_contexts.update(
name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID",
context_events=[session_event]
)
updated_context = operation.response
print("Feedback context updated successfully.")
REST API
Untuk mengisi atau mengubah histori percakapan yang terkait dengan entri masukan, perbarui konteks masukan menggunakan alur dua langkah berikut:
- Buat entri masukan: Panggil
CreateFeedbackEntryuntuk membuat catatan masukan utama. - Perbarui konteks masukan: Setelah Anda mendapatkan ID entri masukan, kirim permintaan
PATCHke resource turunan konteks (UpdateFeedbackContext) untuk mengisicontextEvents.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region tempat instance Agent Engine Anda berada.
- AGENT_ENGINE_ID: ID resource instance Agent Engine Anda.
- FEEDBACK_ENTRY_ID: ID resource entri masukan.
Metode HTTP dan URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID/feedbackContext?updateMask=contextEvents
Meminta isi JSON:
{
"contextEvents": [
{
"author": "user",
"content": {
"role": "user",
"parts": [
{
"text": "What is the capital of France?"
}
]
}
},
{
"author": "agent",
"content": {
"role": "model",
"parts": [
{
"text": "Paris is the capital of France."
}
]
}
}
]
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID/feedbackContext?updateMask=contextEvents"
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 PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_ENGINE_ID/feedbackEntries/FEEDBACK_ENTRY_ID/feedbackContext?updateMask=contextEvents" | Select-Object -Expand Content
Anda menerima operasi yang berjalan lama yang menunjukkan progres update konteks masukan.
Untuk menghapus konteks masukan, kirim update kosong (misalnya, dengan
context_events ditetapkan ke daftar kosong).