AI.Completion (fnord v0.8.17)

View Source

This module sends a request to the model and handles the response. It is able to handle tool calls and responses.

Input options

Output options

Output is controlled by the following mechanisms.

  1. log_msgs - log messages from the user and assistant as info
  2. log_tool_calls - log tool calls as info and tool call results as debug

LOGGER_LEVEL must be set to debug to see the output of tool call results.

Summary

Types

response()

@type response() :: {:ok, t()} | {:error, t()}

t()

@type t() :: %AI.Completion{
  archive_notes: boolean(),
  log_msgs: boolean(),
  log_tool_calls: boolean(),
  messages: list(),
  model: String.t(),
  opts: Keyword.t(),
  replay_conversation: boolean(),
  response: String.t() | nil,
  specs: [AI.Tools.tool_spec()] | nil,
  tool_call_requests: list(),
  toolbox: AI.Tools.toolbox() | nil,
  usage: integer()
}

Functions

get(opts)

@spec get(Keyword.t()) :: response()

handle_tool_call(state, map)

new(opts)

new_from_conversation(conversation, opts)

tools_used(map)