Packages

A Gleam library for building and orchestrating agents on the BEAM.

Current section

Files

Jump to
pig src pig@provider.erl
Raw

src/pig@provider.erl

-module(pig@provider).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/pig/provider.gleam").
-export([default_metadata/0, from_message/1, with_response_id/2, with_response_model/2, with_stop_reason/2, with_input_tokens/2, with_output_tokens/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" The provider abstraction and metadata setters used by `pig` and its\n"
" generated consumers.\n"
"\n"
" A `Provider` is just a function from messages + tools to an\n"
" `InferenceResult`. Concrete providers (Chat Completions, Codex\n"
" Responses, etc.) live behind constructors that hide their transport\n"
" details. `pig/openai` provides the standard OpenAI-shaped one.\n"
).
-file("src/pig/provider.gleam", 27).
?DOC(" Create an InferenceMetadata with all fields set to None.\n").
-spec default_metadata() -> pig_protocol@inference:inference_metadata().
default_metadata() ->
pig_protocol@inference:default_metadata().
-file("src/pig/provider.gleam", 32).
?DOC(" Wrap a bare Message into an InferenceResult with default (all-None) metadata.\n").
-spec from_message(pig_protocol@message:message()) -> pig_protocol@inference:inference_result().
from_message(Msg) ->
pig_protocol@inference:from_message(Msg).
-file("src/pig/provider.gleam", 37).
?DOC(" Set response_id on metadata.\n").
-spec with_response_id(pig_protocol@inference:inference_metadata(), binary()) -> pig_protocol@inference:inference_metadata().
with_response_id(Meta, Id) ->
pig_protocol@inference:with_response_id(Meta, Id).
-file("src/pig/provider.gleam", 42).
?DOC(" Set response_model on metadata.\n").
-spec with_response_model(pig_protocol@inference:inference_metadata(), binary()) -> pig_protocol@inference:inference_metadata().
with_response_model(Meta, Model) ->
pig_protocol@inference:with_response_model(Meta, Model).
-file("src/pig/provider.gleam", 50).
?DOC(" Set stop_reason on metadata.\n").
-spec with_stop_reason(
pig_protocol@inference:inference_metadata(),
pig_protocol@stop_reason:stop_reason()
) -> pig_protocol@inference:inference_metadata().
with_stop_reason(Meta, Reason) ->
pig_protocol@inference:with_stop_reason(Meta, Reason).
-file("src/pig/provider.gleam", 58).
?DOC(" Set input_tokens on metadata.\n").
-spec with_input_tokens(pig_protocol@inference:inference_metadata(), integer()) -> pig_protocol@inference:inference_metadata().
with_input_tokens(Meta, Tokens) ->
pig_protocol@inference:with_input_tokens(Meta, Tokens).
-file("src/pig/provider.gleam", 66).
?DOC(" Set output_tokens on metadata.\n").
-spec with_output_tokens(pig_protocol@inference:inference_metadata(), integer()) -> pig_protocol@inference:inference_metadata().
with_output_tokens(Meta, Tokens) ->
pig_protocol@inference:with_output_tokens(Meta, Tokens).