From e3d022672321e4dd4940406113dca0dfab52faec Mon Sep 17 00:00:00 2001 From: Ben Dyer Date: Wed, 17 Jul 2024 21:29:57 -0700 Subject: [PATCH] [fix] strip auth params from multipart/form-data post request --- lib/ex_openai/client.ex | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/ex_openai/client.ex b/lib/ex_openai/client.ex index 07b7325..a92aa14 100644 --- a/lib/ex_openai/client.ex +++ b/lib/ex_openai/client.ex @@ -104,14 +104,17 @@ defmodule ExOpenAI.Client do |> convert_response.() end + defp strip_params(params) do + params + # remove stream_to from params as PID messes with Jason + |> Map.drop([:stream_to, :openai_organization_key, :openai_api_key]) + end + def api_post(url, params \\ [], request_options \\ [], convert_response) do body = params |> Enum.into(%{}) - # remove stream_to from params as PID messes with Jason - |> Map.delete(:stream_to) - |> Map.delete(:openai_organization_key) - |> Map.delete(:openai_api_key) + |> strip_params() |> Jason.encode() |> elem(1) @@ -189,6 +192,9 @@ defmodule ExOpenAI.Client do multipart_body = {:multipart, params + |> Enum.into(%{}) + |> strip_params() + |> Map.to_list() |> Enum.map(&multipart_param/1)} headers =