Thread
Questa pagina presenta l'handle di thread Oracle concreto insieme al tipo di applicazione di supporto messaggi rivolto agli sviluppatori.
Thread Oracle
classe oracleagentmemory.core.OracleThread
Basi: IThread
Thread supportato da un negozio Oracle.
Questa implementazione incorpora e memorizza sia i messaggi thread che le memorie aggiunte manualmente, quindi supporta la ricerca di somiglianza su tutti i record memorizzati.
Note
- I messaggi vengono memorizzati come singoli record (un record per messaggio).
- La ricerca può essere limitata al thread corrente oppure può restituire i risultati da qualsiasi thread (controllato dal client).
Creare una nuova istanza di OracleThread.
- Parametri:
- store
OracleMemoryStore: backend dell'area di memorizzazione condivisa utilizzato per rendere persistenti i record incorporati. - thread_id
str: identificativo del thread. Se non viene fornito, viene generato un UUID. - user_id
str: identificativo utente associato al thread. Se omesso in un'area di memorizzazione runtime DBSchemaPolicy.NO_CHECK, viene utilizzato il nome utente del contesto di sicurezza dell'utente finale attivo. In caso contrario viene generato un UUID. - agent_id
str: identificativo dell'agente associato al thread. Se omesso, viene generato un UUID. - metadati
dict[str, Any] | None: metadati facoltativi simili a JSON associati al thread. - persist_messages_in_config
bool: indica se_to_configdeve includere snapshot di messaggi raw recenti. Impostato automaticamente suFalseper i thread che utilizzano l'area di memorizzazione DB per evitare l'esportazione dei contenuti della tabella messaggi tramite la configurazione dei thread. - LLM
ILlm | None: adattatore LLM opzionale utilizzato per l'estrazione della memoria e gli aggiornamenti di riepilogo del contesto. Se fornito,add_messagesestrae le memorie pertinenti da ogni messaggio aggiunto e le memorizza come record di memoria digitata ("memory","guideline","fact"o"preference"). - memory_extraction_config
MemoryExtractionConfig: configurazione opzionale di estrazione della memoria a livello di thread. Usalo per controllare le impostazioni di estrazione automatica come la modalità di estrazione, il comportamento di riepilogo, i limiti di estrazione e se l'estrazione automatica è abilitata. Passare questa configurazione raggruppata o i parametri di estrazione in linea non più validi, non entrambi. Se omesso,OracleThread()standalone utilizza le impostazioni predefinite SDK per i campi di estrazione e mantiene abilitati i riepiloghi di contesto. Un contesto di immagine omesso èDISABLED. - image_input_limit_config
ImageInputLimitConfig: limiti opzionali per l'immagine raw e la richiesta di immagine LLM per questo thread standalone. I campi omessi utilizzano le impostazioni predefinite SDK. Impossibile disabilitare la convalida. -
memory_extraction_window
int–Numero di messaggi più recenti (incluso quello appena aggiunto) da fornire come contesto al LLM durante l'estrazione. Impostare su
-1per estrarre una sola volta ogni chiamataadd_messagesutilizzando il batch completo dei nuovi messaggi aggiunti. L'impostazione predefinita è-1.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
context_summary_update_frequency
int–Numero di messaggi dopo l'ultimo riepilogo valido prima di aggiornarlo automaticamente. Quando l'estrazione della memoria è abilitata, il controllo viene eseguito dopo ogni estrazione dovuta, pertanto l'aggiornamento può essere eseguito in un secondo momento. Valori inferiori o uguali all'aggiornamento
0a ogni controllo. L'impostazione predefinita è-1.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
frequenza_estrazione_memoria
int:Numero di messaggi al termine dei quali viene attivata l'estrazione della memoria. Impostare su
-1per estrarre una sola volta ogni chiamataadd_messagesutilizzando il batch completo dei nuovi messaggi aggiunti.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_token_limit
int–Dimensione massima, in token, dei prompt LLM utilizzati per l'estrazione della memoria e l'esecuzione di aggiornamenti di riepilogo. I prompt più lunghi vengono troncati. Se negativo o 0, il troncamento dei prompt è disabilitato.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. - context_card_token_limit
int: budget token di input massimo per il prompt LLM utilizzato per creare l'elenco di riepilogo e argomenti inclusi nella scheda contesto. Il valore predefinito è100_000; il valore è minore o uguale a 0. Disabilita troncamento prompt. - context_card_type_search_concurrency
int: numero massimo di ricerche di record simili alla memoria da eseguire contemporaneamente durante la creazione di una scheda di contesto conmin_relevant_results_by_type. L'impostazione predefinita è5. - max_message_token_length
int: dimensione massima, nei token, della copia in fase di prompt di ogni messaggio utilizzato durante l'estrazione della memoria supportata da LLM e gli aggiornamenti di riepilogo del contesto. Il contenuto del messaggio memorizzato rimane invariato. Se negativo o 0, non viene eseguito alcun accorciamento tempestivo. Se viene fornito un LLM, le copie prompt di grandi dimensioni vengono riepilogate anziché troncate. - message_shortening_input_token_limit
int: la dimensione massima, nei token, dell'estratto del messaggio inviato all'LLM quando si accorciano le copie dei prompt di dimensioni eccessive. L'impostazione predefinita è Token30_000. Se negativo o 0, durante l'accorciamento basato su LLM non viene applicato alcun limite in uscita. -
enable_context_summary
bool–Indica se mantenere un riepilogo compatto del thread. Quando l'opzione è abilitata e viene fornito un valore
llm, OAM lo aggiorna in base acontext_summary_update_frequencye utilizza un riepilogo precedente ai messaggi di destinazione come contesto di estrazione. Il valore predefinito èTrueperOracleThread()standalone.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_custom_instructions
str | None–Istruzioni personalizzate facoltative aggiunte al prompt del sistema di estrazione automatica della memoria per questo thread.
Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. -
memory_extraction_inherit_message_metadata
bool | Sequence[str]–Indica se le memorie estratte automaticamente ereditano metadati dai messaggi di origine. Passare
Trueper ereditare tutti i metadati del messaggio, una sequenza non stringa di chiavi di metadati del messaggio di livello superiore per ereditare solo tali chiavi oFalseper disabilitare l'ereditarietà. L'impostazione predefinita èTrue. Se un passaggio di estrazione utilizza più messaggi di origine, i metadati selezionati devono corrispondere tra tali messaggi.Non più valido
Deprecato dalla versione 26.6.0: questo parametro è deprecato nella versione 26.6.0 e verrà rimosso nella versione 27.1. Utilizzare invece
memory_extraction_config. - search_config
MemorySearchConfig: configurazione di ricerca facoltativa per questo thread. Se omesso, le ricerche utilizzano una configurazione di ricerca top-k fissa. - client
OracleAgentMemory | None
- store
Esempi
from oracleagentmemory.core import MemoryExtractionConfig, OracleAgentMemory
client = OracleAgentMemory(connection=db_pool, embedder=embedder)
thread = client.create_thread(
thread_id="c4",
llm=llm,
memory_extraction_config=MemoryExtractionConfig(enable_context_summary=True),
)
len(thread.add_messages([{"role": "user", "content": "I love pizza."}]))
1
metodo add_image
Rendi persistente un'immagine associata a questo thread.
description viene memorizzato come testo ricercabile dell'immagine. Quando viene omesso o None, un LLM collegato genera una didascalia. I valori di ambito omessi ereditano gli identificativi utente, agente e thread corrispondenti di questo thread.
- Parametri:
- image
bytes: byte di immagine raw da rendere persistenti. - description
str | None: descrizione o didascalia facoltativa. Ometti per generare una didascalia. - mime_type
ImageMimeType: tipo MIME opzionale utilizzato per la persistenza dell'immagine e la generazione delle didascalie. Se omesso, l'SDK rileva e convalida il tipo dai byte dell'immagine. I tipi rilevati supportati sono PNG, JPEG e WEBP. - image_id
str: identificativo opzionale. Uno viene generato quando omesso. - user_id
str | None: asserzioni di ambito facoltative. I valori omessi ereditano l'ambito di questo thread. I valori forniti devono corrispondere esattamente all'ambito. - agent_id
str | None: asserzioni di ambito facoltative. I valori omessi ereditano l'ambito di questo thread. I valori forniti devono corrispondere esattamente all'ambito. - thread_id
str: asserzioni di ambito facoltative. I valori omessi ereditano l'ambito di questo thread. I valori forniti devono corrispondere esattamente all'ambito. - metadata
dict[str, Any] | None: metadati facoltativi memorizzati con l'immagine. - timestamp
str | None: indicatore orario dell'evento facoltativo da salvare per questa immagine. Omettere questo argomento o passareNoneper memorizzare un indicatore orario dell'eventoNULL. Quando l'immagine viene letta, l'ora di creazione viene restituita come indicatore orario effettivo. - ttl_days
int | None: impostazioni di scadenza facoltative. - ttl_anchor
TimeToLiveAnchor: impostazioni di scadenza opzionali. - store_kwargs
Any: opzioni aggiuntive specifiche per l'area di memorizzazione.
- image
- Restituzioni: l'identificativo dell'immagine persistente.
- Tipo restituito: str
metodo add_image_async (asincrono)
Rendi persistente un'immagine associata a questo thread in modo asincrono.
description viene memorizzato come testo ricercabile dell'immagine. Quando viene omesso o None, un LLM collegato genera una didascalia. I valori di ambito omessi ereditano gli identificativi utente, agente e thread corrispondenti di questo thread.
- Parametri:
- image
bytes: byte di immagine raw da rendere persistenti. - description
str | None: descrizione o didascalia facoltativa. Ometti per generare una didascalia. - mime_type
ImageMimeType: tipo MIME opzionale utilizzato per la persistenza dell'immagine e la generazione delle didascalie. Se omesso, l'SDK rileva e convalida il tipo dai byte dell'immagine. I tipi rilevati supportati sono PNG, JPEG e WEBP. - image_id
str: identificativo opzionale. Uno viene generato quando omesso. - user_id
str | None: asserzioni di ambito facoltative. I valori omessi ereditano l'ambito di questo thread. I valori forniti devono corrispondere esattamente all'ambito. - agent_id
str | None: asserzioni di ambito facoltative. I valori omessi ereditano l'ambito di questo thread. I valori forniti devono corrispondere esattamente all'ambito. - thread_id
str: asserzioni di ambito facoltative. I valori omessi ereditano l'ambito di questo thread. I valori forniti devono corrispondere esattamente all'ambito. - metadata
dict[str, Any] | None: metadati facoltativi memorizzati con l'immagine. - timestamp
str | None: indicatore orario dell'evento facoltativo da salvare per questa immagine. Omettere questo argomento o passareNoneper memorizzare un indicatore orario dell'eventoNULL. Quando l'immagine viene letta, l'ora di creazione viene restituita come indicatore orario effettivo. - ttl_days
int | None: impostazioni di scadenza facoltative. - ttl_anchor
TimeToLiveAnchor: impostazioni di scadenza opzionali. - store_kwargs
Any: opzioni aggiuntive specifiche per l'area di memorizzazione.
- image
- Restituzioni: l'identificativo dell'immagine persistente.
- Tipo restituito: str
metodo add_memory
Aggiungere una voce di memoria manuale e indicizzarla.
- Parametri:
- content
str: contenuto di testo da memorizzare come memoria. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: categoria di memoria da memorizzare. I valori supportati sono"memory","fact","guideline"e"preference". Se omesso, il contenuto viene memorizzato come"memory"generale. - user_id
str: sostituzione facoltativa dell'identificativo utente. - agent_id
str: sostituzione facoltativa dell'identificativo dell'agente. - thread_id
str: sostituzione facoltativa dell'identificativo del thread. - memory_id
str: identificativo stabile fornito dal chiamante opzionale per questa riga di memoria. - metadati
dict[str, Any] | None: metadati facoltativi da rendere persistenti con la memoria memorizzata. - timestamp
str | None: indicatore orario dell'evento facoltativo da salvare per la memoria. Omettere questo argomento o passareNoneper memorizzare un indicatore orario dell'eventoNULL. Quando il record viene letto, l'ora di creazione viene restituita come indicatore orario di validità. Settl_anchorèTimeToLiveAnchor.TIMESTAMP, fornire un valore di indicatore orario ISO-8601 concreto. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - ttl_days
int | None: durata Time To Live opzionale in giorni. Omettere questo argomento per utilizzare la durata Time To Live predefinita dello schema. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per memorizzare una memoria non in scadenza quando non lo è. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione del database oTimeToLiveAnchor.TIMESTAMPper l'indicatore orario della memoria. La scadenza ancorata all'indicatore orario richiede un indicatore orario ISO-8601 concreto per questa memoria. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - stato
RecordStatus: stato iniziale del ciclo di vita. Omettere di memorizzareRecordStatus.VALID. - autonomous_linking
bool– Indica se creare collegamenti da questa nuova memoria alle memorie memorizzate pertinenti usando l'LLM del thread. Omesso lo abilita quando esiste un LLM; passareFalseper saltare. L'errore lascia la memoria memorizzata. - memory_id_to_link
str: insieme, creare un collegamento diretto dalla nuova memoria a questa memoria di proprietà dei thread esistente. Gli ambiti utente, agente e thread omessi ereditano dalla destinazione. Omettere entrambi per non creare alcun collegamento esplicito. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: insieme crea un collegamento diretto dalla nuova memoria a questa memoria di proprietà dei thread esistente. Gli ambiti utente, agente e thread omessi ereditano dalla destinazione. Omettere entrambi per non creare alcun collegamento esplicito. - link_id
str: identificativo opzionale, indicatore orario e metadati per il collegamento esplicito. - link_timestamp
str | None: identificativo facoltativo, indicatore orario e metadati per il collegamento esplicito. - link_metadata
dict[str, Any] | None: identificativo facoltativo, indicatore orario e metadati per il collegamento esplicito. - **store_kwargs (Qualsiasi): opzioni di scrittura specifiche dell'area di memorizzazione inoltrate al backing store.
- content
- Restituzioni: identificativo del record di memoria inserito.
- Tipo restituito: str
Esempi
thread.add_memory("Remember this preference", memory_id="mem-thread-docs")
'mem-thread-docs'
metodo add_memory_async (asincrono)
Aggiungere una voce di memoria manuale e indicizzarla in modo asincrono.
- Parametri:
- content
str: contenuto di testo da memorizzare come memoria. - memory_type
Literal['memory', 'guideline', 'fact', 'preference'] | ~oracleagentmemory._notset._NotSetMarker: categoria di memoria da memorizzare. I valori supportati sono"memory","fact","guideline"e"preference". Se omesso, il contenuto viene memorizzato come"memory"generale. - user_id
str: sostituzione facoltativa dell'identificativo utente. - agent_id
str: sostituzione facoltativa dell'identificativo dell'agente. - thread_id
str: sostituzione facoltativa dell'identificativo del thread. - memory_id
str: identificativo stabile fornito dal chiamante opzionale per questa riga di memoria. - metadati
dict[str, Any] | None: metadati facoltativi da rendere persistenti con la memoria memorizzata. - timestamp
str | None: indicatore orario dell'evento facoltativo da salvare per la memoria. Omettere questo argomento o passareNoneper memorizzare un indicatore orario dell'eventoNULL. Quando il record viene letto, l'ora di creazione viene restituita come indicatore orario di validità. Settl_anchorèTimeToLiveAnchor.TIMESTAMP, fornire un valore di indicatore orario ISO-8601 concreto. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - ttl_days
int | None: durata Time To Live opzionale in giorni. Omettere questo argomento per utilizzare la durata Time To Live predefinita dello schema. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per memorizzare una memoria non in scadenza quando non lo è. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione del database oTimeToLiveAnchor.TIMESTAMPper l'indicatore orario della memoria. La scadenza ancorata all'indicatore orario richiede un indicatore orario ISO-8601 concreto per questa memoria. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - stato
RecordStatus: stato iniziale del ciclo di vita. Omettere di memorizzareRecordStatus.VALID. - autonomous_linking
bool– Indica se creare collegamenti da questa nuova memoria alle memorie memorizzate pertinenti usando l'LLM del thread. Omesso lo abilita quando esiste un LLM; passareFalseper saltare. L'errore lascia la memoria memorizzata. - memory_id_to_link
str: insieme, creare un collegamento diretto dalla nuova memoria a questa memoria di proprietà dei thread esistente. Gli ambiti utente, agente e thread omessi ereditano dalla destinazione. Omettere entrambi per non creare alcun collegamento esplicito. - link_type
Literal['supersedes', 'contradicts', 'refines', 'supports', 'duplicates'] | ~oracleagentmemory._notset._NotSetMarker: insieme crea un collegamento diretto dalla nuova memoria a questa memoria di proprietà dei thread esistente. Gli ambiti utente, agente e thread omessi ereditano dalla destinazione. Omettere entrambi per non creare alcun collegamento esplicito. - link_id
str: identificativo opzionale, indicatore orario e metadati per il collegamento esplicito. - link_timestamp
str | None: identificativo facoltativo, indicatore orario e metadati per il collegamento esplicito. - link_metadata
dict[str, Any] | None: identificativo facoltativo, indicatore orario e metadati per il collegamento esplicito. - **store_kwargs (Qualsiasi): opzioni di scrittura specifiche dell'area di memorizzazione inoltrate al backing store.
- content
- Restituzioni: identificativo del record di memoria inserito.
- Tipo restituito: str
Esempi
import asyncio
asyncio.run(thread.add_memory_async(
"Remember this preference", memory_id="mem-thread-docs-async"
))
'mem-thread-docs-async'
metodo add_messages
Aggiungere i messaggi al thread e indicizzarli.
In modalità estrazione in background, questo metodo viene restituito dopo l'inserimento dei messaggi raw e l'estrazione in background dovuta viene tentata in background.
I messaggi raw vengono memorizzati prima dell'estrazione automatica in entrambe le modalità. Se l'estrazione successiva o lo storage derivato-memoria non riesce, i messaggi raw rimangono memorizzati mentre le memorie derivate o gli aggiornamenti di riepilogo potrebbero non essere disponibili.
- Parametri:
- messaggi
Sequence[Message | ThreadMessageTypedDictT | Mapping[str, str | Sequence[Mapping[str, Any]] | Mapping[str, Any] | None]]: elenco di messaggi da aggiungere. I messaggi possono essere oggettiMessageo dizionari conroleecontent(e facoltativoid). - metadati
dict[str, Any] | None | list[dict[str, Any] | None]: metadati condivisi o per messaggio facoltativi per rendere persistenti. Se omesso, vengono utilizzati i metadati incorporati in ogni messaggio. - ttl_days
int | None | list[int | None]: durata Time To Live facoltativa in giorni per i messaggi aggiunti. Omettere questo argomento per utilizzare la durata Time To Live predefinita dello schema. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per creare messaggi non in scadenza quando non lo è. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. I valori scalari vengono applicati al batch completo. - ttl_anchor
TimeToLiveAnchor | list[TimeToLiveAnchor]: ancoraggio Time To Live opzionale. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione del database oTimeToLiveAnchor.TIMESTAMPper ogni indicatore orario del messaggio. La scadenza ancorata all'indicatore orario richiede un indicatore orario ISO-8601 concreto per ogni messaggio interessato. Se omesso, i messaggi scadono in relazione aTimeToLiveAnchor.CREATED_AT. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - **store_kwargs (Qualsiasi): opzioni di scrittura specifiche dell'area di memorizzazione inoltrate al backing store.
- messaggi
- Restituzioni: identificativi dei record messaggio inseriti. In modalità di estrazione in background, il lavoro di estrazione automatica potrebbe essere ancora in esecuzione quando vengono restituiti questi identificatori.
- Tipo restituito: list[str]
Note
In MemoryExtractionMode.BACKGROUND, i messaggi raw vengono mantenuti prima della memorizzazione delle memorie estratte. Se l'estrazione in background non fa la coda, o se un'attesa di capacità di coda configurata raggiunge il suo timeout, i messaggi non elaborati inseriti rimangono memorizzati e la chiamata continua senza memorie estratte o solleva TimeoutError, a seconda di background_extraction_queue_full_behavior.
Esempi
len(thread.add_messages([{"role": "user", "content": "Thread message from docs"}]))
1
metodo add_messages_async (asincrono)
Aggiungere i messaggi al thread in modo asincrono e indicizzarli.
In modalità estrazione in background, questo metodo viene restituito dopo l'inserimento dei messaggi raw e l'estrazione in background dovuta viene tentata in background.
I messaggi raw vengono memorizzati prima dell'estrazione automatica in entrambe le modalità. Se l'estrazione successiva o lo storage derivato-memoria non riesce, i messaggi raw rimangono memorizzati mentre le memorie derivate o gli aggiornamenti di riepilogo potrebbero non essere disponibili.
In MemoryExtractionMode.BACKGROUND, i messaggi raw vengono mantenuti prima della memorizzazione delle memorie estratte. Se l'estrazione in background non fa la coda, o se un'attesa di capacità di coda configurata raggiunge il suo timeout, i messaggi non elaborati inseriti rimangono memorizzati e la chiamata continua senza memorie estratte o solleva TimeoutError, a seconda di background_extraction_queue_full_behavior.
- Parametri:
- messaggi
Sequence[Message | ThreadMessageTypedDictT | Mapping[str, str | Sequence[Mapping[str, Any]] | Mapping[str, Any] | None]] - metadati
dict[str, Any] | None | list[dict[str, Any] | None] - ttl_days
int | None | list[int | None] - ttl_anchor
TimeToLiveAnchor | list[TimeToLiveAnchor] - store_kwargs
Any
- messaggi
- Tipo restituito: list[str]
metodo delete_image
Elimina un'immagine di proprietà di questo thread.
- Parametri: image_id
str: identificativo dell'immagine da eliminare. - Restituisce:
1se eliminato, altrimenti0se l'immagine non esiste o appartiene a un altro thread. - Tipo restituito: int.
- Raise: ValueError: se l'immagine è allegata a un messaggio. Eliminare o aggiornare il messaggio padre.
metodo delete_image_async (asincrono)
Elimina un'immagine di proprietà di questo thread in modo asincrono.
- Parametri: image_id
str: identificativo dell'immagine da eliminare. - Restituisce:
1se eliminato, altrimenti0se l'immagine non esiste o appartiene a un altro thread. - Tipo restituito: int.
- Raise: ValueError: se l'immagine è allegata a un messaggio. Eliminare o aggiornare il messaggio padre.
metodo delete_memory
Elimina un record simile alla memoria (ad esempio, una memoria, un fatto, una preferenza o una linea guida) da questo thread esatto per identificativo.
- Parametri: memory_id
str– identificativo della memoria. Vengono eliminati solo i record di tipo memoria (memory,guideline,fact,preference) il cuithread_idmemorizzato corrisponde esattamente a questo thread. - Restituzioni: numero di record eliminati (0 o 1). Restituisce
0se l'identificativo non esiste o appartiene a un thread diverso. - Tipo restituito: int.
- Aumenti: TimeoutError - Generato senza eliminare il record quando l'estrazione in background accettata in precedenza per questo thread non termina entro 300 secondi.
Note
Prima di eliminare il record, questo metodo attende l'estrazione in background precedente accettata per questo thread tramite il componente di memoria dell'agente collegato. Non attende l'accettazione del lavoro dopo l'inizio dell'attesa o l'avvio del lavoro da parte di un altro componente o processo.
Esempi
thread.delete_memory("456")
0
metodo delete_memory_async (asincrono)
Elimina un record simile alla memoria (ad esempio, una memoria, un fatto, una preferenza o una linea guida) da questo thread esatto per identificativo in modo asincrono.
- Parametri: memory_id
str– identificativo della memoria. Vengono eliminati solo i record di tipo memoria (memory,guideline,fact,preference) il cuithread_idmemorizzato corrisponde esattamente a questo thread. - Restituzioni: numero di record eliminati (0 o 1). Restituisce
0se l'identificativo non esiste o appartiene a un thread diverso. - Tipo restituito: int.
- Aumenti: TimeoutError - Generato senza eliminare il record quando l'estrazione in background accettata in precedenza per questo thread non termina entro 300 secondi.
Note
Questo metodo segue il comportamento di attesa e concorrenza dell'estrazione in background documentato da delete_memory().
Esempi
import asyncio
asyncio.run(thread.delete_memory_async("456"))
0
metodo delete_message
Eliminare un record messaggio da questo thread esatto in base all'identificativo.
- Parametri: message_id
str: identificativo del messaggio. Vengono eliminati solo i messaggi il cuithread_idmemorizzato corrisponde esattamente a questo thread. - Restituzioni: numero di record messaggio eliminati (0 o 1). Restituisce
0se l'identificativo non esiste o appartiene a un thread diverso. - Tipo restituito: int.
- Aumenti: TimeoutError: generato senza eliminare il messaggio quando l'estrazione in background accettata in precedenza per questo thread non termina entro 300 secondi.
Note
Prima di eliminare il messaggio, questo metodo attende l'estrazione in background precedente accettata per questo thread tramite il componente di memoria dell'agente collegato. Non attende l'accettazione del lavoro dopo l'inizio dell'attesa o l'avvio del lavoro da parte di un altro componente o processo.
L'eliminazione di un messaggio rimuove solo il record del messaggio raw. I ricordi derivati non vengono eliminati perché non vengono ancora tracciati i ricordi estratti da quale messaggio, in modo che possano rimanere ricercabili o influenzare ancora l'output della scheda di contesto. Utilizzare OracleAgentMemory.delete_thread() per eliminare il thread insieme ai messaggi e alle memorie associati.
Esempi
thread.delete_message("123")
0
metodo delete_message_async (asincrono)
Eliminare un record messaggio da questo thread esatto in base all'identificativo in modo asincrono.
- Parametri: message_id
str: identificativo del messaggio. Vengono eliminati solo i messaggi il cuithread_idmemorizzato corrisponde esattamente a questo thread. - Restituzioni: numero di record messaggio eliminati (0 o 1). Restituisce
0se l'identificativo non esiste o appartiene a un thread diverso. - Tipo restituito: int.
- Aumenti: TimeoutError: generato senza eliminare il messaggio quando l'estrazione in background accettata in precedenza per questo thread non termina entro 300 secondi.
Note
Questo metodo segue il comportamento di attesa e concorrenza dell'estrazione in background documentato da delete_message().
L'eliminazione di un messaggio rimuove solo il record del messaggio raw. I ricordi derivati non vengono eliminati perché non vengono ancora tracciati i ricordi estratti da quale messaggio, in modo che possano rimanere ricercabili o influenzare ancora l'output della scheda di contesto. Utilizzare OracleAgentMemory.delete_thread() per eliminare il thread insieme ai messaggi e alle memorie associati.
Esempi
import asyncio
asyncio.run(thread.delete_message_async("123"))
0
metodo delete_record_link
Eliminare una relazione di proprietà del thread in base all'ID o alla tupla completa dell'endpoint.
I selettori endpoint-tuple devono utilizzare l'orientamento source-to-target memorizzato.
- Parametri:
- source_record_id
str: identificativo di origine per un selettore punto-punto. - source_record_type
str: tipo di record di origine logica per un selettore endpoint-tuple. - target_record_id
str: identificativo di destinazione per un selettore endpoint-tuple. - target_record_type
str: tipo di record di destinazione logico per un selettore endpoint-tuple. - relation_type
str: etichetta source-to-target per un selettore endpoint-tuple. - relation_id
str: identificativo della relazione da selezionare direttamente. Fornire questo argomento da solo.
- source_record_id
- Restituzioni: numero di relazioni eliminate, ovvero
0o1. - Tipo restituito: int.
Esempi
thread.delete_record_link(relation_id="relation-id")
1
metodo delete_record_link_async (asincrono)
Elimina in modo asincrono una relazione di proprietà di questo thread.
- Parametri:
- ID_record_origine
str - tipo_record_origine
str - ID_record_destinazione
str - tipo_record_destinazione
str - tipo_relazione
str - id_relazione
str
- ID_record_origine
- Tipo restituito: int.
metodo get_context_card
Restituisce un oggetto context-card per il thread.
Preferire get_context_card_async quando un'implementazione supportata da LLM può eseguire I/O di rete remota.
- Parametri:
- fallback_message_count
int: numero di messaggi recenti da utilizzare per derivare il testo di riepilogo di fallback per il recupero e il rendering. Se omesso, viene risolto in5. -
max_relevant_results
int:Numero massimo di record pertinenti (simili alla memoria, ad esempio fatti/preferenze, nonché messaggi) da includere nella sezione
<relevant_information>della scheda contesto.- Se questo valore e
min_relevant_results_by_typevengono omessi,max_relevant_resultsviene risolto in5. - Se viene fornito
min_relevant_results_by_type,max_relevant_resultsviene risolto inmax(max_relevant_results, sum(min_relevant_results_by_type.values())).
- Se questo valore e
- token_budget
int | None: limite assoluto facoltativo per il conteggio stimato dei token dei risultati rilevanti formattati nella scheda contesto. Se omesso, viene utilizzata la configurazione di ricerca thread. I valori positivi mantengono i risultati completi in ordine di classificazione, mentre la loro stima cumulativa corrisponde al budget. Se il primo risultato non si adatta, non vengono inclusi risultati rilevanti. I valori non positivi disabilitano il tappo. - soft_token_budget
int | None: destinazione facoltativa per il conteggio stimato dei token dei risultati rilevanti formattati. Se omesso, viene utilizzata la configurazione di ricerca thread. Il risultato completo che raggiunge o supera questa destinazione viene mantenuto. I valori non positivi disabilitano questa destinazione. Impostaretoken_budgetsu un valore maggiore quando anche l'output deve avere un limite assoluto. - max_recent_messages
int: numero massimo di messaggi di conversazione recenti da includere nella sezione<recent_messages>della scheda contesto. Se omesso,max_recent_messagesviene risolto in0. -
except_last_messages
int–Numero di messaggi finali da escludere dalla ricerca di riepilogo e informazioni rilevanti generata inclusa nella scheda contesto. Ciò impedisce che i messaggi forniti separatamente nei prompt LLM vengano duplicati nella scheda contesto. Utilizzare uno di questi pattern:
-
- Coda raw esterna (consigliata per l'inserimento dei prompt nella cache):
get_context_card(except_last_messages=N, max_recent_messages=0)Il prompt contiene la scheda contesto seguita dagli ultimi messaggi rawN.
-
- Scheda contestuale autonoma:
get_context_card(except_last_messages=N, max_recent_messages=N)La scheda contesto contiene gli ultimi messaggiN.
Se è diverso da zero,
max_recent_messagesdeve essere0o lo stesso valore. -
- min_relevant_results_by_type
Mapping[Literal['message', 'memory', 'guideline', 'fact', 'preference'], int] | None | ~oracleagentmemory._notset._NotSetMarker: soglie minime opzionali per tipo per i record rilevanti inclusi nella scheda di contesto. I tipi richiesti vengono cercati per primi e gli slotmax_relevant_resultsrimanenti vengono compilati da tutti i tipi di record supportati simili alla memoria. Le chiavi supportate sono"memory","fact","guideline","preference"e"message". I dati dei messaggi sono limitati al thread corrente. -
filtro_metadata
dict[str, Any] | None:Mapping facoltativo del filtro dei metadati utilizzato come filtro aggiuntivo dopo l'applicazione di filtri di ambito e tipo di record durante la ricerca di record simili alla memoria da includere nella scheda di contesto. Le voci in
metadata_filtersono combinate con la semantica AND. Le voci il cui valore non è un dizionario operatore a livello di campo utilizzano la semantica di corrispondenza esatta: la chiave richiesta deve esistere nei metadati dei record memorizzati. I dizionari nidificati corrispondono in modo ricorsivo agli oggetti metadati nidificati. I valori scalari e di elenco devono corrispondere esattamente; anche l'ordine e la lunghezza dell'elenco devono corrispondere. Omettere questo argomento o passareNoneper eseguire la ricerca senza filtrare i metadati. Ad esempio,metadata_filter={"source": "chat"}per un campo scalare,metadata_filter={"travel": {"need": "transit"}}per un campo nidificato emetadata_filter={"tags": ["trip", "urgent"]}per una corrispondenza esatta dell'elenco. Combina le condizioni per richiederle tutte:metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }Per eseguire il test dell'appartenenza all'array, utilizzare un dizionario operatore a livello di campo.
"$array_contains"corrisponde a un valore o a tutti i valori di un elenco."$array_contains_any"corrisponde ad almeno un valore di un elenco."$not"nega un'altra espressione a livello di campo nello stesso campo, incluso un dizionario operatore o un valore di corrispondenza esatta raw. Le espressioni negative corrispondono quando l'espressione positiva non riesce, inclusi i campi mancanti; l'appartenenza all'array negata corrisponde anche ai campi non array:metadata_filter={ "source": "chat", "tags": { "$array_contains": "trip", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool: indica se i record rilevanti con stato del ciclo di vita non valido sono inclusi nella scheda contesto. Omettere questo argomento o passareTrueper includerli. PassareFalseper escluderli. - **kwargs (Qualsiasi): riservato per le future opzioni di scheda contesto. Gli argomenti delle parole chiave inattesi generano
TypeError.
- fallback_message_count
- Restituzioni: un oggetto di scheda contesto contenente un riepilogo del contesto thread basato sui messaggi più recenti. Utilizzare
OracleContextCard.contentper accedere al testo di tipo XML visualizzato. - Tipo restituito: OracleContextCard
Note
Questo utilizza l'ambito di ricerca predefinito del thread con exact_thread_match=False, quindi è possibile includere memorie rilevanti da altri thread per lo stesso utente/agente.
Esempi
thread.add_memory("User likes pizza", memory_id="mem-context-docs")
'mem-context-docs'
len(thread.add_messages([{"role": "user", "content": "Tell me about pizza"}]))
1
"User likes pizza" in thread.get_context_card().content
True
card = thread.get_context_card(
max_relevant_results=4,
min_relevant_results_by_type={"memory": 1},
)
len(card.relevant_results or []) <= 4
True
metodo get_context_card_async (asincrono)
Restituisce in modo asincrono un oggetto context-card per il thread.
- Parametri:
- fallback_message_count
int: numero di messaggi recenti da utilizzare per derivare il testo di riepilogo di fallback per il recupero e il rendering. Se omesso, viene risolto in5. -
max_relevant_results
int:Numero massimo di record pertinenti (simili alla memoria, ad esempio fatti/preferenze, nonché messaggi) da includere nella sezione
<relevant_information>della scheda contesto.- Se questo valore e
min_relevant_results_by_typevengono omessi,max_relevant_resultsviene risolto in5. - Se viene fornito
min_relevant_results_by_type,max_relevant_resultsviene risolto inmax(max_relevant_results, sum(min_relevant_results_by_type.values())).
- Se questo valore e
- token_budget
int | None: limite assoluto facoltativo per il conteggio stimato dei token dei risultati rilevanti formattati nella scheda contesto. Se omesso, viene utilizzata la configurazione di ricerca thread. I valori positivi mantengono i risultati completi in ordine di classificazione, mentre la loro stima cumulativa corrisponde al budget. Se il primo risultato non si adatta, non vengono inclusi risultati rilevanti. I valori non positivi disabilitano il tappo. - soft_token_budget
int | None: destinazione facoltativa per il conteggio stimato dei token dei risultati rilevanti formattati. Se omesso, viene utilizzata la configurazione di ricerca thread. Il risultato completo che raggiunge o supera questa destinazione viene mantenuto. I valori non positivi disabilitano questa destinazione. Impostaretoken_budgetsu un valore maggiore quando anche l'output deve avere un limite assoluto. - max_recent_messages
int: numero massimo di messaggi di conversazione recenti da includere nella sezione<recent_messages>della scheda contesto. Se omesso,max_recent_messagesviene risolto in0. -
except_last_messages
int–Numero di messaggi finali da escludere dalla ricerca di riepilogo e informazioni rilevanti generata inclusa nella scheda contesto. Ciò impedisce che i messaggi forniti separatamente nei prompt LLM vengano duplicati nella scheda contesto. Utilizzare uno di questi pattern:
-
- Coda raw esterna (consigliata per l'inserimento dei prompt nella cache):
get_context_card(except_last_messages=N, max_recent_messages=0)Il prompt contiene la scheda contesto seguita dagli ultimi messaggi rawN.
-
- Scheda contestuale autonoma:
get_context_card(except_last_messages=N, max_recent_messages=N)La scheda contesto contiene gli ultimi messaggiN.
Se è diverso da zero,
max_recent_messagesdeve essere0o lo stesso valore. -
- min_relevant_results_by_type
Mapping[Literal['message', 'memory', 'guideline', 'fact', 'preference'], int] | None | ~oracleagentmemory._notset._NotSetMarker: soglie minime opzionali per tipo per i record rilevanti inclusi nella scheda di contesto. I tipi richiesti vengono cercati per primi e gli slotmax_relevant_resultsrimanenti vengono compilati da tutti i tipi di record supportati simili alla memoria. Le chiavi supportate sono"memory","fact","guideline","preference"e"message". I dati dei messaggi sono limitati al thread corrente. -
filtro_metadata
dict[str, Any] | None:Mapping facoltativo del filtro dei metadati utilizzato come filtro aggiuntivo dopo l'applicazione di filtri di ambito e tipo di record durante la ricerca di record simili alla memoria da includere nella scheda di contesto. Le voci in
metadata_filtersono combinate con la semantica AND. Le voci il cui valore non è un dizionario operatore a livello di campo utilizzano la semantica di corrispondenza esatta: la chiave richiesta deve esistere nei metadati dei record memorizzati. I dizionari nidificati corrispondono in modo ricorsivo agli oggetti metadati nidificati. I valori scalari e di elenco devono corrispondere esattamente; anche l'ordine e la lunghezza dell'elenco devono corrispondere. Omettere questo argomento o passareNoneper eseguire la ricerca senza filtrare i metadati. Ad esempio,metadata_filter={"source": "chat"}per un campo scalare,metadata_filter={"travel": {"need": "transit"}}per un campo nidificato emetadata_filter={"tags": ["trip", "urgent"]}per una corrispondenza esatta dell'elenco. Combina le condizioni per richiederle tutte:metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }Per eseguire il test dell'appartenenza all'array, utilizzare un dizionario operatore a livello di campo.
"$array_contains"corrisponde a un valore o a tutti i valori di un elenco."$array_contains_any"corrisponde ad almeno un valore di un elenco."$not"nega un'altra espressione a livello di campo nello stesso campo, incluso un dizionario operatore o un valore di corrispondenza esatta raw. Le espressioni negative corrispondono quando l'espressione positiva non riesce, inclusi i campi mancanti; l'appartenenza all'array negata corrisponde anche ai campi non array:metadata_filter={ "source": "chat", "tags": { "$array_contains": "trip", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool: indica se i record rilevanti con stato del ciclo di vita non valido sono inclusi nella scheda contesto. Omettere questo argomento o passareTrueper includerli. PassareFalseper escluderli. - **kwargs (Qualsiasi): riservato per le future opzioni di scheda contesto. Gli argomenti delle parole chiave inattesi generano
TypeError.
- fallback_message_count
- Restituzioni: un oggetto di scheda contesto per il thread.
- Tipo restituito: OracleContextCard
Esempi
import asyncio
card = asyncio.run(thread.get_context_card_async(
min_relevant_results_by_type={"preference": 1, "guideline": 1},
))
len(card.relevant_results or []) <= 5
True
metodo get_message
Restituisci un messaggio di proprietà di questa discussione.
Le parti dell'immagine vengono restituite con i relativi identificatori e descrizioni per impostazione predefinita. Passare included_image_ids per caricare i byte per le parti immagine selezionate. Gli identificativi non correlati vengono ignorati.
- Parametri:
- message_id
str: identificativo del messaggio da recuperare. Il messaggio deve appartenere a questo thread. - included_image_ids
list[str]: elenco facoltativo di identificativi immagine collegati i cui byte devono essere caricati. Omettere questo argomento o passareNoneper restituire i metadati dell'immagine senza caricare i byte.
- message_id
- Restituzioni: il messaggio richiesto, incluse le parti dell'immagine allegate.
- Tipo restituito: Messaggio
- Raise: KeyError: se il messaggio non esiste o appartiene a un altro thread.
metodo get_message_async (asincrono)
Restituisce un messaggio di proprietà dei thread in modo asincrono.
included_image_ids seleziona facoltativamente le parti immagine allegate i cui byte devono essere caricati; omesso o None restituisce solo i metadati dell'immagine.
- Parametri:
- message_id
str: identificativo del messaggio da recuperare. Il messaggio deve appartenere a questo thread. - included_image_ids
list[str]: elenco facoltativo di identificatori di immagine allegati da idratare.
- message_id
- Restituzioni: il messaggio richiesto, incluse le parti dell'immagine allegate.
- Tipo restituito: Messaggio
- Raise: KeyError: se il messaggio non esiste o appartiene a un altro thread.
metodo get_messages
Restituire salvati i messaggi per questa discussione.
- Parametri:
- start
int | None– Indice di avvio (basato su 0). Se omesso insieme aend, viene restituita la finestra con limite più recente. - end
int | None– Indice finale (escluso). Se omesso, viene restituita una finestra delimitata dei messaggi più recenti. PassareNoneo-1per richiedere in modo esplicito tutti i messaggi dastartin poi. - include_image_bytes
bool: indica se caricare i byte per le parti di immagine allegate ai messaggi restituiti. Omettere questo argomento o passareFalseper restituire i metadati dell'immagine senza caricare i valori BLOB.
- start
- Restituzioni: messaggi in ordine cronologico.
- Tipo restituito: list[Messaggio]
Esempi
len(thread.add_messages([{"role": "user", "content": "Stored message example"}]))
1
messages = thread.get_messages()
messages[-1].content
'Stored message example'
metodo get_messages_async (asincrono)
Ottenere i messaggi non elaborati dal thread come aggiunto con add_messages in modo asincrono.
- Parametri:
- start
int | None– Indice di avvio (basato su 0). Se omesso insieme aend, viene restituita la finestra con limite più recente. - end
int | None– Indice finale (escluso). Se omesso, viene restituita una finestra delimitata dei messaggi più recenti. PassareNoneo-1per richiedere in modo esplicito tutti i messaggi dastartin poi. - include_image_bytes
bool: indica se caricare i byte per le parti di immagine allegate ai messaggi restituiti. Omettere questo argomento o passareFalseper restituire i metadati dell'immagine senza caricare i valori BLOB.
- start
- Restituzioni: messaggi in ordine cronologico.
- Tipo restituito: list[Messaggio]
Esempi
import asyncio
message_ids = asyncio.run(thread.add_messages_async(
[{"role": "user", "content": "Stored message example"}]
))
len(message_ids)
1
messages = asyncio.run(thread.get_messages_async())
messages[-1].content
'Stored message example'
metodo get_summary
Restituisce un sintetico del thread.
Una richiesta full-thread riutilizza o aggiorna il riepilogo permanente. Una richiesta con except_last riepiloga tale prefisso senza modificare il riepilogo permanente dell'intero thread.
Preferire get_summary_async quando un'implementazione supportata da LLM può eseguire I/O di rete remota.
- Parametri:
- except_last
int: numero di messaggi più recenti da escludere dal riepilogo. - token_budget
int: budget token temporaneo. Se omesso, viene applicato un valore predefinito limitato. I valori positivi vengono troncati solo quando il sintetico formattato supera il budget. I valori non positivi disabilitano il troncamento basato sul budget; i fallback delle trascrizioni rimangono limitati a 4.000 caratteri. - **kwarg (Qualsiasi): riservato per opzioni di riepilogo future. Gli argomenti delle parole chiave inattesi generano
TypeError.
- except_last
- Restituzioni: oggetto di riepilogo contenente il testo di riepilogo del thread sintetizzato.
- Tipo restituito: OracleSummary
Esempi
len(thread.add_messages([{"role": "assistant", "content": "Summary source message"}]))
1
summary = thread.get_summary()
bool(summary.content)
True
metodo get_summary_async (asincrono)
Restituisce in modo asincrono un riepilogo del thread.
Una richiesta full-thread riutilizza o aggiorna il riepilogo permanente. Una richiesta con except_last riepiloga tale prefisso senza modificare il riepilogo permanente dell'intero thread.
- Parametri:
- except_last
int: numero di messaggi più recenti da escludere dal riepilogo. - token_budget
int: budget token temporaneo. Se omesso, viene applicato un valore predefinito limitato. I valori positivi vengono troncati solo quando il sintetico formattato supera il budget. I valori non positivi disabilitano il troncamento basato sul budget; i fallback delle trascrizioni rimangono limitati a 4.000 caratteri. - **kwarg (Qualsiasi): riservato per opzioni di riepilogo future. Gli argomenti delle parole chiave inattesi generano
TypeError.
- except_last
- Restituzioni: oggetto di riepilogo contenente il testo di riepilogo del thread sintetizzato.
- Tipo restituito: OracleSummary
metodo link_records
Creare una relazione diretta tra due record di proprietà di questo thread.
Attualmente, entrambi gli endpoint devono essere record simili alla memoria: "memory", "fact", "guideline" o "preference". I tipi di relazione incorporati sono "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") e "duplicates". "contradicts" e "duplicates" utilizzano la stessa etichetta al contrario.
Entrambi gli endpoint devono appartenere a questo thread. È possibile memorizzare un solo orientamento per una coppia di endpoint. opposite_relation_type assegna un nome alla relazione quando si passa dalla destinazione all'origine; ad esempio, new "supersedes" old diventa old "is_superseded_by" new in tale direzione.
- Parametri:
- source_record_id
str: identificativo del record di origine di proprietà del thread. - source_record_type
str: tipo logico del record di origine. - target_record_id
str: identificativo del record di destinazione di proprietà del thread. - target_record_type
str: tipo logico del record di destinazione. - tipo_relazione
str: etichetta della relazione da origine a destinazione. - tipo_relazione_opposite
str: etichetta di attraversamento inverso opzionale. Per un tipo di relazione di memoria incorporato, l'omissione utilizza l'etichetta inversa predefinita; per un tipo di relazione personalizzato, l'omissione utilizza la stessa etichetta in entrambe le direzioni. - relation_id
str: identificativo relazione stabile opzionale. Omettetelo per generarne uno. - timestamp
str | None: indicatore orario facoltativo memorizzato nella relazione. - metadata
dict[str, Any] | None: metadati di relazione facoltativi.
- source_record_id
- Restituzioni: identificativo della relazione creata.
- Tipo restituito: str
Esempi
thread.link_records(
"fact-1", "fact", "memory-1", "memory", "supports"
)
'relation-id'
metodo link_records_async (asincrono)
Crea in modo asincrono una relazione tra i record di proprietà di questo thread.
Attualmente, entrambi gli endpoint devono essere record simili alla memoria: "memory", "fact", "guideline" o "preference". I tipi di relazione incorporati sono "supersedes" ("is_superseded_by"), "contradicts", "refines" ("is_refined_by"), "supports" ("is_supported_by") e "duplicates". "contradicts" e "duplicates" utilizzano la stessa etichetta al contrario.
- Parametri:
- ID_record_origine
str - tipo_record_origine
str - ID_record_destinazione
str - tipo_record_destinazione
str - tipo_relazione
str - tipo_relazione_opposite
str - id_relazione
str - indicatore orario
str | None - metadati
dict[str, Any] | None
- ID_record_origine
- Tipo restituito: str
metodo list_images
Elenca i record immagine di proprietà di questo thread.
I record restituiti contengono metadati immagine per impostazione predefinita. I byte raw vengono caricati solo se vengono forniti include_bytes=True e image_id.
- Parametri:
- image_id
str: identificativo facoltativo utilizzato per filtrare le immagini. Se omesso, non viene applicato alcun filtro identificativo. - metadata_filter
dict[str, Any] | None: filtro facoltativo applicato ai metadati dell'immagine. - include_bytes
bool: indica se caricare i byte raw. Ciò richiede un valoreimage_id. - limite
int | None: numero massimo di record facoltativo. PassareNoneper disabilitare il limite predefinito dell'area di memorizzazione.
- image_id
- Restituzioni: immagini corrispondenti nell'ordine del negozio.
- Tipo restituito: list[ImageRecord]
metodo list_images_async (asincrono)
Elenca i record immagine di proprietà di questo thread in modo asincrono.
I record restituiti contengono metadati immagine per impostazione predefinita. I byte raw vengono caricati solo se vengono forniti include_bytes=True e image_id. L'ambito di questo thread viene applicato automaticamente.
- Parametri:
- image_id
str: identificativo facoltativo utilizzato per filtrare le immagini. Se omesso, non viene applicato alcun filtro identificativo. - metadata_filter
dict[str, Any] | None: filtro facoltativo applicato ai metadati dell'immagine. - include_bytes
bool: indica se caricare i byte raw. Ciò richiede un valoreimage_id. - limite
int | None: numero massimo di record facoltativo. PassareNoneper disabilitare il limite predefinito dell'area di memorizzazione.
- image_id
- Restituzioni: immagini corrispondenti nell'ordine del negozio.
- Tipo restituito: list[ImageRecord]
metodo search
Cercare in modo sincrono i record pertinenti a un'interrogazione.
- Parametri:
- query
str: stringa di query in linguaggio naturale. - user_id
str | None: sostituzione facoltativa dell'ambito utente. I valori omessi ereditano l'ambito utente predefinito del thread. - agent_id
str | None: sostituzione facoltativa dell'ambito dell'agente. I valori omessi ereditano l'ambito agente predefinito del thread. - thread_id
str | None: sostituzione facoltativa dell'ambito del thread. I valori omessi ereditano l'identificativo thread corrente del thread. - exact_user_match
bool: indica se la corrispondenza degli utenti deve essere rigorosa. - exact_agent_match
bool: indica se la corrispondenza degli agenti deve essere rigorosa. - exact_thread_match
bool: indica se la corrispondenza dei thread deve essere rigorosa. - max_results
int: numero massimo facoltativo di risultati da restituire. Se fornito, deve essere almeno1. Se si omette questo argomento, viene utilizzato il valore predefinito10. La chiamata può restituire meno dimax_resultsse esistono meno record corrispondenti non scaduti. - token_budget
int: limite assoluto facoltativo per il conteggio stimato dei token dei risultati formattati finali. Se omesso, viene utilizzata la configurazione di ricerca risolta. I valori positivi mantengono i risultati completi in ordine di classificazione, mentre la loro stima cumulativa corrisponde al budget. Se il primo risultato non si adatta, non vengono restituiti risultati. I valori non positivi disabilitano questo limite di output. - soft_token_budget
int: destinazione facoltativa per il conteggio stimato dei token dei risultati formattati finali. Se omesso, viene utilizzata la configurazione di ricerca risolta. Il risultato completo che raggiunge o supera questa destinazione viene mantenuto. I valori non positivi disabilitano questa destinazione. Impostaretoken_budgetsu un valore maggiore quando anche l'output deve avere un limite assoluto. - record_types
list[str]: elenco facoltativo di tipi di record da includere, ad esempio"memory","message"o"image". -
filtro_metadata
dict[str, Any] | None:Mapping facoltativo del filtro dei metadati utilizzato come filtro aggiuntivo dopo il filtro dell'ambito e del tipo di record. Le voci in
metadata_filtersono combinate con la semantica AND. Le voci il cui valore non è un dizionario operatore a livello di campo utilizzano la semantica di corrispondenza esatta: la chiave richiesta deve esistere nei metadati dei record memorizzati. I dizionari nidificati corrispondono in modo ricorsivo agli oggetti metadati nidificati. I valori scalari e di elenco devono corrispondere esattamente; anche l'ordine e la lunghezza dell'elenco devono corrispondere. Omettere questo argomento o passareNoneper eseguire la ricerca senza filtrare i metadati. Ad esempio,metadata_filter={"source": "chat"}per un campo scalare,metadata_filter={"travel": {"need": "transit"}}per un campo nidificato emetadata_filter={"tags": ["trip", "urgent"]}per una corrispondenza esatta dell'elenco. Combina le condizioni per richiederle tutte:metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }Per eseguire il test dell'appartenenza all'array, utilizzare un dizionario operatore a livello di campo.
"$array_contains"corrisponde a un valore o a tutti i valori di un elenco."$array_contains_any"corrisponde ad almeno un valore di un elenco."$not"nega un'altra espressione a livello di campo nello stesso campo, incluso un dizionario operatore o un valore di corrispondenza esatta raw. Le espressioni negative corrispondono quando l'espressione positiva non riesce, inclusi i campi mancanti; l'appartenenza all'array negata corrisponde anche ai campi non array:metadata_filter={ "source": "chat", "tags": { "$array_contains": "trip", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool: indica se i risultati includono record con stato non valido. Omettere questo argomento o passareTrueper includerli. PassareFalseper escluderli. - num_hops
int: numero di bordi dei collegamenti di memoria da seguire per ogni risultato della memoria diretta. Sono supportati i valori da0a5; omettere solo per i risultati diretti. I risultati di messaggi diretti, immagini e profili vengono conservati ma non sono espansi in un grafico. - max_linked_results
int: numero massimo di memorie collegate tra tutti gli hop collegati a ciascun risultato diretto. Omettere per l'impostazione predefinita100; passare0per non restituire alcun contesto collegato. - ambito
SearchScope: ambito di ricerca predefinito facoltativo. Fornirescopeo l'identificativo esplicito e gli argomenti di corrispondenza esatta, non entrambi.
- query
- Restituzioni: risultati della ricerca ordinati in base alla minore rilevanza.
- Tipo restituito: list[SearchResult]
- Soluzioni: ValueError: se
scopeviene combinato con un identificativo esplicito o con argomenti di corrispondenza esatta, semax_resultsè minore di1o semetadata_filternon è né un dizionario néNone.
Note
I campi di ambito omessi ereditano l'ambito di ricerca predefinito di questo thread: l'esatta corrispondenza di utente e agente più gli attuali user_id, agent_id e thread_id di questo thread. La ricerca thread predefinita lascia intenzionalmente exact_thread_match=False, quindi potrebbe restituire record pertinenti da altri thread per lo stesso utente/agente. Passare exact_thread_match=True per limitare i risultati al thread corrente. I valori espliciti dell'ambito None seguono comunque le regole di corrispondenza esatta risolte: exact_*_match=False lascia la dimensione non vincolata, mentre exact_*_match=True corrisponde solo ai valori None memorizzati.
I valori max_results espliciti devono essere almeno 1. Se si omette l'argomento, verrà utilizzato il valore predefinito 10. Questo è un limite superiore: la chiamata può restituire meno di max_results risultati quando i filtri sono troppo restrittivi, quando esistono meno record corrispondenti o a causa di un funzionamento di ricerca specifico dell'implementazione.
metodo search_async (asincrono)
Cercare in modo asincrono i record pertinenti a un'interrogazione.
- Parametri:
- query
str: stringa di query in linguaggio naturale. - user_id
str | None: sostituzione facoltativa dell'ambito utente. I valori omessi ereditano l'ambito utente predefinito del thread. - agent_id
str | None: sostituzione facoltativa dell'ambito dell'agente. I valori omessi ereditano l'ambito agente predefinito del thread. - thread_id
str | None: sostituzione facoltativa dell'ambito del thread. I valori omessi ereditano l'identificativo thread corrente del thread. - exact_user_match
bool: indica se la corrispondenza degli utenti deve essere rigorosa. - exact_agent_match
bool: indica se la corrispondenza degli agenti deve essere rigorosa. - exact_thread_match
bool: indica se la corrispondenza dei thread deve essere rigorosa. - max_results
int: numero massimo facoltativo di risultati da restituire. Se fornito, deve essere almeno1. Se si omette questo argomento, viene utilizzato il valore predefinito10. - token_budget
int: limite assoluto facoltativo per il conteggio stimato dei token dei risultati formattati finali. Se omesso, viene utilizzata la configurazione di ricerca risolta. I valori positivi mantengono i risultati completi in ordine di classificazione, mentre la loro stima cumulativa corrisponde al budget. Se il primo risultato non si adatta, non vengono restituiti risultati. I valori non positivi disabilitano questo limite di output. - soft_token_budget
int: destinazione facoltativa per il conteggio stimato dei token dei risultati formattati finali. Se omesso, viene utilizzata la configurazione di ricerca risolta. Il risultato completo che raggiunge o supera questa destinazione viene mantenuto. I valori non positivi disabilitano questa destinazione. Impostaretoken_budgetsu un valore maggiore quando anche l'output deve avere un limite assoluto. - record_types
list[str]: elenco facoltativo di tipi di record da includere, ad esempio"memory","message"o"image". -
filtro_metadata
dict[str, Any] | None:Mapping facoltativo del filtro dei metadati utilizzato come filtro aggiuntivo dopo il filtro dell'ambito e del tipo di record. Le voci in
metadata_filtersono combinate con la semantica AND. Le voci il cui valore non è un dizionario operatore a livello di campo utilizzano la semantica di corrispondenza esatta: la chiave richiesta deve esistere nei metadati dei record memorizzati. I dizionari nidificati corrispondono in modo ricorsivo agli oggetti metadati nidificati. I valori scalari e di elenco devono corrispondere esattamente; anche l'ordine e la lunghezza dell'elenco devono corrispondere. Omettere questo argomento o passareNoneper eseguire la ricerca senza filtrare i metadati. Ad esempio,metadata_filter={"source": "chat"}per un campo scalare,metadata_filter={"travel": {"need": "transit"}}per un campo nidificato emetadata_filter={"tags": ["trip", "urgent"]}per una corrispondenza esatta dell'elenco. Combina le condizioni per richiederle tutte:metadata_filter={ "source": "chat", "travel": {"need": "transit"}, "tags": ["trip", "urgent"], }Per eseguire il test dell'appartenenza all'array, utilizzare un dizionario operatore a livello di campo.
"$array_contains"corrisponde a un valore o a tutti i valori di un elenco."$array_contains_any"corrisponde ad almeno un valore di un elenco."$not"nega un'altra espressione a livello di campo nello stesso campo, incluso un dizionario operatore o un valore di corrispondenza esatta raw. Le espressioni negative corrispondono quando l'espressione positiva non riesce, inclusi i campi mancanti; l'appartenenza all'array negata corrisponde anche ai campi non array:metadata_filter={ "source": "chat", "tags": { "$array_contains": "trip", "$not": {"$array_contains": "archived"}, }, } - include_invalid_results
bool: indica se i risultati includono record con stato non valido. Omettere questo argomento o passareTrueper includerli. PassareFalseper escluderli. - num_hops
int: numero di bordi dei collegamenti di memoria da seguire per ogni risultato della memoria diretta. Sono supportati i valori da0a5; omettere solo per i risultati diretti. I risultati di messaggi diretti, immagini e profili vengono conservati ma non sono espansi in un grafico. - max_linked_results
int: numero massimo di memorie collegate tra tutti gli hop collegati a ciascun risultato diretto. Omettere per l'impostazione predefinita100; passare0per non restituire alcun contesto collegato. - ambito
SearchScope: ambito di ricerca predefinito facoltativo. Fornirescopeo l'identificativo esplicito e gli argomenti di corrispondenza esatta, non entrambi.
- query
- Restituzioni: risultati della ricerca ordinati in base alla minore rilevanza.
- Tipo restituito: list[SearchResult]
- Soluzioni: ValueError: se
scopeviene combinato con un identificativo esplicito o con argomenti di corrispondenza esatta, semax_resultsè minore di1o semetadata_filternon è né un dizionario néNone.
Note
I campi di ambito omessi ereditano l'ambito di ricerca predefinito di questo thread: l'esatta corrispondenza di utente e agente più gli attuali user_id, agent_id e thread_id di questo thread. La ricerca thread predefinita lascia intenzionalmente exact_thread_match=False, quindi potrebbe restituire record pertinenti da altri thread per lo stesso utente/agente. Passare exact_thread_match=True per limitare i risultati al thread corrente. I valori espliciti dell'ambito None seguono comunque le regole di corrispondenza esatta risolte: exact_*_match=False lascia la dimensione non vincolata, mentre exact_*_match=True corrisponde solo ai valori None memorizzati.
I valori max_results espliciti devono essere almeno 1. Se si omette l'argomento, verrà utilizzato il valore predefinito 10. Questo è un limite superiore: la chiamata può restituire meno di max_results risultati quando i filtri sono troppo restrittivi, quando esistono meno record corrispondenti o a causa di un funzionamento di ricerca specifico dell'implementazione.
metodo update_image
Aggiorna un'immagine di proprietà di questo thread.
Omettere image per conservare i byte esistenti. Se viene fornito image, è necessario fornire mime_type. Omettere description per conservare la descrizione esistente. Passare None per generare una nuova descrizione con l'LLM configurato; una descrizione non nulla la sostituisce direttamente. La scadenza di un'immagine allegata a un messaggio deve essere modificata tramite update_message().
- Restituzioni: l'identificativo immagine aggiornato.
- Tipo restituito: str
- Raise: ValueError: se vengono fornite le impostazioni di scadenza per un'immagine allegata a un messaggio.
- Parametri:
- id_immagine
str - immagine
bytes - descrizione
str | None - tipo_mime
ImageMimeType - metadati
dict[str, Any] | None - indicatore orario
str | None - ttl_days
int | None - ttl_anchor
TimeToLiveAnchor - kwarg
Any
- id_immagine
metodo update_image_async (asincrono)
Aggiornare un'immagine di proprietà di questo thread in modo asincrono.
Omettere image per conservare i byte esistenti. Se viene fornito image, è necessario fornire mime_type. Omettere description per conservare la descrizione esistente. Passare None per generare una nuova descrizione con l'LLM configurato; una descrizione non nulla la sostituisce direttamente. I metadati, l'indicatore orario e le impostazioni di scadenza vengono aggiornati quando vengono forniti. La scadenza di un'immagine allegata a un messaggio deve essere modificata tramite update_message_async().
- Restituzioni: l'identificativo immagine aggiornato.
- Tipo restituito: str
- Raise: ValueError: se vengono fornite le impostazioni di scadenza per un'immagine allegata a un messaggio.
- Parametri:
- id_immagine
str - immagine
bytes - descrizione
str | None - tipo_mime
ImageMimeType - metadati
dict[str, Any] | None - indicatore orario
str | None - ttl_days
int | None - ttl_anchor
TimeToLiveAnchor - kwarg
Any
- id_immagine
metodo update_memory
Aggiorna un record simile alla memoria di proprietà di questo thread.
- Parametri:
- memory_id
str– Identificativo di memoria. Vengono aggiornati solo i record di tipo memoria (memory,guideline,fact,preference) il cuithread_idmemorizzato corrisponde esattamente a questo thread. - content
str: contenuto sostitutivo opzionale. Fornire una stringa per sostituire il contenuto memorizzato. Se omesso, il contenuto memorizzato viene conservato. Ometterecontentper mantenere il valore corrente oppure utilizzaredelete_memory()per rimuovere il record. - metadata
dict[str, Any] | None: mapping dei metadati di sostituzione facoltativo. Se omesso, i metadati memorizzati vengono conservati. Se fornita, sostituisce l'oggetto metadati memorizzato. Questa API non unisce in modo approfondito i metadati. - timestamp
str | None: nuovo indicatore orario facoltativo per questa memoria. Rappresenta quando è stata creata la memoria. Se omesso, l'indicatore orario memorizzato viene conservato. PassareNoneper cancellare l'indicatore orario salvato e utilizzare l'ora di creazione del record nel negozio. Settl_anchorèTimeToLiveAnchor.TIMESTAMP, gli indicatori orari di sostituzione devono essere stringhe ISO-8601. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - ttl_days
int | None: aggiornamento della scadenza facoltativo in giorni. Omettere questo argomento per lasciare invariata la scadenza corrente a meno che non venga specificatottl_anchor. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per cancellare la scadenza quando non è impostata. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. Le memorie scadute non sono disponibili per questa API thread e non possono essere aggiornate. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale per un aggiornamento della scadenza. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione della memoria oTimeToLiveAnchor.TIMESTAMPper la sostituzionetimestampfornita nello stesso aggiornamento oppure l'indicatore orario dell'evento memorizzato quandotimestampviene omesso. Se si specificattl_anchorsenzattl_days, viene utilizzata la durata Time To Live predefinita dello schema. Quandottl_anchorviene omesso durante un aggiornamento, il thread utilizzaTimeToLiveAnchor.CREATED_AT. Gli aggiornamenti con indicatore orario basato su indicatore orario richiedono un indicatore orario ISO-8601 sostitutivo nella stessa chiamata o un indicatore orario evento memorizzato esistente in tale formato. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - stato
RecordStatus: stato del ciclo di vita di sostituzione facoltativo per questo record simile alla memoria. Ometterlo per mantenere lo stato corrente. - **kwargs (Qualsiasi) – gli argomenti con parole chiave impreviste vengono rifiutati.
- memory_id
- Restituzioni: identificativo del record aggiornato simile alla memoria.
- Tipo restituito: str
metodo update_memory_async (asincrono)
Aggiorna un record simile alla memoria di proprietà di questo thread esatto in modo asincrono.
- Parametri:
- memory_id
str– Identificativo di memoria. Vengono aggiornati solo i record di tipo memoria (memory,guideline,fact,preference) il cuithread_idmemorizzato corrisponde esattamente a questo thread. - content
str: contenuto sostitutivo opzionale. Fornire una stringa per sostituire il contenuto memorizzato. Se omesso, il contenuto memorizzato viene conservato. Ometterecontentper mantenere il valore corrente oppure utilizzaredelete_memory()per rimuovere il record. - metadata
dict[str, Any] | None: mapping dei metadati di sostituzione facoltativo. Se omesso, i metadati memorizzati vengono conservati. Se fornita, sostituisce l'oggetto metadati memorizzato. Questa API non unisce in modo approfondito i metadati. - timestamp
str | None: nuovo indicatore orario facoltativo per questa memoria. Rappresenta quando è stata creata la memoria. Se omesso, l'indicatore orario memorizzato viene conservato. PassareNoneper cancellare l'indicatore orario salvato e utilizzare l'ora di creazione del record nel negozio. Settl_anchorèTimeToLiveAnchor.TIMESTAMP, gli indicatori orari di sostituzione devono essere stringhe ISO-8601. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - ttl_days
int | None: aggiornamento della scadenza facoltativo in giorni. Omettere questo argomento per lasciare invariata la scadenza corrente a meno che non venga specificatottl_anchor. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per cancellare la scadenza quando non è impostata. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. Le memorie scadute non sono disponibili per questa API thread e non possono essere aggiornate. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale per un aggiornamento della scadenza. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione della memoria oTimeToLiveAnchor.TIMESTAMPper la sostituzionetimestampfornita nello stesso aggiornamento oppure l'indicatore orario dell'evento memorizzato quandotimestampviene omesso. Se si specificattl_anchorsenzattl_days, viene utilizzata la durata Time To Live predefinita dello schema. Quandottl_anchorviene omesso durante un aggiornamento, il thread utilizzaTimeToLiveAnchor.CREATED_AT. Gli aggiornamenti con indicatore orario basato su indicatore orario richiedono un indicatore orario ISO-8601 sostitutivo nella stessa chiamata o un indicatore orario evento memorizzato esistente in tale formato. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - stato
RecordStatus: stato del ciclo di vita di sostituzione facoltativo per questo record simile alla memoria. Ometterlo per mantenere lo stato corrente. - **kwargs (Qualsiasi) – gli argomenti con parole chiave impreviste vengono rifiutati.
- memory_id
- Restituzioni: identificativo del record aggiornato simile alla memoria.
- Tipo restituito: str
Esempi
import asyncio
memory_id = asyncio.run(thread.add_memory_async("Original memory"))
(
asyncio.run(thread.update_memory_async(
memory_id, content="Updated memory"
))
== memory_id
)
True
metodo update_message
Aggiornare un record di messaggio raw di proprietà di questo thread esatto.
- Parametri:
- message_id
str: identificativo del messaggio. Vengono aggiornati solo i messaggi il cuithread_idmemorizzato corrisponde esattamente a questo thread. - content
str | list[Mapping[str, Any]]: contenuto opzionale del messaggio di sostituzione. Fornire una stringa per sostituire il contenuto memorizzato o una sequenza ordinata di parti di contenuto di testo e immagine. Se omesso, il contenuto memorizzato viene conservato. Utilizzare una stringa vuota per sostituirla con contenuto di testo vuoto. - metadata
dict[str, Any] | None: mapping dei metadati di sostituzione facoltativo. Se omesso, i metadati memorizzati vengono conservati. Se fornita, sostituisce l'oggetto metadati memorizzato. Questa API non unisce in modo approfondito i metadati. - ttl_days
int | None: aggiornamento della scadenza facoltativo in giorni. Omettere questo argomento per lasciare invariata la scadenza corrente a meno che non venga specificatottl_anchor. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per cancellare la scadenza quando non è impostata. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. I messaggi scaduti non sono disponibili per questa API thread e non possono essere aggiornati. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale per un aggiornamento della scadenza. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione del messaggio oTimeToLiveAnchor.TIMESTAMPper l'indicatore orario dell'evento memorizzato. Se si specificattl_anchorsenzattl_days, viene utilizzata la durata Time To Live predefinita dello schema. Quandottl_anchorviene omesso durante un aggiornamento, il thread utilizzaTimeToLiveAnchor.CREATED_AT. Gli aggiornamenti con indicatore orario richiedono un indicatore orario esistente del messaggio ISO-8601 memorizzato. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - **kwargs (Qualsiasi) – gli argomenti con parole chiave impreviste vengono rifiutati.
- message_id
- Restituzioni: identificativo del record messaggio aggiornato.
- Tipo restituito: str
Note
I campi omessi vengono conservati dal record memorizzato. Il ruolo memorizzato e l'indicatore orario rimangono invariati. La modifica del contenuto aggiorna la cronologia dei messaggi raw e, quando l'estrazione automatica è abilitata, può far sì che l'SDK estragga nuovamente le memorie dal messaggio modificato e dalla cronologia precedente. In modalità INLINE, l'estrazione viene completata prima che venga restituito il metodo. In modalità BACKGROUND, questo metodo viene restituito dopo la riuscita dell'aggiornamento del messaggio raw e l'estrazione in background viene tentata. Questo lavoro di follow-up non influisce sulla normale frequenza di estrazione utilizzata dalle successive chiamate add_messages(). Le memorie estratte esistenti rimangono in vigore mentre le memorie appena estratte dal contenuto modificato possono essere aggiunte. Poiché l'aggiornamento del messaggio raw e qualsiasi scrittura di memoria estratta successiva non si verificano in modo atomico, le memorie estratte possono comunque riflettere il contenuto del messaggio precedente se il lavoro in background non si inserisce nella coda, se un'attesa di capacità di coda configurata raggiunge il timeout o se il lavoro di estrazione successivo non riesce. Inoltre, si noti che le memorie estratte esistenti mantengono la loro scadenza originale quando il TTL di un messaggio di origine cambia.
Esempi
message_id = thread.add_messages([{"role": "user", "content": "Draft message"}])[0]
thread.update_message(message_id, content="Edited message") == message_id
True
metodo update_message_async (asincrono)
Aggiornare un record di messaggio raw di proprietà di questo thread esatto in modo asincrono.
- Parametri:
- message_id
str: identificativo del messaggio. Vengono aggiornati solo i messaggi il cuithread_idmemorizzato corrisponde esattamente a questo thread. - content
str | list[Mapping[str, Any]]: contenuto opzionale del messaggio di sostituzione. Fornire una stringa per sostituire il contenuto memorizzato o una sequenza ordinata di parti di contenuto di testo e immagine. Se omesso, il contenuto memorizzato viene conservato. Utilizzare una stringa vuota per sostituirla con contenuto di testo vuoto. - metadata
dict[str, Any] | None: mapping dei metadati di sostituzione facoltativo. Se omesso, i metadati memorizzati vengono conservati. Se fornita, sostituisce l'oggetto metadati memorizzato. Questa API non unisce in modo approfondito i metadati. - ttl_days
int | None: aggiornamento della scadenza facoltativo in giorni. Omettere questo argomento per lasciare invariata la scadenza corrente a meno che non venga specificatottl_anchor. PassareNoneper utilizzareMemoryRetentionConfig.max_ttl_daysquando la configurazione di conservazione ne imposta una o per cancellare la scadenza quando non è impostata. I valori superiori aMemoryRetentionConfig.max_ttl_daysvengono bloccati al massimo con un'avvertenza. I messaggi scaduti non sono disponibili per questa API thread e non possono essere aggiornati. - ttl_anchor
TimeToLiveAnchor: ancoraggio Time To Live opzionale per un aggiornamento della scadenza. UtilizzareTimeToLiveAnchor.CREATED_ATper l'ora di creazione del messaggio oTimeToLiveAnchor.TIMESTAMPper l'indicatore orario dell'evento memorizzato. Se si specificattl_anchorsenzattl_days, viene utilizzata la durata Time To Live predefinita dello schema. Gli aggiornamenti con indicatore orario richiedono un indicatore orario esistente del messaggio ISO-8601 memorizzato. Gli indicatori orari ISO-8601 senza un fuso orario vengono trattati come UTC. - **kwargs (Qualsiasi) – gli argomenti con parole chiave impreviste vengono rifiutati.
- message_id
- Restituzioni: identificativo del record messaggio aggiornato.
- Tipo restituito: str
Note
I campi omessi vengono conservati dal record memorizzato. Il ruolo memorizzato e l'indicatore orario rimangono invariati. La modifica del contenuto aggiorna la cronologia dei messaggi raw e, quando l'estrazione automatica è abilitata, può far sì che l'SDK estragga nuovamente le memorie dal messaggio modificato e dalla cronologia precedente. In modalità INLINE, l'estrazione viene completata prima che venga restituito il metodo. In modalità BACKGROUND, questo metodo viene restituito dopo la riuscita dell'aggiornamento del messaggio raw e l'estrazione in background viene tentata. Questo lavoro di follow-up non influisce sulla normale frequenza di estrazione utilizzata dalle successive chiamate add_messages(). Le memorie estratte esistenti rimangono in vigore mentre le memorie appena estratte dal contenuto modificato possono essere aggiunte. Poiché l'aggiornamento del messaggio raw e qualsiasi scrittura di memoria estratta successiva non si verificano in modo atomico, le memorie estratte possono comunque riflettere il contenuto del messaggio precedente se il lavoro in background non si inserisce nella coda, se un'attesa di capacità di coda configurata raggiunge il timeout o se il lavoro di estrazione successivo non riesce. Inoltre, si noti che le memorie estratte esistenti mantengono la loro scadenza originale quando il TTL di un messaggio di origine cambia.
Esempi
import asyncio
message_ids = asyncio.run(thread.add_messages_async(
[{"role": "user", "content": "Draft message"}]
))
(
asyncio.run(thread.update_message_async(
message_ids[0], content="Edited message"
))
== message_ids[0]
)
True
metodo update_record_link
Aggiornare una relazione i cui endpoint sono di proprietà di questo thread.
I valori omessi vengono conservati. Quando relation_type passa a un tipo di relazione di memoria incorporata, l'etichetta inversa fissa sostituisce opposite_relation_type.
- Parametri:
- relation_id
str: identificativo della relazione di proprietà del thread. - relation_type
str: etichetta sostitutiva facoltativa source-to-target. - opposite_relation_type
str: etichetta di attraversamento inverso sostitutiva opzionale. Ometterlo per conservare l'etichetta memorizzata. - timestamp
str | None: indicatore orario di sostituzione facoltativo. PassareNoneper cancellare il contenuto. - metadata
dict[str, Any] | None: metadati di sostituzione facoltativi. Sostituisce l'oggetto memorizzato.
- relation_id
- Restituzioni: numero di relazioni aggiornate, ovvero
0o1. - Tipo restituito: int.
Esempi
thread.update_record_link("relation-id", relation_type="supports")
1
metodo update_record_link_async (asincrono)
Aggiorna in modo asincrono una relazione i cui endpoint appartengono a questo thread.
- Parametri:
- id_relazione
str - tipo_relazione
str - tipo_relazione_opposite
str - indicatore orario
str | None - metadati
dict[str, Any] | None
- id_relazione
- Tipo restituito: int.
metodo wait_for_memory_extraction
Attendere l'estrazione della memoria in background precedente per questo thread.
Questo metodo attende l'estrazione in background avviata dalle precedenti chiamate add_messages(), add_messages_async(), update_message() o update_message_async() su questo thread tramite lo stesso componente di memoria dell'agente. Se una di queste chiamate sta già finendo, questo metodo include l'estrazione che inizia prima dell'attesa.
Il metodo non attende l'avvio dell'estrazione dopo l'inizio di questa attesa, l'estrazione avviata da un componente di memoria agente diverso o l'esecuzione dell'estrazione in un altro processo. Conteggio degli errori di estrazione completati per questa attesa.
- Parametri: timeout
float | None: numero massimo facoltativo di secondi di attesa. L'impostazione predefinita è300. PassareNoneper attendere il completamento dell'estrazione in sospeso per questo thread. - Aumenti: TimeoutError: viene generato quando il timeout scade prima del termine dell'estrazione in background precedente.
- Tipo restituito: nessuna
Esempi
thread.wait_for_memory_extraction(timeout=10)
metodo wait_for_memory_extraction_async (asincrono)
Attendere in modo asincrono l'estrazione della memoria in background precedente.
Questo metodo segue lo stesso funzionamento di wait_for_memory_extraction().
- Parametri: timeout
float | None: numero massimo facoltativo di secondi di attesa. L'impostazione predefinita è300. PassareNoneper attendere indefinitamente. - Aumenti: TimeoutError: viene generato quando il timeout scade prima del termine dell'estrazione in background precedente.
- Tipo restituito: nessuna
Esempi
import asyncio
asyncio.run(thread.wait_for_memory_extraction_async(timeout=10))
Nota: delete_message() elimina solo la riga del messaggio raw. I ricordi derivati possono ancora essere ricercabili o apparire nelle schede contesto. Utilizzare OracleAgentMemory.delete_thread() per eliminare il thread insieme ai messaggi e alle memorie associati. L'eliminazione di messaggi e memoria tramite un handle di thread attende l'estrazione in background precedente già accettata dal client collegato per tale thread. Questa non è una barriera di concorrenza globale per altre istanze, processi o lavori client accettati dopo l'inizio dell'attesa.
Messaggi e contenuti dei messaggi
classe oracleagentmemory.apis.message.Message
Basi: object
Messaggio in-memory condiviso da thread e adattatori LLM.
- Parametri:
- ruolo
str: ruolo messaggio. I nomi dei ruoli personalizzati sono consentiti per i messaggi thread. - content
str | collections.abc.Sequence[oracleagentmemory.apis.message.MessageContent]: il testo del messaggio o una sequenza ordinata di parti TextContent e ImageContent. Una sequenza di contenuto non deve essere vuota ed è memorizzata come tupla immutabile. - timestamp
str | None: indicatore orario facoltativo associato al messaggio. - metadata
dict[str, Any] | None: metadati facoltativi compatibili con JSON associati al messaggio. - id
str | None: identificativo del messaggio stabile opzionale. I negozi ne generano uno quando il messaggio viene aggiunto senza un identificativo.
- ruolo
classe oracleagentmemory.apis.message.MessageContent
Basi: ABC
Classe di base per il contenuto del messaggio strutturato.
- Parametri:
- id
str: identificativo stabile per questa parte di contenuto. Generato automaticamente se omesso. - timestamp
str | None: indicatore orario facoltativo associato a questa parte del contenuto.
- id
classe oracleagentmemory.apis.message.TextContent
Basi: MessageContent
Parte di testo in un messaggio multimodale.
- Parametri:
- text
str: il testo riportato da questa parte del contenuto. - id
str: identificativo stabile ereditato da MessageContent. Generato automaticamente se omesso. - timestamp
str | None: indicatore orario facoltativo ereditato da MessageContent.
- text
classe oracleagentmemory.apis.message.ImageContent
Basi: MessageContent
Una parte immagine in un messaggio multimodale.
- Parametri:
- byte
bytes | None: dati dell'immagine, se disponibili.Noneè consentito quando un messaggio contiene metadati di immagine senza caricare i byte di immagine. - mime_type
oracleagentmemory.apis.message.ImageMimeType: il tipo MIME dell'immagine. - description
str | None: testo opzionale che descrive l'immagine. Quando si utilizzaNone, le API di immagine e messaggio di alto livello possono generare una descrizione utilizzando l'LLM configurato. - id
str: identificativo stabile ereditato da MessageContent. Generato automaticamente se omesso. - timestamp
str | None: indicatore orario facoltativo ereditato da MessageContent.
- byte
classe oracleagentmemory.apis.message.ImageMimeType
Basi: str, Enum
Tipi MIME supportati per il contenuto immagine.
PNG e WebP animati non sono supportati.
JPEG = 'immagine/JPEG'
PNG = 'immagine/PNG'
WEBP = "immagine/WEBP"
Schede contesto
classe oracleagentmemory.apis.contextcard.ContextCard
Basi: ABC
Oggetto context-card astratto restituito dalle API thread.
proprietà content (abstract)
- Tipo restituito: str
- Descrizione: restituisce il testo della scheda contesto visualizzata.
classe oracleagentmemory.core.contextcard.OracleContextCard
Basi: ContextCard
Scheda contesto restituita da un thread Oracle.
- Parametri:
- summary
str: testo di riepilogo incorporato nella scheda. - argomenti
Sequence[str] | None: argomenti di recupero facoltativi associati al thread. - relevant_results
Sequence[SearchResult] | None: record permanenti recuperati facoltativi inclusi nella scheda. - recent_messages
Sequence[Message] | None: messaggi raw recenti facoltativi visualizzati nella scheda. - message_format
str: modello interno utilizzato per il rendering direcent_messages.
- summary
proprietà content
- Tipo restituito: str
-
Descrizione: restituisce il testo della scheda contesto visualizzata.
- Restituzioni: testo della scheda di contesto visualizzato in formato XML adatto per l'assemblaggio dei prompt.
- Tipo restituito: str
Esempi
card = OracleContextCard(summary="ctx")
"<summary>" in card.content and "ctx" in card.content
True
proprietà formatted_content
- Tipo restituito: str
-
Descrizione: restituisce il testo della scheda contesto visualizzato utilizzato nei flussi di generazione prompt.
- Restituzioni: testo della scheda contesto visualizzato in formato XML.
- Tipo restituito: str
Esempi
OracleContextCard(summary="").formatted_content
''
card = OracleContextCard(summary="ctx", topics=["travel"])
"<topics>" in card.formatted_content
True
Sintetici
classe oracleagentmemory.apis.summary.Summary
Basi: ABC
Oggetto thread-summary astratto restituito dalle API thread.
proprietà content (abstract)
- Tipo restituito: str
- Descrizione: restituisce il testo sintetico del sintetico.
classe oracleagentmemory.core.summary.OracleSummary
Basi: Summary
Riepilogo restituito da un thread Oracle.
- Parametri: content
str: testo di riepilogo sintetizzato dalla trascrizione del thread.
Esempi
summary = OracleSummary(content="Plan the Rome itinerary.")
summary.content
'Plan the Rome itinerary.'
str(summary)
'Plan the Rome itinerary.'
proprietà content
- Tipo restituito: str
-
Descrizione: restituisce il testo sintetico del sintetico.
- Restituzioni: testo di riepilogo per il thread.
- Tipo restituito: str
Esempi
OracleSummary(content="Keep the tea preference in mind.").content
'Keep the tea preference in mind.'
proprietà formatted_content
- Tipo restituito: str
-
Descrizione: restituisce il testo di riepilogo visualizzato utilizzato nei flussi di generazione prompt.
- Restituzioni: testo sintetico visualizzato.
- Tipo restituito: str
Esempi
OracleSummary(content="Thread recap").formatted_content
'Thread recap'