lib/langchain/audio_model_protocol.ex

#  protocol for models that ingest audio and produce either text or audio or video


# audio to text

defprotocol LangChain.AudioModelProtocol do
  defstruct provider: nil,
            model_name: nil,
            max_tokens: nil,
            temperature: nil,
            n: nil,
            options: nil

  # take in an audio binary and return text

  def speak(model, audio_data)
  def stream(model, audio_data)
end

defprotocol LangChain.AudioToAudioProtocol do
  defstruct provider: nil,
            model_name: nil,
            max_tokens: nil,
            temperature: nil,
            n: nil,
            options: nil

  def speak(model, prompt)
  def speak_stream(model, prompt)
end

defprotocol LangChain.AudioToImageProtocol do
  defstruct provider: nil,
            model_name: nil,
            max_tokens: nil,
            temperature: nil,
            n: nil,
            options: nil

  def draw(model, prompt)
  def draw_stream(model, prompt)
end