LLM et embarqueurs
Cette page présente les interfaces abstraites utilisées pour connecter les LLM et les intégrateurs à la mémoire de l'agent Oracle.
Interface LLM
classe oracleagentmemory.apis.llms.ILlm
Bases : ABC
Interface abstraite pour l'appel LLM.
method generate (résumé)
Générez une réponse à partir d'un LLM de manière synchrone.
- Paramètres:
- invite
str | Sequence[dict[str, str]]: invite en texte brut (traité en tant que message utilisateur unique) ou liste de messages de type discussion, où chaque message est un mapping avec au moins une clé"content"et éventuellement une clé"role". - response_json_schema
dict[str, Any] | None: schéma JSON facultatif décrivant le format de réponse attendu. - **kwargs (N'importe lequel) : arguments de mot-clé propres au fournisseur transmis au back-end sous-jacent.
- invite
- Renvoie : sortie LLM normalisée.
- Type de retour : LlmResponse
méthode generate_async (abstrait, asynchrone)
Générer de manière asynchrone une réponse à partir d'un LLM.
- Paramètres:
- invite
str | Sequence[dict[str, str]]: invite en texte brut (traité en tant que message utilisateur unique) ou liste de messages de type discussion, où chaque message est une correspondance avec au moins une clé"content"et éventuellement une valeur"role". - response_json_schema
dict[str, Any] | None: schéma JSON facultatif décrivant le format de réponse attendu. - **kwargs (N'importe lequel) : arguments de mot-clé propres au fournisseur transmis au back-end sous-jacent.
- invite
- Renvoie : sortie LLM normalisée.
- Type de retour : LlmResponse
Réponses LLM
classe oracleagentmemory.apis.llms.LlmResponse
Bases : object
Petite réponse normalisée renvoyée par ILlm.
- Paramètres : text
str
Texte
Contenu de texte généré principal.
- Type : str
Interface Embedder
classe oracleagentmemory.apis.IEmbedder
Bases : ABC
Interface abstraite pour les intégrateurs de texte.
method embed (résumé)
Intégrez un lot de textes dans un tableau 2D float32 NumPy.
- Paramètres:
- textes
list[str]– Lot de textes à intégrer. - is_query
bool: indique si le batch est imbriqué pour l'extraction au moment de la requête.
- textes
- Retours : tableau 2D en forme de
(len(texts), dim)avecdtype=float32. - Type de retour : numpy.ndarray
méthode embed_async (abstrait, asynchrone)
Intégrez un lot de textes dans un tableau 2D float32 NumPy.
- Paramètres:
- textes
list[str]– Lot de textes à intégrer. - is_query
bool: indique si le batch est imbriqué pour l'extraction au moment de la requête.
- textes
- Retours : tableau 2D en forme de
(len(texts), dim)avecdtype=float32. - Type de retour : numpy.ndarray
Adaptateurs LiteLLM
classe oracleagentmemory.core.llms.Llm
Bases : ILlm
Adaptateur utilisant litellm pour produire des terminaisons de discussion.
Créez un adaptateur LLM soutenu par LiteLLM.
- Paramètres:
- model
str: identificateur de modèle transmis en tant quemodel=...àlitellm.completion. - **default_kwargs (Any) – Arguments de mot-clé par défaut transmis à LiteLLM pour chaque appel (par exemple,
temperature=0.2,max_tokens=256).
- model
méthode generate
Générer une réponse.
- Paramètres:
- prompt
str | Sequence[dict[str, str]]– Invite de chaîne ou de messages de discussion. Une chaîne est traitée comme un message utilisateur unique. - response_json_schema
dict[str, Any] | None: schéma JSON facultatif décrivant le format de réponse attendu. Lorsqu'elle est fournie, cette méthode utilise le mécanisme de sortie structurée natif du fournisseur viaresponse_formatcompatible avec OpenAI. - **kwargs (N'importe lequel) – Paramètres d'appel supplémentaires transmis à LiteLLM.
- prompt
- Renvoie : sortie LLM normalisée.
- Type de retour : LlmResponse
method generate_async (async)
Générer une réponse de manière asynchrone à l'aide de LiteLLM.
- Paramètres:
- prompt
str | Sequence[dict[str, str]]– Invite de chaîne ou de messages de discussion. Une chaîne est traitée comme un message utilisateur unique. - response_json_schema
dict[str, Any] | None: schéma JSON facultatif décrivant le format de réponse attendu. Lorsqu'elle est fournie, cette méthode utilise le mécanisme de sortie structurée natif du fournisseur viaresponse_formatcompatible avec OpenAI. - **kwargs (N'importe lequel) – Paramètres d'appel supplémentaires transmis à LiteLLM.
- prompt
- Renvoie : sortie LLM normalisée.
- Type de retour : LlmResponse
classe oracleagentmemory.core.embedders.Embedder
Bases : IEmbedder
Intégrateur soutenu par LiteLLM
- Paramètres:
- model
str: identificateur de modèle pris en charge par LiteLLM. - normalize
bool– Indique s'il faut normaliser les intégrations L2 renvoyées par LiteLLM. - api_base
str | None: URL de base facultative pour LiteLLM afin de cibler les déploiements personnalisés. - api_key
str | None: clé d'API facultative transmise à LiteLLM lorsque vous contactez le fournisseur. - embedding_kwargs
dict[str, Any] | None– Arguments de mot-clé supplémentaires transmis àlitellm.embedding(). - query_prefix
str | None
- model
Remarques
Le client LiteLLM est importé uniquement lorsque l'intégrateur est utilisé pour la première fois, ce qui permet de réduire les coûts de dépendance facultatifs pour les applications qui ne dépendent pas de LiteLLM. Les détails de connexion tels que api_base et api_key sont fusionnés dans l'appel vers litellm.embedding lorsqu'ils sont fournis.
méthode embed
Intégrez un lot de textes en utilisant LiteLLM.
- Paramètres:
- textes
list[str]– Lot de chaînes de texte brut à intégrer. - is_query
bool
- textes
- Renvoie:
- numpy.ndarray : matrice
float32bidimensionnelle avec les vecteurs d'intégration renvoyés par LiteLLM. - is_query – Que le texte soit une requête ou non, il peut être nécessaire pour des modèles d'intégration spécifiques.
- numpy.ndarray : matrice
- Elèves : RuntimeError – Si la charge utile de la réponse LiteLLM n'inclut pas les données d'intégration.
- Type de retour : ndarray
Exemples
Intégration simple de texte unique avec un incorporeur LiteLLM configuré :
vector = embedder.embed(["ping"])
vector.shape[0]
1
method embed_async (async)
Intégrez un lot de textes en utilisant LiteLLM.
- Paramètres:
- textes
list[str]– Lot de chaînes de texte brut à intégrer. - is_query
bool: si le texte est une requête ou non, il peut être nécessaire pour des modèles d'intégration spécifiques.
- textes
- Retours : matrice
float32bidimensionnelle avec les vecteurs d'intégration renvoyés par LiteLLM. - Type de retour : numpy.ndarray
- Elèves : RuntimeError – Si la charge utile de la réponse LiteLLM n'inclut pas les données d'intégration.