GenAI.Provider.Suno (Noizu Labs, GenAI Wrapper v0.3.2)

Copy Markdown

Suno music / sound generation provider (ADR-016). NOT an LLM — media only.

Declares text -> music and text -> sfx as ASYNC: Suno generation is submit-then-poll, so generate_media/2 submits the job and returns {:ok, %GenAI.Media.Job{status: :pending}} carrying the provider task id. The poll/download harness is owned by the audio/video lane (see GenAI.Media.Job); this provider implements the submit half.

Suno has no single official public API — base_url + the generate path are configurable via config :genai, :suno, base_url: "...", api_key: "...", generate_path: "/api/v1/generate". Auth is a Bearer key (SUNO_API_KEY).

Summary

Functions

Return config_key inference provide application config stored under :genai entry

Obtain map of effective settings: settings, model_settings, provider_settings, config_settings, etc.

Prepare endpoint and method to make inference call to

Prepare request body to be passed to inference call.

Build and run inference thread

Build and run inference thread in streaming mode

Functions

chat(messages, tools, settings)

chat(model, messages, tools, hyper_parameters, provider_settings \\ [], context \\ nil, options \\ nil)

Callback implementation for GenAI.InferenceProviderBehaviour.chat/7.

config_key()

Return config_key inference provide application config stored under :genai entry

default_encoder()

effective_settings(model, session, context, options \\ nil)

Obtain map of effective settings: settings, model_settings, provider_settings, config_settings, etc.

endpoint(model, settings, session, context, options \\ nil)

Prepare endpoint and method to make inference call to

headers(options)

headers(model, settings, session, context, options \\ nil)

Prepare request headers

request_body(model, messages, tools, settings, session, context, options \\ nil)

Prepare request body to be passed to inference call.

run(session, context, options \\ nil)

Build and run inference thread

standardize_model(model)

Callback implementation for GenAI.InferenceProviderBehaviour.standardize_model/1.

stream(session, context, options \\ nil)

Build and run inference thread in streaming mode