Mojentic.LLM.Message (Mojentic v1.2.0)

Copy Markdown View Source

Represents a message in an LLM conversation.

Messages can have different roles (system, user, assistant, tool) and can contain text content, tool calls, and image references.

Examples

iex> Message.user("Hello, world!")
%Message{role: :user, content: "Hello, world!"}

iex> Message.system("You are a helpful assistant.")
%Message{role: :system, content: "You are a helpful assistant."}

Summary

Functions

Creates an assistant message.

Creates a system message.

Creates a user message.

Adds image paths to a message.

Types

role()

@type role() :: :system | :user | :assistant | :tool

t()

@type t() :: %Mojentic.LLM.Message{
  content: String.t() | nil,
  image_paths: [String.t()] | nil,
  role: role(),
  tool_calls: [Mojentic.LLM.ToolCall.t()] | nil
}

Functions

assistant(content)

Creates an assistant message.

Examples

iex> Message.assistant("I understand.")
%Message{role: :assistant, content: "I understand."}

system(content)

Creates a system message.

Examples

iex> Message.system("You are helpful.")
%Message{role: :system, content: "You are helpful."}

user(content)

Creates a user message.

Examples

iex> Message.user("Hello!")
%Message{role: :user, content: "Hello!"}

with_images(message, paths)

Adds image paths to a message.

Examples

iex> Message.user("Describe this image") |> Message.with_images(["/path/to/image.jpg"])
%Message{role: :user, content: "Describe this image", image_paths: ["/path/to/image.jpg"]}