Selain petunjuk umum untuk menggunakan agen, halaman ini menjelaskan fitur yang khusus untuk AdkApp
.
Sebelum memulai
Tutorial ini mengasumsikan bahwa Anda telah membaca dan mengikuti petunjuk dalam:
- Mengembangkan agen Agent Development Kit: untuk mengembangkan
agent
sebagai instanceAdkApp
. - Autentikasi pengguna untuk mengautentikasi sebagai pengguna guna membuat kueri agen.
- Impor dan inisialisasi SDK untuk melakukan inisialisasi klien guna mendapatkan instance yang di-deploy (jika diperlukan).
Untuk mengkueri aplikasi ADK, Anda harus membuat instance aplikasi ADK baru atau mendapatkan instance yang ada terlebih dahulu.
Untuk mendapatkan aplikasi ADK yang sesuai dengan ID resource tertentu:
Vertex AI SDK untuk Python
Jalankan kode berikut:
adk_app = client.agent_engines.get(name="projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID")
Library permintaan Python
Jalankan kode berikut:
from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests
def get_identity_token():
credentials, _ = google_auth.default()
auth_request = google_requests.Request()
credentials.refresh(auth_request)
return credentials.token
response = requests.get(
f"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID",
headers={
"Content-Type": "application/json; charset=utf-8",
"Authorization": f"Bearer {get_identity_token()}",
},
)
REST API
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID
Operasi yang didukung
Operasi berikut didukung untuk AdkApp
:
async_stream_query
: untuk melakukan streaming respons terhadap kueri.async_create_session
: untuk membuat sesi baru.async_list_sessions
: untuk mencantumkan sesi yang tersedia.async_get_session
: untuk mengambil sesi tertentu.async_delete_session
: untuk menghapus sesi tertentu.
Untuk mencantumkan semua operasi yang didukung:
Vertex AI SDK untuk Python
Jalankan kode berikut:
adk_app.operation_schemas()
Library permintaan Python
Jalankan kode berikut:
import json
json.loads(response.content).get("spec").get("classMethods")
REST API
Ditampilkan di spec.class_methods
dari respons terhadap permintaan curl.
Mengelola sesi
AdkApp
menggunakan sesi terkelola berbasis cloud setelah Anda men-deploy agen ke Vertex AI Agent Engine. Bagian ini menjelaskan cara menggunakan sesi terkelola.
Membuat sesi
Untuk membuat sesi bagi pengguna:
Vertex AI SDK untuk Python
session = await adk_app.async_create_session(user_id="USER_ID")
Library permintaan Python
Jalankan kode berikut:
from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests
import json
def get_identity_token():
credentials, _ = google_auth.default()
auth_request = google_requests.Request()
credentials.refresh(auth_request)
return credentials.token
response = requests.post(
f"https://{adk_app.api_client.api_endpoint}/v1/{adk_app.resource_name}:query",
headers={
"Content-Type": "application/json; charset=utf-8",
"Authorization": f"Bearer {get_identity_token()}",
},
data=json.dumps({
"class_method": "async_create_session",
"input": {"user_id": "USER_ID"},
}),
)
print(response.content)
REST API
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID:query -d '{"class_method": "async_create_session", "input": {"user_id": "USER_ID"},}'
dengan USER_ID adalah ID yang ditentukan pengguna dengan batas karakter 128.
Mencantumkan sesi
Untuk mencantumkan sesi pengguna:
Vertex AI SDK untuk Python
await adk_app.async_list_sessions(user_id="USER_ID")
Library permintaan Python
Jalankan kode berikut:
from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests
import json
def get_identity_token():
credentials, _ = google_auth.default()
auth_request = google_requests.Request()
credentials.refresh(auth_request)
return credentials.token
response = requests.post(
f"https://{adk_app.api_client.api_endpoint}/v1/{adk_app.resource_name}:query",
headers={
"Content-Type": "application/json; charset=utf-8",
"Authorization": f"Bearer {get_identity_token()}",
},
data=json.dumps({
"class_method": "async_list_sessions",
"input": {"user_id": "USER_ID"},
}),
)
print(response.content)
REST API
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID:query -d '{"class_method": "async_list_sessions", "input": {"user_id": "USER_ID"},}'
dengan USER_ID adalah ID yang ditentukan pengguna dengan batas karakter 128.
Mendapatkan sesi
Untuk mendapatkan sesi tertentu, Anda memerlukan ID pengguna dan ID sesi:
Vertex AI SDK untuk Python
session = await adk_app.async_get_session(user_id="USER_ID", session_id="SESSION_ID")
Library permintaan Python
Jalankan kode berikut:
from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests
import json
def get_identity_token():
credentials, _ = google_auth.default()
auth_request = google_requests.Request()
credentials.refresh(auth_request)
return credentials.token
response = requests.post(
f"https://{adk_app.api_client.api_endpoint}/v1/{adk_app.resource_name}:query",
headers={
"Content-Type": "application/json; charset=utf-8",
"Authorization": f"Bearer {get_identity_token()}",
},
data=json.dumps({
"class_method": "async_get_session",
"input": {"user_id": "USER_ID", "session_id": "SESSION_ID"},
}),
)
print(response.content)
REST API
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID:query -d '{"class_method": "async_get_session", "input": {"user_id": "USER_ID", "session_id": "SESSION_ID"},}'
Menghapus sesi
Untuk menghapus sesi, Anda memerlukan ID pengguna dan ID sesi:
Vertex AI SDK untuk Python
await adk_app.async_delete_session(user_id="USER_ID", session_id="SESSION_ID")
Library permintaan Python
Jalankan kode berikut:
from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests
import json
def get_identity_token():
credentials, _ = google_auth.default()
auth_request = google_requests.Request()
credentials.refresh(auth_request)
return credentials.token
response = requests.post(
f"https://{adk_app.api_client.api_endpoint}/v1/{adk_app.resource_name}:query",
headers={
"Content-Type": "application/json; charset=utf-8",
"Authorization": f"Bearer {get_identity_token()}",
},
data=json.dumps({
"class_method": "async_delete_session",
"input": {"user_id": "USER_ID", "session_id": "SESSION_ID"},
}),
)
print(response.content)
REST API
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID:query -d '{"class_method": "async_delete_session", "input": {"user_id": "USER_ID", "session_id": "SESSION_ID"},}'
Mengalirkan respons terhadap kueri
Untuk men-streaming respons dari agen dalam sesi:
Vertex AI SDK untuk Python
async for event in adk_app.async_stream_query(
user_id="USER_ID",
session_id="SESSION_ID", # Optional
message="What is the exchange rate from US dollars to SEK today?",
):
print(event)
Library permintaan Python
from google import auth as google_auth
from google.auth.transport import requests as google_requests
import requests
def get_identity_token():
credentials, _ = google_auth.default()
auth_request = google_requests.Request()
credentials.refresh(auth_request)
return credentials.token
requests.post(
f"https://{adk_app.api_client.api_endpoint}/v1/{adk_app.resource_name}:streamQuery",
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {get_identity_token()}",
},
data=json.dumps({
"class_method": "async_stream_query",
"input": {
"user_id": "USER_ID",
"session_id": "SESSION_ID",
"message": "What is the exchange rate from US dollars to SEK today?",
},
}),
stream=True,
)
REST API
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/RESOURCE_ID:streamQuery?alt=sse -d '{
"class_method": "async_stream_query",
"input": {
"user_id": "USER_ID",
"session_id": "SESSION_ID",
"message": "What is the exchange rate from US dollars to SEK today?",
}
}'