Memulai
Sebelum menggunakan Vertex AI Agent Engine Memory Bank, Anda harus menyiapkan lingkungan.
Menyiapkan project Google Cloud
Setiap project dapat diidentifikasi dengan dua cara: nomor project atau project ID. PROJECT_NUMBER
dibuat secara otomatis saat Anda
membuat project, sedangkan PROJECT_ID
dibuat oleh Anda,
atau siapa pun yang membuat project. Untuk menyiapkan project:
- 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. Jika Anda tidak menggunakan Vertex AI dalam mode ekspres, ikuti petunjuk di Mengautentikasi ke Vertex AI.
Jika Anda menggunakan Vertex AI dalam mode ekspres, siapkan autentikasi dengan menyetel kunci API di lingkungan:
os.environ["API_KEY"] = "API_KEY"
PROJECT_ID
adalah project ID Anda.LOCATION
adalah salah satu wilayah yang didukung untuk Memory Bank.- STAGING_BUCKET: Bucket Cloud Storage Anda yang akan digunakan untuk menyiapkan Runtime Agent Engine.
- AGENT_ENGINE_NAME: Nama Agent Engine. Harus dalam format
projects/.../locations/.../reasoningEngines/...
. Lihat region yang didukung untuk Bank Memori. - Konfigurasi penyesuaian: Mengonfigurasi cara kenangan harus diekstrak dari data sumber.
- Konfigurasi penelusuran kesamaan: Mengonfigurasi model embedding yang digunakan untuk penelusuran kesamaan. Nilai defaultnya adalah
text-embedding-005
. - Konfigurasi pembuatan: Mengonfigurasi LLM yang digunakan untuk pembuatan memori. Nilai defaultnya adalah
gemini-2.5-flash
. - Konfigurasi TTL: Mengonfigurasi cara TTL ditetapkan secara otomatis untuk kenangan yang dibuat atau diperbarui. Defaultnya adalah tanpa TTL.
- Mengonfigurasi topik memori: Tentukan jenis informasi yang harus dipertahankan oleh Bank Memori karena dianggap penting. Hanya informasi yang sesuai dengan salah satu topik kenangan ini yang akan dipertahankan oleh Bank Memori.
- Memberikan contoh few-shot: Menunjukkan perilaku yang diharapkan untuk ekstraksi memori ke Bank Memori.
Topik terkelola: Label dan petunjuk ditentukan oleh Memory Bank. Anda hanya perlu memberikan nama topik terkelola. Misalnya,
Kamus
memory_topic = { "managed_memory_topic": { "managed_topic_enum": "USER_PERSONAL_INFO" } }
Berbasis kelas
from vertexai.types import ManagedTopicEnum from vertexai.types import MemoryBankCustomizationConfigMemoryTopic as MemoryTopic from vertexai.types import MemoryBankCustomizationConfigMemoryTopicManagedMemoryTopic as ManagedMemoryTopic memory_topic = MemoryTopic( managed_memory_topic=ManagedMemoryTopic( managed_topic_enum=ManagedTopicEnum.USER_PERSONAL_INFO ) )
Topik terkelola berikut didukung oleh Memory Bank:
- Informasi pribadi (
USER_PERSONAL_INFO
): Informasi pribadi yang signifikan tentang pengguna, seperti nama, hubungan, hobi, dan tanggal penting. Misalnya, "Saya bekerja di Google" atau "Ulang tahun pernikahan saya pada 31 Desember". - Preferensi pengguna (
USER_PREFERENCES
): Suka, tidak suka, gaya, atau pola yang dinyatakan atau tersirat. Misalnya, "Saya lebih suka tempat duduk di tengah". - Peristiwa percakapan utama dan hasil tugas (
KEY_CONVERSATION_DETAILS
): Tonggak penting atau kesimpulan dalam dialog. Misalnya, "Saya memesan tiket pesawat untuk perjalanan pulang pergi antara JFK dan SFO. Saya berangkat pada 1 Juni 2025 dan kembali pada 7 Juni 2025." - Petunjuk ingat / lupa eksplisit (
EXPLICIT_INSTRUCTIONS
): Informasi yang secara eksplisit diminta pengguna kepada agen untuk diingat atau dilupakan. Misalnya, jika pengguna mengatakan "Ingat bahwa saya terutama menggunakan Python", Bank Memori akan membuat memori seperti "Saya terutama menggunakan Python".
- Informasi pribadi (
Topik kustom: Label dan petunjuk ditentukan oleh Anda saat menyiapkan instance Bank Memori. Informasi ini akan digunakan dalam perintah untuk langkah ekstraksi Bank Memori. Misalnya,
Kamus
memory_topic = { "custom_memory_topic": { "label": "business_feedback", "description": """Specific user feedback about their experience at the coffee shop. This includes opinions on drinks, food, pastries, ambiance, staff friendliness, service speed, cleanliness, and any suggestions for improvement.""" } }
Berbasis kelas
from vertexai.types import MemoryBankCustomizationConfigMemoryTopic as MemoryTopic from vertexai.types import MemoryBankCustomizationConfigMemoryTopicCustomMemoryTopic as CustomMemoryTopic memory_topic = MemoryTopic( custom_memory_topic=CustomMemoryTopic( label="business_feedback", description="""Specific user feedback about their experience at the coffee shop. This includes opinions on drinks, food, pastries, ambiance, staff friendliness, service speed, cleanliness, and any suggestions for improvement.""" ) )
Saat menggunakan topik kustom, sebaiknya berikan juga contoh sedikit tembakan yang menunjukkan cara mengekstrak kenangan dari percakapan Anda.
- EMBEDDING_MODEL: Model embedding teks Google yang akan digunakan untuk penelusuran kesamaan, dalam format
projects/{project}/locations/{location}/publishers/google/models/{model}
. - LLM_MODEL: Model LLM Google yang akan digunakan untuk mengekstrak dan menggabungkan kenangan, dalam format
projects/{project}/locations/{location}/publishers/google/models/{model}
. TTL Default: TTL akan diterapkan ke semua operasi yang membuat atau memperbarui memori, termasuk
UpdateMemory
,CreateMemory
, danGenerateMemories
.Kamus
memory_bank_config = { "ttl_config": { "default_ttl": f"TTLs" } }
Berbasis kelas
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfig as MemoryBankConfig from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigTtlConfig as TtlConfig memory_bank_config = MemoryBankConfig( ttl_config=TtlConfig( default_ttl=f"TTLs" ) )
Ganti kode berikut:
- TTL: Durasi dalam detik untuk TTL. Untuk kenangan yang diperbarui, waktu habis masa berlaku yang baru dihitung (sekarang + TTL) akan menggantikan waktu habis masa berlaku Kenangan sebelumnya.
TTL terperinci (per operasi): TTL dihitung berdasarkan operasi yang membuat atau memperbarui Memori. Jika tidak ditetapkan untuk operasi tertentu, operasi tidak akan memperbarui waktu habis masa berlaku Memori.
Kamus
memory_bank_config = { "ttl_config": { "granular_ttl": { "create_ttl": f"CREATE_TTLs", "generate_created_ttl": f"GENERATE_CREATED_TTLs", "generate_updated_ttl": f"GENERATE_UPDATED_TTLs" } } }
Berbasis kelas
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfig as MemoryBankConfig from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigTtlConfig as TtlConfig from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigTtlConfigGranularTtlConfig as GranularTtlConfig memory_bank_config = MemoryBankConfig( ttl_config=TtlConfig( granular_ttl_config=GranularTtlConfig( create_ttl=f"CREATE_TTLs", generate_created_ttl=f"GENERATE_CREATED_TTLs", generate_updated_ttl=f"GENERATE_UPDATED_TTLs", ) ) )
Ganti kode berikut:
- CREATE_TTL: Durasi dalam detik untuk TTL memori yang dibuat menggunakan
CreateMemory
. - GENERATE_CREATED_TTL: Durasi dalam detik untuk TTL memori yang dibuat menggunakan
GeneratedMemories
. - GENERATE_UPDATED_TTL: Durasi dalam detik untuk TTL kenangan yang diperbarui menggunakan
GeneratedMemories
. Waktu habis masa berlaku yang baru dihitung (sekarang + TTL) akan menggantikan waktu habis masa berlaku Memori sebelumnya.
- CREATE_TTL: Durasi dalam detik untuk TTL memori yang dibuat menggunakan
Mendapatkan peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menggunakan Vertex AI Agent Engine, minta administrator Anda untuk memberi Anda peran IAM Vertex AI User (roles/aiplatform.user
) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.
Jika Anda membuat permintaan ke Memory Bank dari agen yang di-deploy di Google Kubernetes Engine atau Cloud Run, pastikan akun layanan Anda memiliki izin yang diperlukan. Agen Layanan Reasoning Engine sudah memiliki izin yang diperlukan untuk membaca dan menulis memori, sehingga permintaan keluar dari Runtime Agent Engine seharusnya sudah memiliki izin untuk mengakses Bank Memori.
Menginstal library
Bagian ini mengasumsikan bahwa Anda telah menyiapkan lingkungan pengembangan Python, atau menggunakan runtime dengan lingkungan pengembangan Python (seperti Colab).
Instal Vertex AI SDK:
pip install google-cloud-aiplatform>=1.111.0
Autentikasi
Petunjuk autentikasi bergantung pada apakah Anda menggunakan Vertex AI dalam mode ekspres:
Menyiapkan klien Vertex AI SDK
Jalankan kode berikut untuk menyiapkan klien Vertex AI SDK:
import vertexai
client = vertexai.Client(
project="PROJECT_ID",
location="LOCATION",
)
di mana
Membuat atau mengupdate instance Agent Engine
Jika sudah memiliki instance Agent Engine, Anda dapat langsung membuka Mengonfigurasi instance Agent Engine untuk Bank Memori.
Untuk mulai menggunakan Memory Bank, Anda memerlukan instance Agent Engine terlebih dahulu. Instance Agent Engine Anda mendukung Sesi dan Bank Memori Vertex AI Agent Engine secara langsung. Tidak ada agen yang di-deploy saat Anda membuat instance. Untuk menggunakan Vertex AI Agent Engine Runtime, Anda harus memberikan agen yang harus di-deploy saat membuat atau memperbarui instance Agent Engine.
Setelah memiliki instance Agent Engine, Anda dapat menggunakan nama instance untuk membaca atau menulis memori. Contoh:
agent_engine = client.agent_engines.create()
client.agent_engines.memories.generate(
name=agent_engine.api_resource.name,
...
)
Digunakan dengan Runtime Agent Engine Vertex AI
Meskipun Bank Memori dapat digunakan di runtime apa pun, Anda juga dapat menggunakan Bank Memori dengan Agent Engine Runtime untuk membaca dan menulis memori dari agen yang di-deploy.
Untuk men-deploy agen dengan Memory Bank di Vertex AI Agent Engine Runtime, pertama-tama siapkan lingkungan Anda untuk runtime Agent Engine. Kemudian, siapkan agen Anda untuk di-deploy di Agent Engine Runtime dengan integrasi memori. Agen yang di-deploy harus melakukan panggilan untuk membaca dan menulis memori sesuai kebutuhan.
AdkApp
Jika Anda menggunakan template Agent Development Kit Agent Engine, agen akan menggunakan VertexAiMemoryBankService
secara default saat di-deploy ke Agent Engine Runtime. Artinya, alat Memori ADK membaca memori dari Bank Memori.
from google.adk.agents import Agent
from vertexai.preview.reasoning_engines import AdkApp
# Develop an agent using the ADK template.
agent = Agent(...)
adk_app = AdkApp(
agent=adk_agent,
...
)
# Deploy the agent to Agent Engine Runtime.
agent_engine = client.agent_engines.create(
agent_engine=adk_app,
config={
"staging_bucket": "STAGING_BUCKET",
"requirements": ["google-cloud-aiplatform[agent_engines,adk]"],
# Optional.
**context_spec
}
)
# Update an existing Agent Engine to add or modify the Runtime.
agent_engine = client.agent_engines.update(
name=agent_engine.api_resource.name,
agent=adk_app,
config={
"staging_bucket": "STAGING_BUCKET",
"requirements": ["google-cloud-aiplatform[agent_engines,adk]"],
# Optional.
**context_spec
}
)
Ganti kode berikut:
Untuk mengetahui informasi selengkapnya tentang penggunaan Bank Memori dengan ADK, lihat Panduan memulai dengan Agent Development Kit.
Agen kustom
Anda dapat menggunakan Memory Bank dengan agen kustom yang di-deploy di Agent Engine Runtime. Dalam hal ini, agen Anda harus mengatur panggilan ke Bank Memori untuk memicu panggilan pembuatan memori dan pengambilan memori.
Aplikasi Anda yang di-deploy ke Vertex AI Agent Engine Runtime dapat membaca variabel lingkungan GOOGLE_CLOUD_PROJECT
, GOOGLE_CLOUD_LOCATION
,GOOGLE_CLOUD_AGENT_ENGINE_ID
untuk menyimpulkan nama Agent Engine dari lingkungan:
project = os.environ.get("GOOGLE_CLOUD_PROJECT")
location = os.environ.get("GOOGLE_CLOUD_LOCATION")
agent_engine_id = os.environ.get("GOOGLE_CLOUD_AGENT_ENGINE_ID")
agent_engine_name = f"projects/{project}/locations/{location}/reasoningEngines/{agent_engine_id}"
Jika Anda menggunakan agen layanan default untuk agen di Vertex AI Agent Engine Runtime, agen Anda sudah memiliki izin untuk membaca dan menulis memori. Jika Anda menggunakan akun layanan pelanggan, Anda perlu memberikan izin ke akun layanan Anda untuk membaca dan menulis kenangan. Izin yang diperlukan bergantung pada operasi yang harus dapat dilakukan oleh agen Anda. Jika Anda hanya ingin agen Anda mengambil dan membuat kenangan, aiplatform.memories.generate
dan aiplatform.memories.retrieve
sudah cukup.
Penggunaan di semua runtime lainnya
Jika Anda ingin menggunakan Memory Bank di lingkungan yang berbeda, seperti Cloud Run atau Colab, buat Agent Engine tanpa memberikan agen. Membuat Agent Engine baru tanpa Runtime hanya memerlukan waktu beberapa detik. Jika Anda tidak memberikan konfigurasi, Memory Bank akan dibuat dengan setelan default untuk mengelola pembuatan dan pengambilan memori:
agent_engine = client.agent_engines.create()
Jika Anda ingin mengonfigurasi perilaku, berikan konfigurasi Bank Memori:
Buat
agent_engine = client.agent_engines.create(
config={
"context_spec": {
"memory_bank_config": ...
}
}
)
Perbarui
Jika ingin mengubah konfigurasi Bank Memori, Anda dapat memperbarui instance Vertex AI Agent Engine.
agent_engine = client.agent_engines.update(
# You can access the name using `agent_engine.api_resource.name` for an AgentEngine object.
name="AGENT_ENGINE_NAME",
config={
"context_spec": {
"memory_bank_config": ...
}
}
)
Ganti kode berikut:
Anda dapat menggunakan Bank Memori di lingkungan mana pun yang memiliki izin untuk membaca dan menulis kenangan. Misalnya, untuk menggunakan Memory Bank dengan Cloud Run, berikan izin ke identitas layanan Cloud Run untuk membaca dan menulis memori. Izin yang diperlukan bergantung pada operasi yang harus dapat dilakukan oleh agen Anda. Jika Anda hanya ingin agen Anda mengambil dan membuat kenangan, aiplatform.memories.generate
dan aiplatform.memories.retrieve
sudah cukup.
Mengonfigurasi instance Agent Engine untuk Bank Memori
Anda dapat mengonfigurasi Bank Memori untuk menyesuaikan cara kenangan dibuat dan dikelola. Jika konfigurasi tidak disediakan, Bank Memori akan menggunakan setelan default untuk setiap jenis konfigurasi.
Konfigurasi Bank Memori ditetapkan saat membuat atau mengupdate instance Agent Engine Anda:
client.agent_engines.create(
...,
config={
"context_spec": {
"memory_bank_config": memory_bank_config
}
}
)
# Alternatively, update an existing Agent Engine's Memory Bank config.
agent_engine = client.agent_engines.update(
name=agent_engine.api_resource.name,
config={
"context_spec": {
"memory_bank_config": memory_bank_config
}
}
)
Anda dapat mengonfigurasi setelan berikut untuk instance Anda:
Konfigurasi penyesuaian
Jika ingin menyesuaikan cara kenangan diekstrak dari data sumber, Anda dapat mengonfigurasi perilaku ekstraksi kenangan saat menyiapkan instance Agent Engine. Ada dua tuas yang dapat Anda gunakan untuk penyesuaian:
Anda dapat mengonfigurasi perilaku yang berbeda untuk tingkat cakupan yang berbeda secara opsional. Misalnya, topik yang bermakna untuk memori tingkat sesi mungkin tidak bermakna untuk memori tingkat pengguna (di beberapa sesi). Untuk mengonfigurasi perilaku untuk subset kenangan tertentu, tetapkan kunci cakupan konfigurasi penyesuaian. Hanya permintaan GenerateMemories
yang menyertakan kunci cakupan tersebut yang akan menggunakan konfigurasi tersebut. Anda juga dapat mengonfigurasi perilaku default (berlaku untuk semua set kunci cakupan) dengan menghilangkan kolom scope_key
. Konfigurasi ini akan berlaku untuk semua permintaan yang tidak memiliki konfigurasi yang sama persis dengan kunci cakupan untuk konfigurasi penyesuaian lainnya.
Misalnya, user_level_config
hanya akan berlaku untuk permintaan GenerateMemories
yang menggunakan kunci cakupan user_id
secara persis (yaitu scope={"user_id": "123"}
tanpa kunci tambahan). default_config
akan berlaku untuk permintaan lainnya:
Kamus
user_level_config = {
"scope_keys": ["user_id"],
"memory_topics": [...],
"generate_memories_examples": [...]
}
default_config = {
"memory_topics": [...],
"generate_memories_examples": [...]
}
config = {
"customization_configs": [
user_level_config,
default_config
]
}
Berbasis kelas
from vertexai.types import MemoryBankCustomizationConfig as CustomizationConfig
user_level_config = CustomizationConfig(
scope_keys=["user_id"],
memory_topics=[...],
generate_memories_examples=[...]
)
Mengonfigurasi topik memori
"Topik memori" mengidentifikasi informasi yang dianggap penting oleh Bank Memori dan oleh karena itu harus dipertahankan sebagai kenangan yang dihasilkan. Bank Memori mendukung dua jenis topik memori:
Dengan penyesuaian, Anda dapat menggunakan kombinasi topik memori apa pun. Misalnya, Anda dapat menggunakan subset topik memori terkelola yang tersedia:
Kamus
{
"memory_topics": [
"managed_memory_topic": { "managed_topic_enum": "USER_PERSONAL_INFO" },
"managed_memory_topic": { "managed_topic_enum": "USER_PREFERENCES" }
]
}
Berbasis kelas
from vertexai.types import MemoryBankCustomizationConfig as CustomizationConfig
from vertexai.types import MemoryBankCustomizationConfigMemoryTopic as MemoryTopic
from vertexai.types import MemoryBankCustomizationConfigMemoryTopicManagedMemoryTopic as ManagedMemoryTopic
from vertexai.types import ManagedTopicEnum
CustomizationConfig(
memory_topics=[
MemoryTopic(
managed_memory_topic=ManagedMemoryTopic(
managed_topic_enum=ManagedTopicEnum.USER_PERSONAL_INFO)
),
MemoryTopic(
managed_memory_topic=ManagedMemoryTopic(
managed_topic_enum=ManagedTopicEnum.USER_PREFERENCES)
),
]
)
Anda juga dapat menggunakan kombinasi topik terkelola dan kustom (atau hanya menggunakan topik kustom):
Kamus
{
"memory_topics": [
"managed_memory_topic": { "managed_topic_enum": "USER_PERSONAL_INFO" },
"custom_memory_topic": {
"label": "business_feedback",
"description": """Specific user feedback about their experience at
the coffee shop. This includes opinions on drinks, food, pastries, ambiance,
staff friendliness, service speed, cleanliness, and any suggestions for
improvement."""
}
]
}
Berbasis kelas
from vertexai.types import MemoryBankCustomizationConfig as CustomizationConfig
from vertexai.types import MemoryBankCustomizationConfigMemoryTopic as MemoryTopic
from vertexai.types import MemoryBankCustomizationConfigMemoryTopicCustomMemoryTopic as CustomMemoryTopic
from vertexai.types import MemoryBankCustomizationConfigMemoryTopicManagedMemoryTopic as ManagedMemoryTopic
from vertexai.types import ManagedTopicEnum
CustomizationConfig(
memory_topics=[
MemoryTopic(
managed_memory_topic=ManagedMemoryTopic(
managed_topic_enum=ManagedTopicEnum.USER_PERSONAL_INFO)
),
MemoryTopic(
custom_memory_topic=CustomMemoryTopic(
label="business_feedback",
description="""Specific user feedback about their experience at
the coffee shop. This includes opinions on drinks, food, pastries, ambiance,
staff friendliness, service speed, cleanliness, and any suggestions for
improvement."""
)
)
]
)
Contoh few-shot
Contoh few-shot memungkinkan Anda mendemonstrasikan perilaku ekstraksi memori yang diharapkan ke Bank Memori. Misalnya, Anda dapat memberikan contoh percakapan input dan memori yang diharapkan diekstrak dari percakapan tersebut.
Sebaiknya selalu gunakan beberapa contoh dengan topik kustom agar Bank Memori dapat mempelajari perilaku yang diinginkan. Few-shot bersifat opsional saat menggunakan topik terkelola karena Bank Memori menentukan contoh untuk setiap topik. Tunjukkan percakapan yang tidak diharapkan menghasilkan kenangan dengan memberikan daftar generated_memories
kosong.
Misalnya, Anda dapat memberikan contoh sedikit tembakan yang menunjukkan cara mengekstrak masukan tentang bisnis Anda dari pesan pelanggan:
Kamus
example = {
"conversationSource": {
"events": [
{
"content": {
"role": "model",
"parts": [{ "text": "Welcome back to The Daily Grind! We'd love to hear your feedback on your visit." }] }
},
{
"content": {
"role": "user",
"parts": [{ "text": "Hey. The drip coffee was a bit lukewarm today, which was a bummer. Also, the music was way too loud, I could barely hear my friend." }] }
}
]
},
"generatedMemories": [
{
"fact": "The user reported that the drip coffee was lukewarm."
},
{
"fact": "The user felt the music in the shop was too loud."
}
]
}
Berbasis kelas
from google.genai.types import Content, Part
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExample as GenerateMemoriesExample
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSource as ConversationSource
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSourceEvent as ConversationSourceEvent
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleGeneratedMemory as ExampleGeneratedMemory
example = GenerateMemoriesExample(
conversation_source=ConversationSource(
events=[
ConversationSourceEvent(
content=Content(
role="model",
parts=[Part(text="Welcome back to The Daily Grind! We'd love to hear your feedback on your visit.")]
)
),
ConversationSourceEvent(
content=Content(
role="user",
parts=[Part(text= "Hey. The drip coffee was a bit lukewarm today, which was a bummer. Also, the music was way too loud, I could barely hear my friend.")]
)
)
]
),
generated_memories=[
ExampleGeneratedMemory(
fact="The user reported that the drip coffee was lukewarm."
),
ExampleGeneratedMemory(
fact="The user felt the music in the shop was too loud."
)
]
)
Anda juga dapat memberikan contoh percakapan yang tidak boleh menghasilkan kenangan yang dibuat dengan memberikan daftar kosong untuk output yang diharapkan (generated_memories
):
Kamus
example = {
"conversationSource": {
"events": [
{
"content": {
"role": "model",
"parts": [{ "text": "Good morning! What can I get for you at The Daily Grind?" }] }
},
{
"content": {
"role": "user",
"parts": [{ "text": "Thanks for the coffee." }] }
}
]
},
"generatedMemories": []
}
Berbasis kelas
from google.genai.types import Content, Part
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExample as GenerateMemoriesExample
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSource as ConversationSource
from vertexai.types import MemoryBankCustomizationConfigGenerateMemoriesExampleConversationSourceEvent as ConversationSourceEvent
example = GenerateMemoriesExample(
conversation_source=ConversationSource(
events=[
ConversationSourceEvent(
content=Content(
role="model",
parts=[Part(text="Welcome back to The Daily Grind! We'd love to hear your feedback on your visit.")]
)
),
ConversationSourceEvent(
content=Content(
role="user",
parts=[Part(text= "Thanks for the coffee!")]
)
)
]
),
generated_memories=[]
)
Konfigurasi penelusuran kemiripan
Konfigurasi penelusuran kemiripan mengontrol model embedding mana yang digunakan oleh instance Anda untuk penelusuran kemiripan. Penelusuran kesamaan digunakan untuk mengidentifikasi memori mana yang harus menjadi kandidat untuk penggabungan dan untuk pengambilan memori berbasis penelusuran kesamaan. Jika konfigurasi ini tidak disediakan, Memory Bank akan menggunakan text-embedding-005
sebagai model default.
Jika Anda memperkirakan percakapan pengguna akan menggunakan bahasa selain bahasa Inggris, gunakan model yang mendukung beberapa bahasa, seperti gemini-embedding-001
atau text-multilingual-embedding-002
, untuk meningkatkan kualitas pengambilan.
Kamus
memory_bank_config = {
"similarity_search_config": {
"embedding_model": "EMBEDDING_MODEL",
}
}
Berbasis kelas
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfig as MemoryBankConfig
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigSimilaritySearchConfig as SimilaritySearchConfig
memory_bank_config = MemoryBankConfig(
similarity_search_config=SimilaritySearchConfig(
embedding_model="EMBEDDING_MODEL"
)
)
Ganti kode berikut:
Konfigurasi pembuatan
Konfigurasi pembuatan mengontrol LLM mana yang digunakan untuk membuat kenangan, termasuk mengekstrak kenangan dan menggabungkan kenangan baru dengan kenangan yang ada.
Memory Bank menggunakan gemini-2.5-flash
sebagai model default. Untuk wilayah yang tidak memiliki ketersediaan Gemini regional, endpoint global akan digunakan.
Kamus
memory_bank_config = {
"generation_config": {
"model": "LLM_MODEL",
}
}
Berbasis kelas
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfig as MemoryBankConfig
from vertexai.types import ReasoningEngineContextSpecMemoryBankConfigGenerationConfig as GenerationConfig
memory_bank_config = MemoryBankConfig(
generation_config=GenerationConfig(
model="LLM_MODEL"
)
)
Ganti kode berikut:
Konfigurasi time to live (TTL)
Konfigurasi TTL mengontrol cara Memory Bank menetapkan waktu habis masa berlaku memori secara dinamis. Setelah waktu habisnya berlalu, kenangan tidak akan tersedia untuk diambil dan akan dihapus.
Jika konfigurasi tidak diberikan, waktu habis masa berlaku tidak akan disetel secara dinamis untuk kenangan yang dibuat atau diperbarui, sehingga kenangan tidak akan habis masa berlakunya kecuali jika waktu habis masa berlakunya disetel secara manual.
Ada dua opsi untuk konfigurasi TTL: