Spaces:
Runtime error
Runtime error
| 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 | |
| } | |