• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

monitoring de l'APIIA

Lorsque vous avez instrumenté votre application pour monitoring de l'IA, l'agent Ruby New Relic collecte automatiquement de nombreuses métriques d'IA, mais fournit également des API pour collecter des informations sur le nombre de jetons et les commentaires des utilisateurs.

Conseil

Monitoring des API IA est disponible dans l'agent Ruby version 9.8.0 et supérieure.

nombre de jetons

Vous pouvez définir une procédure de rappel pour calculer l'attribut token_count pour l'événement LlmEmbedding et LlmChatCompletionMessage, puis transmettre ces informations à New Relic à l'aide de l'API NewRelic::Agent.set_llm_token_count_callback .

Cette API ne doit être appelée qu'une seule fois pour définir un rappel à utiliser avec tous les calculs de jetons LLM. S'il est appelé plusieurs fois, chaque nouveau rappel remplacera l'ancien. Le processus sera appelé avec un seul hacher comme argument d'entrée et doit renvoyer un entier représentant le nombre de jetons utilisés pour cette prompt, ce message d'achèvement ou cette incorporation (incorporation) particuliers. Les valeurs inférieures ou égales à 0 ne seront pas attachées à un événement.

Le hacher possède les touches suivantes :

  • :model (Chaîne) - Le nom du modèle LLM
  • :content (Chaîne) - Le contenu du message ou prompt

L'exemple de code suivant montre comment définir un rappel qui calcule le nombre de jetons et transmettre ce rappel à NewRelic::Agent.set_llm_token_count_callback.

require 'tiktoken_ruby' # Example library for counting GPT model tokens used
token_count_callback = proc do |hash|
return unless hash[:model].includes?('gpt')
enc = Tiktoken.encoding_for_model(hash[:model])
enc.encode(hash[:content]).length
end
NewRelic::Agent.set_llm_token_count_callback(token_count_callback)

Commentaires des utilisateurs

monitoring de l'IA peut corréler les identifiants trace entre un message généré par votre IA et le message de retour d'un utilisateur final en utilisant NewRelic::Agent.record_llm_feedback_event.

NewRelic::Agent.record_llm_feedback_event accepte les arguments suivants :

  • trace_id (obligatoire) - ID de la trace où les complétions de chat liées au commentaire se sont produites
  • rating (obligatoire) - Évaluation fournie par un utilisateur final (ex : « Bon », « Mauvais », 1, 2, 5, 8, 10)
  • category (facultatif) - Catégorie du commentaire tel que fourni par l'utilisateur final (ex : « informatif », « inexact »)
  • message (facultatif) - Commentaires sous forme de texte libre d'un utilisateur final
  • metadata (facultatif) - Ensemble de paires valeur-clé pour stocker toute autre donnée souhaitée à soumettre avec l'événement de rétroaction

Cette API nécessite le trace_id actuel pour corréler les messages avec les commentaires, qui peuvent être obtenus à l'aide de NewRelic::Agent::traceur.current_trace_id.

L'exemple de code suivant utilise une application Sinatra pour démontrer la collecte des commentaires utilisateur requis et la trace d'une transaction en cours (avec les paramètres facultatifs de cette API), puis la transmission de ces paramètres à NewRelic::Agent.record_llm_feedback_event.

responses = {}
get '/chat-completion' do
@response_message = client.chat(
parameters: {
model: 'gpt-3.5-turbo',
messages: [
{'role': 'system', 'content': 'You are a helpful assistant.'},
],
temperature: 0.7,
}
)
# trace_id must be obtained within the current transaction
trace_id = NewRelic::Agent::Tracer.current_trace_id
responses[@response_message.id] = trace_id
render(@response_message)
end
post '/feedback' do
trace_id = responses[@response_message.id]
rating = 1
category = 'feedback-test'
message = 'Good talk'
metadata = {user: 'new'}
halt(404) if !responses[@response_message.id]
NewRelic::Agent.record_llm_feedback_event(
trace_id: responses[@response_message.id],
rating: 1,
category: 'feedback-test',
message: 'Good talk',
metadata: {user: 'new'}
)
render('Feedback Recorded')
end
Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.