MCPcopy Create free account
hub / github.com/coder/coder / handleMessagesResponse

Method handleMessagesResponse

scaletest/bridge/run.go:358–393  ·  view source on GitHub ↗
(ctx context.Context, logger slog.Logger, resp *http.Response)

Source from the content-addressed store, hash-verified

356}
357
358func (r *Runner) handleMessagesResponse(ctx context.Context, logger slog.Logger, resp *http.Response) error {
359 var response struct {
360 ID string `json:"id"`
361 Model string `json:"model"`
362 Content []struct {
363 Type string `json:"type"`
364 Text string `json:"text"`
365 } `json:"content"`
366 Usage struct {
367 InputTokens int `json:"input_tokens"`
368 OutputTokens int `json:"output_tokens"`
369 } `json:"usage"`
370 }
371
372 if err := json.NewDecoder(resp.Body).Decode(&response); err != nil {
373 return xerrors.Errorf("decode response: %w", err)
374 }
375
376 var assistantContent string
377 if len(response.Content) > 0 {
378 assistantContent = response.Content[0].Text
379 logger.Debug(ctx, "received response",
380 slog.F("response_id", response.ID),
381 slog.F("content_length", len(assistantContent)),
382 )
383 }
384
385 totalTokens := response.Usage.InputTokens + response.Usage.OutputTokens
386 if totalTokens > 0 {
387 r.totalTokens += int64(totalTokens)
388 r.cfg.Metrics.AddTokens("input", int64(response.Usage.InputTokens))
389 r.cfg.Metrics.AddTokens("output", int64(response.Usage.OutputTokens))
390 }
391
392 return nil
393}
394
395func (*Runner) handleStreamingResponse(ctx context.Context, logger slog.Logger, resp *http.Response) error {
396 buf := make([]byte, 4096)

Callers 1

Calls 2

AddTokensMethod · 0.80
ErrorfMethod · 0.45

Tested by

no test coverage detected