go-mlx/mlx.go
Snider bff97ccf19 feat(api): migrate to go-inference shared interfaces
Replace local TextModel, Backend, Token, Message, and option types with
forge.lthn.ai/core/go-inference. go-mlx is now a pure backend that
registers "metal" into the shared inference registry via init().

Deleted: textmodel.go, options.go, backend.go
Updated: register_metal.go (implements inference.Backend with Available()),
  mlx_test.go (uses inference.* types, 4 new tests), go.mod,
  internal/metal/generate.go (added RepeatPenalty)

159 tests passing (148 internal/metal + 11 root).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-19 20:15:42 +00:00

26 lines
823 B
Go

// Package mlx provides Apple Metal GPU inference via mlx-c bindings.
//
// This package implements the [inference.Backend] interface from
// forge.lthn.ai/core/go-inference for Apple Silicon (M1-M4) GPUs.
//
// Build mlx-c before use:
//
// go generate ./...
//
// Load a model and generate text:
//
// import "forge.lthn.ai/core/go-inference"
// import _ "forge.lthn.ai/core/go-mlx" // register Metal backend
//
// m, err := inference.LoadModel("/path/to/model/")
// if err != nil { log.Fatal(err) }
// defer m.Close()
//
// for tok := range m.Generate(ctx, "What is 2+2?", inference.WithMaxTokens(128)) {
// fmt.Print(tok.Text)
// }
package mlx
//go:generate cmake -S . -B build -DCMAKE_INSTALL_PREFIX=dist -DCMAKE_BUILD_TYPE=Release
//go:generate cmake --build build --parallel
//go:generate cmake --install build