(ctx context.Context, metrics *uctypes.AIMetrics)
| 591 | } |
| 592 | |
| 593 | func sendAIMetricsTelemetry(ctx context.Context, metrics *uctypes.AIMetrics) { |
| 594 | event := telemetrydata.MakeTEvent("waveai:post", telemetrydata.TEventProps{ |
| 595 | WaveAIAPIType: metrics.Usage.APIType, |
| 596 | WaveAIModel: metrics.Usage.Model, |
| 597 | WaveAIChatId: metrics.ChatId, |
| 598 | WaveAIStepNum: metrics.StepNum, |
| 599 | WaveAIInputTokens: metrics.Usage.InputTokens, |
| 600 | WaveAIOutputTokens: metrics.Usage.OutputTokens, |
| 601 | WaveAINativeWebSearchCount: metrics.Usage.NativeWebSearchCount, |
| 602 | WaveAIRequestCount: metrics.RequestCount, |
| 603 | WaveAIToolUseCount: metrics.ToolUseCount, |
| 604 | WaveAIToolUseErrorCount: metrics.ToolUseErrorCount, |
| 605 | WaveAIToolDetail: metrics.ToolDetail, |
| 606 | WaveAIPremiumReq: metrics.PremiumReqCount, |
| 607 | WaveAIProxyReq: metrics.ProxyReqCount, |
| 608 | WaveAIHadError: metrics.HadError, |
| 609 | WaveAIImageCount: metrics.ImageCount, |
| 610 | WaveAIPDFCount: metrics.PDFCount, |
| 611 | WaveAITextDocCount: metrics.TextDocCount, |
| 612 | WaveAITextLen: metrics.TextLen, |
| 613 | WaveAIFirstByteMs: metrics.FirstByteLatency, |
| 614 | WaveAIRequestDurMs: metrics.RequestDuration, |
| 615 | WaveAIWidgetAccess: metrics.WidgetAccess, |
| 616 | WaveAIThinkingLevel: metrics.ThinkingLevel, |
| 617 | WaveAIMode: metrics.AIMode, |
| 618 | WaveAIProvider: metrics.AIProvider, |
| 619 | WaveAIIsLocal: metrics.IsLocal, |
| 620 | }) |
| 621 | _ = telemetry.RecordTEvent(ctx, event) |
| 622 | } |
| 623 | |
| 624 | // PostMessageRequest represents the request body for posting a message |
| 625 | type PostMessageRequest struct { |
no test coverage detected