请求事件发送
2025年10月13日大约 1 分钟
请求事件发送
我们AIAB系统中目前有三种事件,一种是用户请求事件,用来收集如请求响应时间、消耗token数等指标;另一种是用户评价事件,用来收集用户在使用过程中的用户反馈;同时,我们也支持埋点事件,用于收集一些埋点数据。下面介绍用户请求事件。
用户请求事件
用户请求事件是我们AIAB系统中默认的事件,用于收集用户在使用过程中发起请求的各项参数指标,为后续评估做参考。此事件在每次调用请求时会默认发送
以下是用户请求事件的相关代码:
public ResponseEntity<String> chatCompletion(ChatCompletionRequest request,
                                                 String flagKey,
                                                 String sdkKey,
                                                 String userId) {
    ......
    //记录开始时间
    long startTime = System.currentTimeMillis();
    //调用真实大模型API获取响应
    ......
    //计算响应时间
    long responseTime = System.currentTimeMillis() - startTime;
    //获取对应大模型token单价
    Map<String, Object> price = (Map<String, Object>) configStore.get(name).get("price");
    Double outputPrice = (Double) price.get("completion_tokens_cost");
    Double inputPrice = (Double) price.get("prompt_tokens_cost");
    //计算一次请求所需成本和消耗token数
    Map<String, Object> responseMessages = calculateTotalCost(response, inputPrice, outputPrice);
    //创建指标
    HashMap<String, Object> eventTags = new HashMap<>();
    eventTags.put("latency", responseTime);
    //获取请求成本
    eventTags.put("cost", responseMessages.get("cost"));
    //获取请求消耗的token数
    eventTags.put("token_usage", responseMessages.get("total_tokens"));
    Eyeofcloud eyeofcloud = proxyDecisionService.getInstance(sdkKey);
    EyeofcloudUserContext userContext = eyeofcloud.createUserContext(userId);
    //发送事件
    userContext.trackEvent("prompt_completion", eventTags);
    return response;
}注意:AIAB系统请求事件key固定为prompt_completion