Lorsque vous avez instrumenté votre application avec monitoring de l'IA, vous pouvez accéder à certaines API pour collecter le nombre de jetons et les commentaires des utilisateurs. Pour utiliser monitoring l'de l'IA,API vérifiez que votre agent Java est mis à jour vers la version 8.12.0 ou supérieure.
Ce document fournit des procédures de mise à jour de votre code pour accéder à l' API de comptage de jetons et de commentaires des utilisateurs.
Nombre record de jetons
Si vous avez désactivé l'agent avec ai_monitoring.record_content.enabled=false
, vous pouvez utiliser l'API setLlmTokenCountCallback(LlmTokenCountCallback llmTokenCountCallback)
pour calculer l'attribut de nombre de jetons. Cela calcule le nombre de jetons pour les événements liés aux processus d'incorporation (intégration) et d'achèvement de LLM sans enregistrer le contenu des messages eux-mêmes. Si vous souhaitez collecter des jetons, suivez ces étapes :
Implémentez le
LlmTokenCountCallback
afin qu'il remplace la méthodecalculateLlmTokenCount(String model, String content)
. Cela calcule un nombre de jetons en fonction d'un nom de modèle LLM donné et du contenu ou prompt du message LLM :class MyTokenCountCallback implements LlmTokenCountCallback {@Overridepublic int calculateLlmTokenCount(String model, String content) {// Implement custom token calculating logic here based on the LLM model and content.// Return an integer representing the calculated token count.return 0;}}Créez une instance de l'implémentation
LlmTokenCountCallback
pour enregistrer le rappel, puis transmettez-la à l'APIsetLlmTokenCountCallback
. Par exemple:LlmTokenCountCallback myTokenCountCallback = new MyTokenCountCallback();// The callback needs to be registered at some point before invoking the LLM modelNewRelic.getAgent().getAiMonitoring.setLlmTokenCountCallback(myTokenCountCallback);
Pour utiliser le rappel, implémentez LlmTokenCountCallback
afin qu'il renvoie un entier qui représente le nombre de jetons pour une prompt, un message d'achèvement ou une incorporation (incorporation) particulier. Si les valeurs sont inférieures ou égales à 0
, LlmTokenCountCallbacks
ne sera pas attaché à un événement. Gardez à l’esprit que vous ne devez appeler cette API qu’une seule fois. L'appel de cette API plusieurs fois remplacera chaque rappel précédent.
Enregistrer les commentaires des utilisateurs
monitoring de l'IA permet de corréler les identifiants trace entre un message généré à partir de vos modèles LLM et le retour final d'un utilisateur. L'API recordLlmFeedbackEvent
crée un argument avec une carte de la classe LlmFeedbackEventAttributes.Builder
. Si vous souhaitez enregistrer les commentaires des utilisateurs, suivez ces étapes :
Utilisez l'API
TraceMetadata.getTraceId()
pour acquérir l'ID de trace des transactions au fur et à mesure de leur exécution :String traceId = NewRelic.getAgent().getTraceMetadata().getTraceId();Ajoutez le
recordLlmFeedbackEvent(Map<String, Object> llmFeedbackEventAttributes)
pour corréler l’ID de trace avec un événement de rétroaction. Voici un exemple de la manière dont vous pourriez enregistrer un événement de rétroaction LLM :String traceId = ... // acquired directly from New Relic API or retrieved from some propagation mechanismMap<String, String> metadata = new HashMap<>();metadata.put("interestingKey", "interestingVal");LlmFeedbackEventAttributes.Builder llmFeedbackEvenAttrBuilder = new LlmFeedbackEventAttributes.Builder(traceId, ratingString);Map<String, Object> llmFeedbackEventAttributes = llmFeedbackEvenAttrBuilder.category("General").message("Ok").metadata(metadata).build();NewRelic.getAgent().getAiMonitoring().recordLlmFeedbackEvent(llmFeedbackEventAttributes);
Si les commentaires de l'utilisateur enregistrent un thread différent ou un service différent de celui où le prompt ou la réponse LLM s'est produite, vous devez acquérir l'ID trace à partir du thread ou du service d'origine. Une fois que vous avez acquis l'ID de trace, propagez-le à l'endroit où l'événement de commentaires de l'utilisateur sera enregistré.
Pour afficher le paramètre pris par la classe LlmFeedbackEventAttributes.Builder
, consultez les détails de la méthode dans notre documentation monitoring de l'API IA.
Ajouter un attribut LLM personnalisé
Vous pouvez ajuster votre agent pour collecter des attributs LLM personnalisés :
- Tout attribut personnalisé ajouté avec l'
NewRelic.addCustomParameter(...)
API peut être préfixé parllm.
. Cela copie automatiquement ces attributs dansLlmEvent
. - Si vous ajoutez un attribut personnalisé à
LlmEvent
avec l'APIaddCustomParameters
, assurez-vous que l'appel de l'API se produit avant d'appeler le SDK Bedrock. - Un attribut personnalisé facultatif avec une signification particulière est
llm.conversation_id
. Vous pouvez l'utiliser pour regrouper les messages LLM dans des conversations spécifiques dans APM.