Rechercher
Cette page présente les aides à la définition de la portée destinées aux développeurs ainsi que le type de résultat de recherche Oracle concret.
Résolution de la portée
Pour chaque champ de portée, vous pouvez effectuer l'une des trois opérations suivantes :
- omettez-le pour utiliser la valeur par défaut de cette couche d'API. Dans les signatures Python et dans
SearchScope, cet état omis est représenté parNOT_SET_MARKER. - spécifier un ID concret pour utiliser cette valeur ;
- indiquez
Nonepour indiquer que l'enregistrement n'a pas de portée sur cette dimension. Par exemple,agent_id=Nonesignifie que l'enregistrement n'est pas lié à un agent.
Chaque enregistrement stocké comporte trois champs de portée indépendants : user_id, agent_id et thread_id. Chaque champ peut contenir un ID concret ou None.
Exemples :
thread_id=Nonesignifie que l'enregistrement n'est pas lié à un thread.agent_id=Nonesignifie que l'enregistrement n'est pas lié à un agent.user_id="u1", agent_id=None, thread_id=Nonesignifie que l'enregistrement est ciblé sur l'utilisateuru1, mais pas sur un agent ou un thread spécifique.
Les mêmes règles d'étendue s'appliquent aux API de recherche synchrone et asynchrone.
Dans le tableau suivant, ID désigne user_id, agent_id ou thread_id, ainsi que l'indicateur de correspondance exacte correspondant.
Résolution de portée de recherche par couche d'API
| Cas | thread.search() | OracleAgentMemory.search() | store.search() |
|---|---|---|---|
| ID omis | Utilise les valeurs par défaut de thread : user_id et agent_id exacts, plus thread_id en cours avec exact_thread_match=False. |
Utilise les valeurs par défaut du client. user_id omis est rejeté. Omis agent_id et thread_id restent larges. |
Utilise les valeurs par défaut de l'emplacement de stockage : ID=None et exact_*_match=False, de sorte que la dimension ne soit pas filtrée. |
Valeur explicite, y compris None + exact_*_match=False |
Cette dimension n'est pas filtrée. Les enregistrements dont la valeur correspond à celle indiquée peuvent être classés plus haut que les autres enregistrements. | Pour user_id, rejeté car les recherches client nécessitent une portée utilisateur précise explicite. Pour agent_id et thread_id, cette dimension n'est pas filtrée. Les enregistrements dont la valeur correspond à celle indiquée peuvent être classés plus haut que les autres enregistrements. |
Cette dimension n'est pas filtrée. Les enregistrements dont la valeur correspond à celle indiquée peuvent être classés plus haut que les autres enregistrements. |
ID explicite + exact_*_match=True |
Correspond exactement à cet ID. | Correspond exactement à cet ID. | Correspond exactement à cet ID. |
None et exact_*_match=True explicites |
Correspond uniquement aux enregistrements non ciblés sur cette dimension. | Correspond uniquement aux enregistrements non ciblés sur cette dimension. | Correspond uniquement aux enregistrements non ciblés sur cette dimension. |
Utilisez None explicite avec exact_*_match=True lorsque vous voulez que seuls les enregistrements ne soient pas inclus dans cette dimension et que l'API le permette. Omettez le champ lorsque vous voulez que l'opération soit définie par défaut.
Portées
classe oracleagentmemory.apis.scope.Scope
Bases : object
Représente une portée pour l'insertion ou la recherche d'informations.
- Paramètres:
- user_id
str | None - agent_id
str | None - thread_id
str | None
- user_id
user_id
ID d'utilisateur final. NOT_SET_MARKER signifie que le champ a été omis et doit être résolu par la valeur par défaut propre à l'opération. L'expression None explicite est conservée et interprétée par les règles propres à l'opération. Les API client de niveau supérieur telles que OracleAgentMemory.search() peuvent exiger que la portée utilisateur soit explicite. Dans ces API, None peut être utilisé pour cibler uniquement les enregistrements non ciblés.
- Type : str | None
agent_id
ID d'agent. NOT_SET_MARKER signifie que le champ a été omis et doit être résolu par la valeur par défaut propre à l'opération. L'expression None explicite est conservée et interprétée par les règles propres à l'opération.
- Type : str | None
id_thread
ID de thread. NOT_SET_MARKER signifie que le champ a été omis et doit être résolu par la valeur par défaut propre à l'opération. L'expression None explicite est conservée et interprétée par les règles propres à l'opération.
- Type : str | None
classe oracleagentmemory.apis.searchscope.SearchScope
Bases : Scope
Représente la portée d'une requête de recherche et limite donc ce qui peut être renvoyé.
- Paramètres:
- user_id
str | None - agent_id
str | None - thread_id
str | None - exact_user_match
bool - exact_agent_match
bool - exact_thread_match
bool
- user_id
user_id
ID d'utilisateur final. Lorsque la valeur exact_user_match résolue est True, cet ID correspond exactement, y compris None. Lorsque la valeur est False, la dimension utilisateur n'est pas contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut propre à l'opération. Les API client de niveau supérieur telles que OracleAgentMemory.search() peuvent exiger que la portée utilisateur soit explicite. Dans ces API, None cible uniquement les enregistrements sans portée lorsque exact_user_match est résolu en True.
- Type : str | None
agent_id
ID d'agent. Lorsque la valeur exact_agent_match résolue est True, cet ID correspond exactement, y compris None. Lorsque la valeur est False, la dimension d'agent n'est pas contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération utilisant la portée.
- Type : str | None
id_thread
ID de thread. Lorsque la valeur exact_thread_match résolue est True, cet ID correspond exactement, y compris None. Lorsque la valeur est False, la dimension de thread n'est pas contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération utilisant la portée.
- Type : str | None
exact_user_match
Indique si la correspondance doit être exacte avec le fichier user_id résolu. True correspond exactement, y compris None. False laisse la dimension utilisateur sans contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération. Les API client de niveau supérieur telles que OracleAgentMemory.search() peuvent exiger qu'elles restent True.
- Type : booléen
exact_agent_match
Indique si la correspondance doit être exacte avec le fichier agent_id résolu. True correspond exactement, y compris None. False laisse la dimension d'agent sans contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération.
- Type : booléen
correspondance_thread_exact
Indique si la correspondance doit être exacte avec le fichier thread_id résolu. True correspond exactement, y compris None. False laisse la dimension de thread sans contrainte. NOT_SET_MARKER est remplacé par une valeur par défaut en fonction de l'opération.
- Type : booléen
Résultats
classe oracleagentmemory.core.OracleSearchResult
Bases : SearchResult
Résultat de la recherche renvoyé par un thread Oracle.
- Paramètres:
- distance
float: distance par rapport au vecteur de requête (plus petite est préférable). - record
Record– Objet d'enregistrement contenant les informations de métadonnées relatives à l'entrée persistante. - id
str | None: identificateur facultatif associé à l'enregistrement stocké.
- distance
propriété content
- Type de retour : str
- Description : renvoie le contenu textuel principal de l'enregistrement mis en correspondance.
propriété formatted_content
- Type de retour : str
-
Description : renvoie le rendu sécurisé au format XML par défaut utilisé dans les invites.
- Renvoie : affichage sécurisé au format XML qui inclut les champs visibles par défaut pour un résultat de recherche.
- Type de retour : str
propriété id
- Type de retour : str | None
- Description : Renvoie l'identifiant stable de l'enregistrement mis en correspondance, lorsqu'il est disponible.
propriété metadata
- Type de retour : dict[str, Any] | Aucun
- Description : renvoie les métadonnées d'enregistrement, le cas échéant.
propriété record
- Type renvoyé : Enregistrement
- Description : renvoie l'enregistrement correspondant.
La valeur renvoyée peut être une sous-classe Record ou ScopedRecord simple. Utilisez isinstance(result.record, ScopedRecord) avant de lire les identificateurs de portée publique.
propriété timestamp
- Type de retour : str | None
- Description : renvoie l'horodatage de l'enregistrement, le cas échéant.