Module Completions.Request

module Message : sig ... end
module Reasoning : sig ... end
module Verbosity : sig ... end
module Stream_options : sig ... end
module Audio : sig ... end
module Debug : sig ... end
module Image_config : sig ... end
module Metadata : sig ... end
module Trace : sig ... end
module Cache_control : sig ... end
module Provider : sig ... end
module Logit_bias : sig ... end
module Response_format : sig ... end

Response format for structured outputs. See https://openrouter.ai/docs/features/structured-outputs

type 'tag t

Abstract request body, phantom-tagged by streaming kind.

val jsonaf_of_t : ('tag -> Ppx_jsonaf_conv_lib.Jsonaf_kernel.t) -> 'tag t -> Ppx_jsonaf_conv_lib.Jsonaf_kernel.t
include Sexplib0.Sexpable.S1 with type 'tag t := 'tag t
val t_of_sexp : (Sexplib0__.Sexp.t -> 'a) -> Sexplib0__.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib0__.Sexp.t) -> 'a t -> Sexplib0__.Sexp.t
module Non_streaming : sig ... end
module Streaming : sig ... end
type 'tag create := ?cache_control:Cache_control.t -> ?reasoning:Reasoning.t -> ?tools:Tool.t list -> ?tool_choice:Tool_choice.t -> ?parallel_tool_calls:bool -> ?plugins:Plugin.t list -> ?metadata:Metadata.t -> ?user:string -> ?session_id:string -> ?route:string -> ?trace:Trace.t -> ?temperature:float -> ?top_p:float -> ?top_k:int -> ?min_p:float -> ?top_a:float -> ?max_tokens:int -> ?max_completion_tokens:int -> ?seed:int -> ?stop:string list -> ?frequency_penalty:float -> ?presence_penalty:float -> ?repetition_penalty:float -> ?logit_bias:Logit_bias.t -> ?logprobs:bool -> ?top_logprobs:int -> ?verbosity:Verbosity.t -> ?response_format:Response_format.t -> ?structured_outputs:bool -> ?modalities:string list -> ?image_config:Image_config.t -> ?service_tier:string -> ?models:string list -> ?transforms:string list -> ?provider:Provider.t -> model:string -> messages:Message.t list -> unit -> 'tag t
val create : [ `Non_streaming ] create
val create_streaming : ?debug:Debug.t -> ?audio:Audio.t -> ?stream_options:Stream_options.t -> [ `Streaming ] create