# Noizu Labs, GenAI Wrapper v0.3.2 - Table of Contents Generative AI Wrapper: access multiple apis through single standardized interface. ## Pages - [Contributing](readme.md) - [Change Log](changelog.md) - [Todo](todo.md) - [CONTRIBUTING](contributing.md) - [LICENSE](license.md) ## Modules - [GenAI.Provider.Anthropic](GenAI.Provider.Anthropic.md): This module implements the GenAI provider for Groq AI. - [GenAI.Provider.Anthropic.Encoder](GenAI.Provider.Anthropic.Encoder.md) - [GenAI.Provider.Anthropic.EncoderProtocol](GenAI.Provider.Anthropic.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.Anthropic.EncoderProtocolHelper](GenAI.Provider.Anthropic.EncoderProtocolHelper.md) - [GenAI.Provider.Anthropic.Models](GenAI.Provider.Anthropic.Models.md): Defines some common Anthropic models. - [GenAI.Provider.Cerebras](GenAI.Provider.Cerebras.md): Module for interacting with the Cerebras inference API. - [GenAI.Provider.Cerebras.Encoder](GenAI.Provider.Cerebras.Encoder.md) - [GenAI.Provider.Cerebras.EncoderProtocol](GenAI.Provider.Cerebras.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.Cerebras.Models](GenAI.Provider.Cerebras.Models.md) - [GenAI.Provider.DeepSeek](GenAI.Provider.DeepSeek.md): Module for interacting with the OpenAI API. - [GenAI.Provider.DeepSeek.Encoder](GenAI.Provider.DeepSeek.Encoder.md) - [GenAI.Provider.DeepSeek.EncoderProtocol](GenAI.Provider.DeepSeek.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.DeepSeek.Models](GenAI.Provider.DeepSeek.Models.md) - [GenAI.Provider.Gemini](GenAI.Provider.Gemini.md): This module implements the GenAI provider for Mistral AI. - [GenAI.Provider.Gemini.Encoder](GenAI.Provider.Gemini.Encoder.md) - [GenAI.Provider.Gemini.EncoderProtocol](GenAI.Provider.Gemini.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.Gemini.EncoderProtocolHelper](GenAI.Provider.Gemini.EncoderProtocolHelper.md) - [GenAI.Provider.Gemini.Image](GenAI.Provider.Gemini.Image.md): Gemini Imagen image-generation provider — a SYNC media provider (ADR-016 / ede43647). - [GenAI.Provider.Gemini.Models](GenAI.Provider.Gemini.Models.md) - [GenAI.Provider.Groq](GenAI.Provider.Groq.md): This module implements the GenAI provider for Groq AI. - [GenAI.Provider.Groq.Encoder](GenAI.Provider.Groq.Encoder.md) - [GenAI.Provider.Groq.EncoderProtocol](GenAI.Provider.Groq.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.Groq.Models](GenAI.Provider.Groq.Models.md): Defines some common Groq models. - [GenAI.Provider.LiteLLM](GenAI.Provider.LiteLLM.md): Module for interacting with a LiteLLM proxy. - [GenAI.Provider.LiteLLM.Encoder](GenAI.Provider.LiteLLM.Encoder.md) - [GenAI.Provider.LiteLLM.EncoderProtocol](GenAI.Provider.LiteLLM.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.LiteLLM.Media](GenAI.Provider.LiteLLM.Media.md): LiteLLM media-generation provider (ADR-016) — the proxy can host many media model types, so this declares the full set and dispatches by output modality - [GenAI.Provider.LiteLLM.Models](GenAI.Provider.LiteLLM.Models.md) - [GenAI.Provider.Media.OpenAICompat](GenAI.Provider.Media.OpenAICompat.md): Shared OpenAI-compatible media-generation calls (ADR-016), parameterized by base_url + API key so the OpenAI providers and the LiteLLM proxy providers share ONE definition of each endpoint's request build + response decode (dmitri's "one definition" principle) - [GenAI.Provider.MediaHelpers](GenAI.Provider.MediaHelpers.md): Shared helpers for the sync media-generation providers (ADR-016 / ede43647): API-key resolution (request -> env, fast-fail when absent), prompt-text extraction, and the base64-image decode into the `{:ok, %{data, mime, meta}}` return contract. One definition reused by the OpenAI + Gemini image providers (and future media providers). - [GenAI.Provider.Mistral](GenAI.Provider.Mistral.md): This module implements the GenAI provider for Mistral AI. - [GenAI.Provider.Mistral.Encoder](GenAI.Provider.Mistral.Encoder.md) - [GenAI.Provider.Mistral.EncoderProtocol](GenAI.Provider.Mistral.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.Mistral.Models](GenAI.Provider.Mistral.Models.md): Defines some common Mistral models. - [GenAI.Provider.Ollama](GenAI.Provider.Ollama.md): Module for interacting with the Ollama API. Ollama provides local LLM inference with various open-source models. - [GenAI.Provider.Ollama.Encoder](GenAI.Provider.Ollama.Encoder.md) - [GenAI.Provider.Ollama.EncoderProtocol](GenAI.Provider.Ollama.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.Ollama.Models](GenAI.Provider.Ollama.Models.md) - [GenAI.Provider.OpenAI](GenAI.Provider.OpenAI.md): Module for interacting with the OpenAI API. - [GenAI.Provider.OpenAI.Encoder](GenAI.Provider.OpenAI.Encoder.md) - [GenAI.Provider.OpenAI.EncoderProtocol](GenAI.Provider.OpenAI.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.OpenAI.Image](GenAI.Provider.OpenAI.Image.md): OpenAI image-generation provider (gpt-image-1) — a SYNC media provider (ADR-016 / ede43647). - [GenAI.Provider.OpenAI.Models](GenAI.Provider.OpenAI.Models.md) - [GenAI.Provider.OpenAI.Speech](GenAI.Provider.OpenAI.Speech.md): OpenAI text-to-speech provider — a SYNC media provider (ADR-016). - [GenAI.Provider.OpenAI.Transcription](GenAI.Provider.OpenAI.Transcription.md): OpenAI speech-to-text (transcription) provider — a SYNC media provider (ADR-016). - [GenAI.Provider.Suno](GenAI.Provider.Suno.md): Suno music / sound generation provider (ADR-016). NOT an LLM — media only. - [GenAI.Provider.XAI](GenAI.Provider.XAI.md): Module for interacting with the XAI API. - [GenAI.Provider.XAI.Encoder](GenAI.Provider.XAI.Encoder.md) - [GenAI.Provider.XAI.EncoderProtocol](GenAI.Provider.XAI.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.XAI.Models](GenAI.Provider.XAI.Models.md) - [GenAI.Provider.ZAI](GenAI.Provider.ZAI.md): Module for interacting with the Z.AI (Zhipu GLM) API. - [GenAI.Provider.ZAI.Encoder](GenAI.Provider.ZAI.Encoder.md) - [GenAI.Provider.ZAI.EncoderProtocol](GenAI.Provider.ZAI.EncoderProtocol.md): Encoders use their module's EncoderProtocol to prep messages and tool definitions To make future extensibility for third parties straight forward. If a new message type, or tool type is added one simply needs to implement a EncoderProtocol for it and most cases you can simply cast it to generic known type and then invoke the protocol again. - [GenAI.Provider.ZAI.Models](GenAI.Provider.ZAI.Models.md)