Packages
openai_ex
0.6.3
0.9.21
0.9.20
0.9.19
0.9.18
0.9.17
0.9.16
0.9.15
0.9.14
0.9.13
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Community maintained Elixir library for OpenAI API
Current section
Files
Jump to
Current section
Files
lib/openai_ex/beta/vector_stores_files.ex
defmodule OpenaiEx.Beta.VectorStores.Files do
@moduledoc """
This module provides an implementation of the OpenAI vector_store files API. The API reference can be found at https://platform.openai.com/docs/api-reference/vector-stores-files.
"""
defp ep_url(vector_store_id, file_id \\ nil) do
"/vector_stores" <>
if(is_nil(vector_store_id), do: "", else: "/#{vector_store_id}") <>
"/files" <>
if(is_nil(file_id), do: "", else: "/#{file_id}")
end
def list(openai = %OpenaiEx{}, vector_store_id, params \\ %{}) do
openai
|> OpenaiEx.with_assistants_beta()
|> OpenaiEx.Http.get(
ep_url(vector_store_id),
params |> Map.take([:filter | OpenaiEx.list_query_fields()])
)
end
def create(openai = %OpenaiEx{}, vector_store_id, file_id) do
openai
|> OpenaiEx.with_assistants_beta()
|> OpenaiEx.Http.post(ep_url(vector_store_id), json: %{file_id: file_id})
end
def retrieve(openai = %OpenaiEx{}, vector_store_id, file_id) do
openai
|> OpenaiEx.with_assistants_beta()
|> OpenaiEx.Http.get(ep_url(vector_store_id, file_id))
end
def delete(openai = %OpenaiEx{}, vector_store_id, file_id) do
openai
|> OpenaiEx.with_assistants_beta()
|> OpenaiEx.Http.delete(ep_url(vector_store_id, file_id))
end
end