defmodule Noizu.OpenAI.Api.Model do @moduledoc """ Noizu.OpenAI.Api.Model is a module that provides functionality for managing models using OpenAI's API. This module offers two main functions: 1. `list/0` - Lists all the available models. 2. `fetch/1` - Retrieves information about a specific model. ## Usage {:ok, models} = Noizu.OpenAI.Api.Model.list() {:ok, model_info} = Noizu.OpenAI.Api.Model.fetch(model) """ require Noizu.OpenAI import Noizu.OpenAI #------------------------------- # #------------------------------- @doc """ Retrieves the list of available models from the OpenAI API. ## Returns Returns a tuple {:ok, models} on successful API call, where models is a list of available models. Returns {:error, term} on failure, where term contains error details. ## Example {:ok, models} = Noizu.OpenAI.Api.Model.list() """ def list() do url = openai_base() <> "models" api_call(:get, url, nil, Noizu.OpenAI.Models) end #------------------------------- # #------------------------------- @doc """ Retrieves the details of a specific model from the OpenAI API. ## Parameters - model: The name of the model for which to retrieve details ## Returns Returns a tuple {:ok, model} on successful API call, where model is a map containing the details of the specified model. Returns {:error, term} on failure, where term contains error details. ## Example {:ok, model} = Noizu.OpenAI.model("text-davinci-003") """ def fetch(model) do url = openai_base() <> "models/#{model}" api_call(:get, url, nil, Noizu.OpenAI.Model) end end