Chatoyant_provider.OpenrouterSourceOpenRouter provider.
OpenRouter is OpenAI-compatible at the transport layer but has its own routing, attribution headers, model naming, and credit-cost semantics.
type provider_info = {provider_id : string option;provider_name : string option;provider_raw : Chatoyant_runtime.Json.t;}type generation = {generation_id : string option;generation_model : string option;generation_provider_name : string option;generation_total_cost : float option;generation_created_at : string option;generation_raw : Chatoyant_runtime.Json.t;}type model_endpoint = {model_endpoint_name : string option;model_endpoint_provider_name : string option;model_endpoint_context_length : int option;model_endpoint_max_completion_tokens : int option;model_endpoint_quantization : string option;model_endpoint_status : string option;model_endpoint_supported_parameters : string list;model_endpoint_pricing : Chatoyant_runtime.Json.t option;model_endpoint_raw : Chatoyant_runtime.Json.t;}type model_endpoint_list = {model_endpoint_model_id : string option;model_endpoint_model_name : string option;model_endpoint_model_description : string option;model_endpoint_model_created : int option;model_endpoint_model_architecture : Chatoyant_runtime.Json.t option;model_endpoints : model_endpoint list;model_endpoint_list_raw : Chatoyant_runtime.Json.t;}type rerank_request = {rerank_model : string;rerank_query : string;rerank_documents : rerank_document list;rerank_top_n : int option;rerank_provider : Chatoyant_runtime.Json.t option;rerank_extra : (string * Chatoyant_runtime.Json.t) list;}type rerank_result = {rerank_index : int option;rerank_relevance_score : float option;rerank_document : Chatoyant_runtime.Json.t option;rerank_result_raw : Chatoyant_runtime.Json.t;}type rerank_response = {rerank_id : string option;rerank_model_name : string option;rerank_provider_name : string option;rerank_results : rerank_result list;rerank_usage : Chatoyant_runtime.Json.t option;rerank_raw : Chatoyant_runtime.Json.t;}type video_request = {video_model : string;video_prompt : string;video_aspect_ratio : string option;video_callback_url : string option;video_duration : int option;video_frame_images : Chatoyant_runtime.Json.t list;video_generate_audio : bool option;video_input_references : Chatoyant_runtime.Json.t list;video_provider : Chatoyant_runtime.Json.t option;video_resolution : string option;video_seed : int option;video_size : string option;video_extra : (string * Chatoyant_runtime.Json.t) list;}type video_job = {video_job_id : string option;video_polling_url : string option;video_status : video_status;video_error : string option;video_generation_id : string option;video_unsigned_urls : string list;video_usage : Chatoyant_runtime.Json.t option;video_raw : Chatoyant_runtime.Json.t;}type video_model = {video_model_id : string option;video_model_name : string option;video_model_canonical_slug : string option;video_model_created : int option;video_model_raw : Chatoyant_runtime.Json.t;}type video_model_list = {video_models : video_model list;video_models_raw : Chatoyant_runtime.Json.t;}type management_resource = {management_id : string option;management_name : string option;management_raw : Chatoyant_runtime.Json.t;}type management_list = {management_data : management_resource list;management_raw : Chatoyant_runtime.Json.t;}type management_delete = {management_delete_id : string option;management_deleted : bool;management_delete_raw : Chatoyant_runtime.Json.t;}val authorization_headers :
?http_referer:string ->
?title:string ->
api_key:string ->
unit ->
(string * string) listmodule Make_provider
(Http : Chatoyant_runtime.Effect.HTTP)
(Config : sig ... end) :
Provider.CHAT