Packages
llm_composer
0.5.2
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/message.ex
defmodule LlmComposer.Message do
@moduledoc """
Module that represents an arbitrary message for any LLM.
"""
@type t :: %__MODULE__{
type: binary() | atom(),
content: binary() | list() | nil,
metadata: map()
}
@enforce_keys [:type]
defstruct [:type, :content, :metadata]
@doc """
Creates a new message struct with a given type and content.
"""
@spec new(type :: binary() | atom(), content :: binary() | list() | nil, metadata :: map()) ::
t()
def new(type, content, metadata \\ %{})
when is_binary(type) or is_atom(type) do
%__MODULE__{type: type, content: content, metadata: metadata}
end
end