Skip to content

LocalLM Lab v2.3.0-GA

Latest

Choose a tag to compare

@thisbrainai thisbrainai released this 27 Oct 18:34
· 11 commits to main since this release
76d2536

LocalLM Lab 2.3.0-GA

2.3 adds OpenAI's Decisions API to the SDK as a fourth decider, and lets a backend decline a question: refusals are now part of Decision.

SDK: OpenAI Decisions and refusals, additions only

Code that builds against 2.2.0 builds unchanged. LocalLMLabSDKInference and LocalLMLabSDKClaude have no source changes.

  • OpenAI Decisions in LocalLMLabSDKRemote. JevDecisionProvider speaks OpenAI's /v1/decisions as well as Jev's wire format, chosen by JevProviderConfig's new wire (.jev or .openAIDecisions).
    • .openAI(key:) registers openai:gpt-6-luna, with .native fidelity: the probabilities are OpenAI's own.
    • .openAICompatibleDecisions(baseURL:auth:models:…) is for any other server that speaks the same API, such as Fireworks, Vercel AI Gateway or LocalAI.
    • probe(for:timeout:) checks the key and model with GET /v1/models, without spending a decision.
  • OpenAIDecisionWire in LocalLMLabSDKCore, the codec for both directions. OpenAI's input limits (DecisionLimits.openAIDecisions) are checked before anything is sent.
  • Refusals. Decision.refusals lists the questions a backend declined, and isRefused(_:) checks one. Only OpenAI's Decisions API refuses today; other backends leave refusals empty. lab.evaluate counts a refusal as a miss (QuestionScore.refused).
  • Decision's JSON gains refusals. JSON written by 2.2 still decodes, and a decision without refusals encodes exactly as before.

Details in the CHANGELOG and the SDK guide (§6c, decision models).

Examples

  • JevDK has an OpenAI backend next to the local model, Featherless and OpenRouter, and shows refused questions in its results. It now needs SDK 2.3. Also in the standalone jevdk repo.
  • Every example builds against 2.3.0-GA by default (LOCALLM_SDK_VERSION picks another release).
  • The sandboxed examples that download an MLX model (aiql, mcp-chat, mlx-control-room, workspace-buddy-local) explain where the model is stored in the app's container and how to remove it.

LocalLM Lab app

Rebuilt on SDK 2.3, with the same features as 2.2.0. Known issues: known issues.

Checksums

Asset SHA-256
LocalLMLabSDKCore-2.3.0-GA.xcframework.zip 7821197d0cf5b4c92e36af5c537295e594afbb55d60d2f98b0773a3625403575
LocalLMLabSDKClaude-2.3.0-GA.xcframework.zip 80e143412d0bd0538091b59ea050015d28828855809203ea51c1cd49675e8449
LocalLMLabSDKInference-2.3.0-GA.xcframework.zip 63dc8bcba5e91e1324809ca412a23ebb0b9e04386361436eacc0be9fe6d4a8e0
LocalLMLabSDKRemote-2.3.0-GA.xcframework.zip dae65d45bea196f6cd2538328fad1a0e33eceae5fac5ee965183706ac942daaf
LocalLM.Lab-2.3.0-GA-arm64.dmg (the app) 11201dc4ab7f73e0dd846eedfefa40ab66fcf51cafbad1e22f8d307f6c544056
localai-toolkit-2.3.0-GA-arm64.zip (the localai-cli toolkit) f86ec719a1130c6b469915dbd7fb97c0b8219a96372ced95be74093cee2b9765

The DMG's .sha256 names the file LocalLM Lab-2.3.0-GA-arm64.dmg (with a space), so compare with shasum -a 256 LocalLM.Lab-2.3.0-GA-arm64.dmg rather than shasum -c.