View a markdown version of this page

Best Practices - Amazon ElastiCache

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Best Practices

Verwaltung des Speicherlebenszyklus

  • TTL für das Kurzzeitgedächtnis verwenden — Legen Sie entsprechende TTL-Werte für Speichereinträge fest, damit transiente Informationen automatisch ablaufen. Verwenden Sie für den Sitzungskontext TTLs von 30 Minuten bis 24 Stunden. Verwenden Sie für langfristige Benutzereinstellungen längere TTLs oder behalten Sie sie auf unbestimmte Zeit bei.

  • Implementieren Sie Speicherverfall — Mem0 bietet integrierte Zerfallsmechanismen, die im Laufe der Zeit irrelevante Informationen entfernen. Konfigurieren Sie diese, um zu verhindern, dass der Speicher aufgebläht wird, wenn der Agent mehr Interaktionen ansammelt.

  • Speicher deduplizieren — Bevor Sie einen neuen Speicher speichern, überprüfen Sie mithilfe der Vektorähnlichkeitssuche, ob bereits ein ähnlicher Speicher vorhanden ist. Aktualisieren Sie bestehende Erinnerungen, anstatt Duplikate zu erstellen.

Konfiguration des Vektorindexes

  • Wählen Sie den richtigen Indextyp — Verwenden Sie FLAT ihn für kleinere Speicherspeicher (unter 100.000 Einträge), in denen eine exakte Suche möglich ist. Wird HNSW für größere Geschäfte verwendet, bei denen die ungefähre Suche nach dem nächsten Nachbarn eine bessere Leistung im großen Maßstab bietet.

  • Wählen Sie die geeigneten Abmessungen aus — Passen Sie die Abmessungen für die Einbettung an Ihr Modell an. Amazon Titan Text Embeddings V2 erzeugt 1024-dimensionale Vektoren. Text-Embedding-3-small von OpenAI erzeugt 1536-dimensionale Vektoren.

  • Verwenden Sie die COSINE-Entfernungsmetrik — Für Texteinbettungen aus Modellen wie Amazon Titan und OpenAI ist die COSINE-Distanz in der Regel die am besten geeignete Metrik zur Messung der semantischen Ähnlichkeit.

Multi-user Isolierung

  • Speicher nach Benutzer-ID eingrenzen — Geben Sie beim Speichern und Durchsuchen von Speichern immer einen user_id Parameter an, um zu verhindern, dass Informationen zwischen Benutzern verloren gehen.

  • Verwenden Sie TAG-Filter für eine effiziente Isolierung — Verwenden Sie bei der Abfrage des Vektorindex TAG-Filter (z. B.@user_id:{user_123}), um Ergebnisse nach Benutzern vorzufiltern, bevor Sie eine KNN-Suche durchführen. Dies wird als eine einzige atomare Operation ausgeführt und bietet sowohl Isolierung als auch Leistung.

    # Example: TAG-filtered vector search for user isolation results = client.execute_command( "FT.SEARCH", "agent_memory", f"@user_id:{{{user_id}}}=>[KNN 5 @embedding $query_vec]", "PARAMS", "2", "query_vec", query_vec, "DIALECT", "2", )

Speicherverwaltung im großen Maßstab

  • MaxMemory-Richtlinie festlegen — Konfigurieren Sie Ihren ElastiCache Cluster so, dass Speichereinträge, die maxmemory-policy allkeys-lru am wenigsten genutzt wurden, automatisch gelöscht werden, wenn der Cluster sein Speicherlimit erreicht.

  • Speichernutzung überwachen — Verwenden Sie CloudWatch Amazon-Metriken, um die Speichernutzung, die Cache-Trefferraten und die Latenz bei der Vektorsuche zu verfolgen. Stellen Sie Alarme für hohe Speicherauslastung ein, um die Kapazität proaktiv zu verwalten.

  • Kapazitätsplan — Jeder Speichereintrag benötigt in der Regel etwa 4—6 KB (Einbettungsmaße × 4 Byte + Metadaten). Eine ElastiCache 1-GB-Instance kann je nach Größe der Einbettung und Metadaten etwa 170.000 bis 250.000 Speichereinträge speichern.