mirror of
https://github.com/mudler/LocalAI.git
synced 2026-06-22 23:58:51 -04:00
LocalAI pulls models from OCI registries (via go-containerregistry), the Ollama registry, and OCI blob stores (via oras), but every request went out with the underlying library's generic User-Agent, so registry operators had no way to attribute traffic to LocalAI. Add an oci.UserAgent() helper that returns "LocalAI" (or "LocalAI/<version>" when the binary is built with a version stamp via internal.Version) and wire it into all three pull paths: - pkg/oci/image.go: remote.WithUserAgent on the go-containerregistry image and digest requests - pkg/oci/ollama.go: a User-Agent header on the Ollama manifest request - pkg/oci/blob.go: a LocalAI User-Agent on the oras blob client. This mirrors oras' auth.DefaultClient (same retry.DefaultClient policy); only the advertised User-Agent changes. Implements #6258. Assisted-by: Claude:claude-opus-4-8 golangci-lint Signed-off-by: Vijay Sai <vijaysaijnv@gmail.com>
20 lines
562 B
Go
20 lines
562 B
Go
package oci
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/mudler/LocalAI/internal"
|
|
)
|
|
|
|
// UserAgent returns the User-Agent string LocalAI sends on outbound registry
|
|
// requests (OCI registries and Ollama). It identifies the client as LocalAI
|
|
// and, when the binary was built with a version stamp, appends it so registries
|
|
// can attribute client-side usage to LocalAI rather than to the generic
|
|
// User-Agent of the underlying transport library.
|
|
func UserAgent() string {
|
|
if internal.Version == "" {
|
|
return "LocalAI"
|
|
}
|
|
return fmt.Sprintf("LocalAI/%s", internal.Version)
|
|
}
|