Packages
llm_composer
0.19.1
0.20.2
0.20.1
0.20.0
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.2
0.18.1
0.18.0
0.17.1
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.3
0.12.2
0.12.0
0.11.2
0.11.1
0.11.0
0.10.0
0.8.0
0.7.0
0.6.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0
LlmComposer is an Elixir library that facilitates chat interactions with language models, providing tools to handle user messages, generate responses, and execute functions automatically based on model outputs.
Current section
Files
Jump to
Current section
Files
lib/llm_composer/provider_stream_chunk.ex
defprotocol LlmComposer.ProviderStreamChunk do
@moduledoc """
Protocol that normalizes provider stream payloads into `LlmComposer.StreamChunk` structs.
Each provider must wrap its decoded JSON chunk into a provider-specific struct and implement
this protocol so the central parser can treat every event uniformly.
"""
@fallback_to_any true
@spec to_stream_chunk(t(), keyword()) ::
{:ok, LlmComposer.StreamChunk.t()} | :skip | {:error, term()}
def to_stream_chunk(raw, opts)
end
defimpl LlmComposer.ProviderStreamChunk, for: Any do
def to_stream_chunk(_, _opts) do
{:error, %{reason: :unsupported_stream_chunk_struct}}
end
end