autogen_core.memory#
- class Memory[Quelle]#
Bases:
ABC,ComponentBase[BaseModel]Protokoll zur Definition der Schnittstelle für Speicherimplementierungen.
Ein Speicher ist die Speicherung von Daten, die verwendet werden können, um den Modellkontext anzureichern oder zu ändern.
Eine Speicherimplementierung kann jeden Speichermechanismus verwenden, z. B. eine Liste, eine Datenbank oder ein Dateisystem. Sie kann auch jeden Abrufmechanismus verwenden, z. B. Vektorsuche oder Textsuche. Es liegt an der Implementierung zu entscheiden, wie Daten gespeichert und abgerufen werden.
Es liegt auch in der Verantwortung einer Speicherimplementierung, den Modellkontext mit relevanten Speicherinhalten zu aktualisieren, basierend auf dem aktuellen Modellkontext und der Abfrage des Speicherdatenspeichers.
Siehe
ListMemoryfür ein Beispiel für eine Implementierung.- component_type: ClassVar[ComponentType] = 'memory'#
Der logische Typ der Komponente.
- abstract async update_context(model_context: ChatCompletionContext) UpdateContextResult[Quelle]#
Aktualisieren Sie den bereitgestellten Modellkontext mit relevanten Speicherinhalten.
- Parameter:
model_context – Der zu aktualisierende Kontext.
- Gibt zurück:
UpdateContextResult mit relevanten Speichern
- abstract async query(query: str | MemoryContent, cancellation_token: CancellationToken | None = None, **kwargs: Any) MemoryQueryResult[Quelle]#
Fragen Sie den Speicherdatenspeicher ab und geben Sie relevante Einträge zurück.
- Parameter:
query – Inhaltselement der Abfrage
cancellation_token – Optionales Token zum Abbrechen der Operation
**kwargs – Zusätzliche implementierungsspezifische Parameter
- Gibt zurück:
MemoryQueryResult mit Relevanzbewertungen enthaltenden Speicherbereichen
- abstract async add(content: MemoryContent, cancellation_token: CancellationToken | None = None) None[Quelle]#
Fügen Sie einen neuen Inhalt zum Speicher hinzu.
- Parameter:
content – Der hinzuzufügende Speicherinhalt
cancellation_token – Optionales Token zum Abbrechen der Operation
- pydantic model MemoryContent[Quelle]#
Bases:
BaseModelEin Speicherinhaltselement.
JSON-Schema anzeigen
{ "title": "MemoryContent", "description": "A memory content item.", "type": "object", "properties": { "content": { "anyOf": [ { "type": "string" }, { "format": "binary", "type": "string" }, { "type": "object" }, {} ], "title": "Content" }, "mime_type": { "anyOf": [ { "$ref": "#/$defs/MemoryMimeType" }, { "type": "string" } ], "title": "Mime Type" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" } }, "$defs": { "MemoryMimeType": { "description": "Supported MIME types for memory content.", "enum": [ "text/plain", "application/json", "text/markdown", "image/*", "application/octet-stream" ], "title": "MemoryMimeType", "type": "string" } }, "required": [ "content", "mime_type" ] }
- Felder:
content (str | bytes | Dict[str, Any] | autogen_core._image.Image)metadata (Dict[str, Any] | None)mime_type (autogen_core.memory._base_memory.MemoryMimeType | str)
- field content: str | bytes | Dict[str, Any] | Image [Erforderlich]#
Der Inhalt des Speicherelements. Dies kann ein String, Bytes, ein Dict oder ein
Imagesein.
- field mime_type: MemoryMimeType | str [Erforderlich]#
Der MIME-Typ des Speicherinhalts.
- field metadata: Dict[str, Any] | None = None#
Metadaten, die mit dem Speicherelement verbunden sind.
- serialize_mime_type(mime_type: MemoryMimeType | str) str[Quelle]#
Serialisieren Sie den MIME-Typ in einen String.
- pydantic model MemoryQueryResult[Quelle]#
Bases:
BaseModelErgebnis einer Speicherabfrageoperation (
query()).JSON-Schema anzeigen
{ "title": "MemoryQueryResult", "description": "Result of a memory :meth:`~autogen_core.memory.Memory.query` operation.", "type": "object", "properties": { "results": { "items": { "$ref": "#/$defs/MemoryContent" }, "title": "Results", "type": "array" } }, "$defs": { "MemoryContent": { "description": "A memory content item.", "properties": { "content": { "anyOf": [ { "type": "string" }, { "format": "binary", "type": "string" }, { "type": "object" }, {} ], "title": "Content" }, "mime_type": { "anyOf": [ { "$ref": "#/$defs/MemoryMimeType" }, { "type": "string" } ], "title": "Mime Type" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" } }, "required": [ "content", "mime_type" ], "title": "MemoryContent", "type": "object" }, "MemoryMimeType": { "description": "Supported MIME types for memory content.", "enum": [ "text/plain", "application/json", "text/markdown", "image/*", "application/octet-stream" ], "title": "MemoryMimeType", "type": "string" } }, "required": [ "results" ] }
- Felder:
results (List[autogen_core.memory._base_memory.MemoryContent])
- field results: List[MemoryContent] [Erforderlich]#
- pydantic model UpdateContextResult[Quelle]#
Bases:
BaseModelErgebnis einer Speicheroperation zur Kontextaktualisierung (
update_context()).JSON-Schema anzeigen
{ "title": "UpdateContextResult", "description": "Result of a memory :meth:`~autogen_core.memory.Memory.update_context` operation.", "type": "object", "properties": { "memories": { "$ref": "#/$defs/MemoryQueryResult" } }, "$defs": { "MemoryContent": { "description": "A memory content item.", "properties": { "content": { "anyOf": [ { "type": "string" }, { "format": "binary", "type": "string" }, { "type": "object" }, {} ], "title": "Content" }, "mime_type": { "anyOf": [ { "$ref": "#/$defs/MemoryMimeType" }, { "type": "string" } ], "title": "Mime Type" }, "metadata": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" } }, "required": [ "content", "mime_type" ], "title": "MemoryContent", "type": "object" }, "MemoryMimeType": { "description": "Supported MIME types for memory content.", "enum": [ "text/plain", "application/json", "text/markdown", "image/*", "application/octet-stream" ], "title": "MemoryMimeType", "type": "string" }, "MemoryQueryResult": { "description": "Result of a memory :meth:`~autogen_core.memory.Memory.query` operation.", "properties": { "results": { "items": { "$ref": "#/$defs/MemoryContent" }, "title": "Results", "type": "array" } }, "required": [ "results" ], "title": "MemoryQueryResult", "type": "object" } }, "required": [ "memories" ] }
- Felder:
memories (autogen_core.memory._base_memory.MemoryQueryResult)
- field memories: MemoryQueryResult [Erforderlich]#
- class MemoryMimeType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[Quelle]#
Bases:
EnumUnterstützte MIME-Typen für Speicherinhalte.
- TEXT = 'text/plain'#
- JSON = 'application/json'#
- MARKDOWN = 'text/markdown'#
- IMAGE = 'image/*'#
- BINARY = 'application/octet-stream'#
- class ListMemory(name: str | None = None, memory_contents: List[MemoryContent] | None = None)[Quelle]#
Bases:
Memory,Component[ListMemoryConfig]Einfache chronologische Listen-basierte Speicherimplementierung.
Diese Speicherimplementierung speichert Inhalte in einer Liste und ruft sie chronologisch ab. Sie verfügt über eine Methode update_context, die Modellkontexte aktualisiert, indem sie alle gespeicherten Speicher hinzufügt.
Auf den Speicherinhalt kann direkt über die Eigenschaft content zugegriffen und dieser geändert werden, sodass externe Anwendungen Speicherinhalte direkt verwalten können.
Beispiel
import asyncio from autogen_core.memory import ListMemory, MemoryContent from autogen_core.model_context import BufferedChatCompletionContext async def main() -> None: # Initialize memory memory = ListMemory(name="chat_history") # Add memory content content = MemoryContent(content="User prefers formal language", mime_type="text/plain") await memory.add(content) # Directly modify memory contents memory.content = [MemoryContent(content="New preference", mime_type="text/plain")] # Create a model context model_context = BufferedChatCompletionContext(buffer_size=10) # Update a model context with memory await memory.update_context(model_context) # See the updated model context print(await model_context.get_messages()) asyncio.run(main())
- Parameter:
name – Optionale Kennung für diese Speicherinstanz
- component_type: ClassVar[ComponentType] = 'memory'#
Der logische Typ der Komponente.
- component_provider_override: ClassVar[str | None] = 'autogen_core.memory.ListMemory'#
Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.
- component_config_schema#
Alias von
ListMemoryConfig
- property name: str#
Rufen Sie die Kennung der Speicherinstanz ab.
- Gibt zurück:
str – Name der Speicherinstanz
- property content: List[MemoryContent]#
Rufen Sie die aktuellen Speicherinhalte ab.
- Gibt zurück:
List[MemoryContent] – Liste der gespeicherten Speicherinhalte
- async update_context(model_context: ChatCompletionContext) UpdateContextResult[Quelle]#
Aktualisieren Sie den Modellkontext, indem Sie Speicherinhalte anhängen.
Diese Methode modifiziert den bereitgestellten model_context, indem sie alle Speicher als SystemMessage hinzufügt.
- Parameter:
model_context – Der zu aktualisierende Kontext. Wird geändert, wenn Speicher vorhanden sind.
- Gibt zurück:
UpdateContextResult, die die dem Kontext hinzugefügten Speicher enthalten
- async query(query: str | MemoryContent = '', cancellation_token: CancellationToken | None = None, **kwargs: Any) MemoryQueryResult[Quelle]#
Geben Sie alle Speicher ohne Filterung zurück.
- Parameter:
query – In dieser Implementierung ignoriert
cancellation_token – Optionales Token zum Abbrechen der Operation
**kwargs – Zusätzliche Parameter (ignoriert)
- Gibt zurück:
MemoryQueryResult, das alle gespeicherten Speicher enthält
- async add(content: MemoryContent, cancellation_token: CancellationToken | None = None) None[Quelle]#
Fügen Sie neuen Inhalt zum Speicher hinzu.
- Parameter:
content – Zu speichernder Speicherinhalt
cancellation_token – Optionales Token zum Abbrechen der Operation