Sintaxis
newrelic.agent.set_llm_token_count_callback(callback, application=None)
Registra una función de devolución de llamada que se utilizará para calcular el recuento token en el evento de modelo de lenguaje extenso (LLM).
Requisitos
Agente Python versión 9.8.0 o superior.
Descripción
Esta API registra una devolución de llamada para calcular y almacenar recuentos token en los eventos LlmEmbedding
y LlmChatCompletionMessage
.
- Esta función debe usarse cuando
ai_monitoring.record_content.enabled
está configurado enfalse
. Esta configuración evita que el agente envíe contenido de IA al servidor New Relic , donde los recuentos token se adjuntan en el lado del servidor. - Si aún desea capturar los recuentos token para el evento LLM, puede implementar una devolución de llamada en el código de su aplicación para determinar los recuentos token localmente y enviar esta información a New Relic.
En la mayoría de los casos, esta API se llamará exactamente una vez, pero puede realizar varias llamadas a esta API. Cada nueva llamada realizada al extremo sobrescribe la devolución de llamada previamente registrada con la nueva que se proporciona. Para desarmar la devolución de llamada por completo, pase None
en lugar de la devolución de llamada original.
Parámetro API
Parámetro | Descripción |
---|---|
invocable o Ninguno | Requerido. La devolución de llamada para calcular el recuento token . Para desarmar la devolución de llamada actual, pase |
objeto | Opcional. El objeto de aplicación específico con el que asociar la llamada API. Se puede obtener un objeto de aplicación utilizando la función |
Valores de retorno
Ninguno.
Requisitos de devolución de llamada
La devolución de llamada proporcionada debe devolver un valor de recuento token entero positivo o no se capturará ningún recuento token en el evento LLM.
Parámetro de devolución de llamada
Parámetro | Descripción |
---|---|
cadena | Requerido. El nombre del modelo LLM. |
cadena | Requerido. El contenido del mensaje/símbolo o entrada incrustada. |
Ejemplos
Calcular el recuento token y registrar la devolución de llamada
Ejemplo con tiktoken:
import newrelic.agentdef token_count_callback(model, content): """ Calculate token counts locally based on the model being used and the content. This callback will be invoked for each message sent or received during a LLM call. If the application supports more than one model, it may require finding libraries for each model to support token counts appropriately.
Arguments: model -- name of the LLM model content -- the LLM message content """ import tiktoken
try: enc = tiktoken.encoding_for_model(model) except KeyError: return None # Unknown model return len(enc.encode(content))
newrelic.agent.set_llm_token_count_callback(token_count_callback)
Ejemplo de uso de API con un objeto de aplicación pasado:
application = newrelic.agent.register_application(timeout=10.0) newrelic.agent.set_llm_token_count_callback(token_count_callback, application)