Module Generation.Stats

Stats for a single generation. Many fields are nullable on the wire; we keep them as options rather than papering over with defaults.

type t = {
  1. id : string;
  2. model : string;
  3. provider_name : string option;
  4. created_at : string;
  5. api_type : string option;
  6. origin : string option;
  7. user_agent : string option;
  8. http_referer : string option;
  9. session_id : string option;
  10. preset_id : string option;
  11. request_id : string option;
  12. upstream_id : string option;
  13. app_id : Jsonaf.t option;
  14. external_user : Jsonaf.t option;
  15. router : Jsonaf.t option;
  16. streamed : bool option;
  17. cancelled : bool option;
  18. is_byok : bool option;
  19. finish_reason : string option;
  20. native_finish_reason : string option;
  21. service_tier : string option;
  22. data_region : string option;
  23. latency : int option;
  24. moderation_latency : int option;
  25. generation_time : int option;
  26. tokens_prompt : int option;
  27. tokens_completion : int option;
  28. native_tokens_prompt : int option;
  29. native_tokens_completion : int option;
  30. native_tokens_completion_images : int option;
  31. native_tokens_reasoning : int option;
  32. native_tokens_cached : int option;
  33. num_media_prompt : int option;
  34. num_input_audio_prompt : int option;
  35. num_media_completion : int option;
  36. num_search_results : int option;
  37. num_fetches : int option;
  38. web_search_engine : string option;
  39. usage : float option;
  40. total_cost : float option;
  41. upstream_inference_cost : float option;
  42. cache_discount : float option;
  43. response_cache_source_id : string option;
  44. provider_responses : Provider_response.t list;
}
module Fields : sig ... end
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t