You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been trying to stream an upload from GCP Cloud Storage to OpenAi using Tesla and I'm running into issues that I think has to do with Tesla. The code looks similar to this:
def get_stream(bucket, object) do
{:ok, token} = Goth.Token.for_scope("https://www.googleapis.com/auth/cloud-platform")
Tesla.client(
[{Tesla.Middleware.Headers, [{"authorization", "Bearer #{token.token}"}]}],
{Tesla.Adapter.Mint, [body_as: :stream]}
)
|> GoogleApi.Storage.V1.Api.Objects.storage_objects_get(
bucket,
object,
[alt: "media"]
)
end
def upload(stream) do
body =
Multipart.new()
|> Multipart.add_file_content(stream, "file.mp4")
|> Multipart.add_field("model", "whisper-1")
|> Multipart.add_field("response_format", "json")
post("v1/audio/transcriptions", body)
end
{:ok, resp} = get_stream("foo", "bar")
upload(resp.body)
The response from GCP returns a stream that is a function/2 and if I try to use that directly in upload/1 I get an error due to https://github.com/elixir-tesla/tesla/blob/master/lib/tesla/multipart.ex#L189. I also tried turning the function into a stream doing Stream.map(env.body, &Function.identity/1) but that seems to just hang before doing the upload. The last thing I tried was adding is_function into the guard that checks if the part is a valid type but that hangs as well.
I tried spelunking a bit deeper into Tesla but can't seem to figure out exactly how it works or else I would've tried opening a PR. Any help will be appreciated.
Thanks!
The text was updated successfully, but these errors were encountered:
I've been trying to stream an upload from GCP Cloud Storage to OpenAi using Tesla and I'm running into issues that I think has to do with Tesla. The code looks similar to this:
The response from GCP returns a stream that is a
function/2
and if I try to use that directly inupload/1
I get an error due to https://github.com/elixir-tesla/tesla/blob/master/lib/tesla/multipart.ex#L189. I also tried turning the function into a stream doingStream.map(env.body, &Function.identity/1)
but that seems to just hang before doing the upload. The last thing I tried was addingis_function
into the guard that checks if the part is a valid type but that hangs as well.I tried spelunking a bit deeper into Tesla but can't seem to figure out exactly how it works or else I would've tried opening a PR. Any help will be appreciated.
Thanks!
The text was updated successfully, but these errors were encountered: