Depois de instrumentar seu aplicativo com AI Monitoring, você pode acessar alguma API para coletar contagem token e feedback do usuário. Para utilizar a AI Monitoring API, verifique se seu agente Java está atualizado para a versão 8.12.0 ou superior.
Este documento fornece procedimentos para atualizar seu código para acessar a contagem token e APIde feedback do usuário.
Registrar contagem token
Se você desativou o agente com ai_monitoring.record_content.enabled=false
, poderá usar a API setLlmTokenCountCallback(LlmTokenCountCallback llmTokenCountCallback)
para calcular o atributo de contagem token . Isso calcula contagens token para eventos relacionados aos processos de incorporação e conclusão do LLM sem registrar o próprio conteúdo da mensagem. Se você quiser coletar contagens token , siga estas etapas:
Implemente
LlmTokenCountCallback
para que ele substitua o métodocalculateLlmTokenCount(String model, String content)
. Isso calcula uma contagem token com base em um determinado nome de modelo LLM e no conteúdo ou prompt da mensagem 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;}}Crie uma instância da implementação
LlmTokenCountCallback
para registrar o retorno de chamada e depois transmita-o para a APIsetLlmTokenCountCallback
. Por exemplo:LlmTokenCountCallback myTokenCountCallback = new MyTokenCountCallback();// The callback needs to be registered at some point before invoking the LLM modelNewRelic.getAgent().getAiMonitoring.setLlmTokenCountCallback(myTokenCountCallback);
Para usar o retorno de chamada, implemente LlmTokenCountCallback
para que ele retorne um número inteiro que represente o número de token para um determinado prompt, mensagem de conclusão ou incorporação. Se os valores forem menores ou iguais a 0
, LlmTokenCountCallbacks
não será anexado a um evento. Lembre-se de que você só deve chamar essa API uma vez. Chamar esta API várias vezes substituirá cada retorno de chamada anterior.
Registrar feedback do usuário
AI Monitoring pode correlacionar IDs trace entre uma mensagem gerada de seus modelos LLM e o feedback final de um usuário. A API recordLlmFeedbackEvent
cria um argumento com um mapa da classe LlmFeedbackEventAttributes.Builder
. Se você deseja registrar o feedback do usuário, siga estas etapas:
Use a
TraceMetadata.getTraceId()
API para adquirir o trace ID para transação à medida que eles são executados:String traceId = NewRelic.getAgent().getTraceMetadata().getTraceId();Adicione
recordLlmFeedbackEvent(Map<String, Object> llmFeedbackEventAttributes)
para correlacionar o ID do trace com um evento de feedback. Aqui está um exemplo de como você pode registrar um evento de feedback do 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);
Se o feedback do usuário registrar um encadeamento diferente ou um serviço diferente de onde ocorreu o prompt ou a resposta do LLM, será necessário adquirir o ID trace do encadeamento ou serviço de origem. Depois de adquirir o ID trace , propague-o para onde o evento de feedback do usuário será registrado.
Para visualizar o parâmetro que a LlmFeedbackEventAttributes.Builder
classe utiliza, revise os detalhes do método em nosso AI Monitoring API documento.
Adicionar atributo LLM personalizado
Você pode ajustar seu agente para coletar atributos personalizados do LLM:
- Qualquer atributo personalizado adicionado com a
NewRelic.addCustomParameter(...)
API pode ser prefixado comllm.
. Isso copia automaticamente esses atributos paraLlmEvent
s - Se você estiver adicionando atributo personalizado a
LlmEvent
s com a APIaddCustomParameters
, certifique-se de que a chamada da API ocorra antes de invocar o Bedrock SDK. - Um atributo personalizado opcional com significado especial é
llm.conversation_id
. Você pode usar isso para agrupar mensagens LLM em conversas específicas no APM.