@spec call(%{instructions: String.t(), text: String.t()}, map()) :: {:ok, String.t()} | {:error, String.t()}
@spec stream( %{instructions: String.t(), text: String.t()}, ({:ok, String.t() | {:error, String.t()} | :done} -> any()), map() ) :: Enumerable.t()
@spec sync_stream( %{instructions: String.t(), text: String.t()}, (String.t() -> any()), map() ) :: {:ok, String.t()} | {:error, String.t()}