Spaces:
Runtime error
Runtime error
File size: 1,196 Bytes
857a91b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | package hf
import (
"fmt"
"strings"
)
// ParseRef parses a model identifier into a Ref. Accepted forms:
//
// hf:Qwen/Qwen2.5-7B-Instruct
// hf:mistralai/Mistral-7B-Instruct-v0.3
// Qwen/Qwen2.5-7B-Instruct (hf: prefix optional)
//
// A revision override (e.g. a branch, tag or commit) may be supplied; when
// empty it defaults to "main". A revision embedded in the id via "@" takes
// precedence only when no explicit override is given.
func ParseRef(model, revisionOverride string) (Ref, error) {
id := strings.TrimSpace(model)
if id == "" {
return Ref{}, fmt.Errorf("empty model identifier")
}
id = strings.TrimPrefix(id, "hf:")
id = strings.TrimPrefix(id, "huggingface:")
embeddedRev := ""
if at := strings.LastIndex(id, "@"); at >= 0 {
embeddedRev = id[at+1:]
id = id[:at]
}
parts := strings.Split(id, "/")
if len(parts) != 2 || parts[0] == "" || parts[1] == "" {
return Ref{}, fmt.Errorf("invalid model id %q (want namespace/name)", model)
}
rev := revisionOverride
if rev == "" {
rev = embeddedRev
}
if rev == "" {
rev = "main"
}
return Ref{
Source: "huggingface",
Namespace: parts[0],
Name: parts[1],
Revision: rev,
}, nil
}
|