diff --git a/Cargo.toml b/Cargo.toml index bef1ef6..ae2905d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,9 @@ default = ["default-tls"] rustls = ["reqwest/rustls-tls", "tokio-tungstenite/rustls-tls-webpki-roots"] default-tls = ["reqwest/default-tls", "tokio-tungstenite/native-tls"] +[dependencies] +tracing = "0.1.41" + [dependencies.reqwest] version = "0.12" default-features = false diff --git a/src/v1/api.rs b/src/v1/api.rs index c53f989..228e741 100644 --- a/src/v1/api.rs +++ b/src/v1/api.rs @@ -62,6 +62,7 @@ pub struct OpenAIClientBuilder { headers: Option, } +#[derive(Debug)] pub struct OpenAIClient { api_endpoint: String, api_key: String, @@ -179,9 +180,20 @@ impl OpenAIClient { path: &str, body: &impl serde::ser::Serialize, ) -> Result { - let request = self.build_request(Method::POST, path).await; - let request = request.json(body); - let response = request.send().await?; + let request_builder = self.build_request(Method::POST, path).await; + let request_builder = request_builder.json(body); + + // 💡 Convert to request to inspect it before sending + let client = request_builder + .try_clone() + .expect("Cannot clone request builder") + .build() + .expect("Failed to build request"); + + // 🔍 Debug log: URL, headers, and optionally body + tracing::debug!("🔵 URL: {}", client.url()); + tracing::debug!("🟢 Headers:\n{:#?}", client.headers()); + let response = request_builder.send().await?; self.handle_response(response).await }