LLM e integraciones
Esta página presenta las interfaces abstractas utilizadas para conectar LLM y embebedores a la memoria del agente de Oracle.
Interfaz de LLM
clase oracleagentmemory.apis.llms.ILlm
Bases: ABC
Interfaz abstracta para la llamada de LLM.
method generate (resumen)
Generar una respuesta de un LLM de forma síncrona.
- Parámetros:
- prompt
str | Sequence[dict[str, str]]: una petición de datos de texto sin formato (tratada como un único mensaje de usuario) o una lista de mensajes de estilo de chat, donde cada mensaje es una asignación con al menos una clave"content"y, opcionalmente, un"role". - response_json_schema
dict[str, Any] | None: esquema JSON opcional que describe el formato de respuesta esperado. - **kwargs (Cualquiera): argumentos de palabra clave específicos del proveedor reenviados al backend subyacente.
- prompt
- Devoluciones: salida del LLM normalizada.
- Tipos de retorno: LlmResponse
method generate_async (abstract, async)
Generar una respuesta de forma asíncrona desde un LLM.
- Parámetros:
- prompt
str | Sequence[dict[str, str]]: una petición de datos de texto sin formato (tratada como un único mensaje de usuario) o una lista de mensajes de estilo de chat, donde cada mensaje es una asignación con al menos una clave"content"y, opcionalmente, un"role". - response_json_schema
dict[str, Any] | None: esquema JSON opcional que describe el formato de respuesta esperado. - **kwargs (Cualquiera): argumentos de palabra clave específicos del proveedor reenviados al backend subyacente.
- prompt
- Devoluciones: salida del LLM normalizada.
- Tipo de retorno: LlmResponse
Respuestas de LLM
clase oracleagentmemory.apis.llms.LlmResponse
Bases: object
Una pequeña respuesta normalizada devuelta por ILlm.
- Parámetros: text
str
texto
Contenido de texto generado principal.
- Tipo: str
Interfaz de incrustación
clase oracleagentmemory.apis.IEmbedder
Bases: ABC
Interfaz abstracta para incrustadores de texto.
method embed (resumen)
Embeber un lote de textos en una matriz 2D float32 NumPy.
- Parámetros:
- textos
list[str]: lote de textos que se incrustarán. - is_query
bool: indica si el lote se está embebiendo para la recuperación de tiempo de consulta.
- textos
- Devoluciones: matriz 2D con forma de
(len(texts), dim)condtype=float32. - Tipo de retorno: numpy.ndarray
method embed_async (abstract, async)
Embeber un lote de textos en una matriz 2D float32 NumPy.
- Parámetros:
- textos
list[str]: lote de textos que se incrustarán. - is_query
bool: indica si el lote se está embebiendo para la recuperación de tiempo de consulta.
- textos
- Devoluciones: matriz 2D con forma de
(len(texts), dim)condtype=float32. - Tipo de retorno: numpy.ndarray
Adaptadores LiteLLM
clase oracleagentmemory.core.llms.Llm
Bases: ILlm
Adaptador que aprovecha litellm para producir finalizaciones de chat.
Cree un adaptador de LLM respaldado por LiteLLM.
- Parámetros:
- model
str: identificador de modelo transferido comomodel=...alitellm.completion. - **default_kwargs (Cualquiera): argumentos de palabra clave predeterminados reenviados a LiteLLM para cada llamada (por ejemplo,
temperature=0.2,max_tokens=256).
- model
método generate
Generación de una respuesta.
- Parámetros:
- prompt
str | Sequence[dict[str, str]]: cadena de petición de datos o mensajes de chat. Una cadena se trata como un mensaje de usuario único. - response_json_schema
dict[str, Any] | None: esquema JSON opcional que describe el formato de respuesta esperado. Cuando se proporciona, este método utiliza el mecanismo de salida estructurado nativo del proveedor a través deresponse_formatcompatible con OpenAI. - **kwargs (Cualquiera): parámetros de llamada adicionales reenviados a LiteLLM.
- prompt
- Devoluciones: salida del LLM normalizada.
- Tipos de retorno: LlmResponse
method generate_async (async)
Generar una respuesta de forma asíncrona mediante LiteLLM.
- Parámetros:
- prompt
str | Sequence[dict[str, str]]: cadena de petición de datos o mensajes de chat. Una cadena se trata como un mensaje de usuario único. - response_json_schema
dict[str, Any] | None: esquema JSON opcional que describe el formato de respuesta esperado. Cuando se proporciona, este método utiliza el mecanismo de salida estructurado nativo del proveedor a través deresponse_formatcompatible con OpenAI. - **kwargs (Cualquiera): parámetros de llamada adicionales reenviados a LiteLLM.
- prompt
- Devoluciones: salida del LLM normalizada.
- Tipo de retorno: LlmResponse
clase oracleagentmemory.core.embedders.Embedder
Bases: IEmbedder
Embebedor respaldado por LiteLLM
- Parámetros:
- model
str: identificador de modelo admitido por LiteLLM. - normalize
bool: indica si LiteLLM debe normalizar las incrustaciones devueltas por L2. - api_base
str | None: URL base opcional para que LiteLLM se dirija a despliegues personalizados. - api_key
str | None: clave de API opcional reenviada a LiteLLM al ponerse en contacto con el proveedor. - embedding_kwargs
dict[str, Any] | None: argumentos de palabra clave adicionales reenviados alitellm.embedding(). - prefijo_consulta
str | None
- model
Notas
El cliente LiteLLM solo se importa cuando se utiliza por primera vez el incrustador, manteniendo bajos los costos de dependencia opcionales para las aplicaciones que no dependen de LiteLLM. Los detalles de conexión, como api_base y api_key, se fusionan en la llamada a litellm.embedding cuando se proporciona.
método embed
Incruste un lote de textos con LiteLLM.
- Parámetros:
- textos
list[str]: lote de cadenas de texto sin formato que se incrustarán. - es_consulta
bool
- textos
- Devuelve:
- numpy.ndarray: matriz
float32bidimensional con los vectores de incrustación devueltos por LiteLLM. - is_query: tanto si el texto es una consulta como si no, puede ser necesario para modelos de incrustación específicos.
- numpy.ndarray: matriz
- Incidencias: RuntimeError: si la carga útil de respuesta de LiteLLM no incluye datos de embebido.
- Tipo de retorno: ndarray
Ejemplos
Embebido de texto único simple con un embebido LiteLLM configurado:
vector = embedder.embed(["ping"])
vector.shape[0]
1
method embed_async (async)
Incruste un lote de textos con LiteLLM.
- Parámetros:
- textos
list[str]: lote de cadenas de texto sin formato que se incrustarán. - is_query
bool: tanto si el texto es una consulta como si no, puede ser necesario para modelos de incrustación específicos.
- textos
- Devoluciones: matriz
float32bidimensional con los vectores de incrustación devueltos por LiteLLM. - Tipo de retorno: numpy.ndarray
- Incidencias: RuntimeError: si la carga útil de respuesta de LiteLLM no incluye datos de embebido.