Repository navigation
Releases: schainks/system_one_client
Releases · schainks/system_one_client
Release list
v0.3.0
Added
images:option for image inputs withprovider: :openaiandprovider: :cloudflare.
Images are base64 data URLs;SystemOneClient.image_data_url/2builds one from bytes.
OpenAI receives them asinput_imageparts before the state text; Clef receives its
top-levelimagesarray. Both see the images before the state.SystemOneClient.Imagesvalidates images before any request: data URLs only (no remote
URLs), plus Clef's limits of 4 PNG, JPEG or WebP images, 4 MiB each and 8 MiB in total.
Other providers return{:error, {:unsupported_option, :images, provider}}.- Telemetry metadata includes
image_count.
v0.2.0
Added
provider: :openaifor OpenAI's Decisions API (POST /v1/decisions, default model
gpt-6-luna,OPENAI_API_KEY). Requests and responses are translated to and from the
System One shape bySystemOneClient.Wire.OpenAIDecisions, so questions and answer
structs are the same as for every other provider. Score legends carry your own level
text, as with TypeSafe.SystemOneClient.Answer.Refusalfor a question the model declines to answer; the other
answers in the request are still returned.- Typespecs for the public API, including
SystemOneClient.option/0,
SystemOneClient.options/0,SystemOneClient.error/0and
SystemOneClient.Provider.name/0; checked with Dialyzer in CI. - Doctests on
validate_questions/1,Answer.parse/1,Provider.resolve/1and the
OpenAI request encoder, and grouped modules in the docs.
Changed
SystemOneClient.Providerresults carry awirefield (:system_oneor
:openai_decisions).- The Hex package links to the changelog.
v0.1.0
SystemOneClientbehaviour withevaluate/3,validate_questions/1, and a dispatcher
that picks the implementation fromopts[:client]or app env.SystemOneClient.HTTP: Req-based client with retries on 429/529/502/503/504 and transport
errors,Retry-Afterandretry-after-mssupport, 2 s default receive timeout.SystemOneClient.Provider::typesafe,:cloudflare(Clef and Clef-flash,result
envelope),:openrouter,:compatible(any/v1/systemoneURL, e.g. CLM).SystemOneClient.Answer.{Choice, Noul, Score}with full probability distributions and
validation of non-numeric probabilities and non-map answer payloads.SystemOneClient.Stubfor offline tests.- Telemetry
[:system_one_client, :request, *]without state, questions, or keys.