Skip to content

FluxML/HuggingFaceApi.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HuggingFaceApi

Stable Dev Build Status Coverage

Pure Julia Huggingface api

Example

Basic usage

julia> using HuggingFaceApi

julia> file = hf_hub_download("lysandre/arxiv-nlp", "config.json");

# or equivalent to
julia> url = HuggingFaceURL("lysandre/arxiv-nlp", "config.json")
HuggingFaceURL(https://huggingface.co/lysandre/arxiv-nlp/resolve/main/config.json)

julia> file = HuggingFaceApi.cached_download(url);

julia> readlines(file)
29-element Vector{String}:
 "{"
 "  \"_num_labels\": 1,"
 "  \"activation_function\": \"gelu_new\","
 "  \"attn_pdrop\": 0.1,"
 
 "  \"summary_type\": \"token_ids\","
 "  \"summary_use_proj\": true,"
 "  \"vocab_size\": 50257"
 "}"

# remove cached file if don't need it anymore
julia> HuggingFaceApi.remove_cache(url; now=true)
[ Info: 1 MyArtifact deleted (604.000 byte)

Download from private repo

julia> using HuggingFaceApi

julia> HuggingFaceApi.login("chengchingwen");
password: 

julia> private_file = HuggingFaceApi.hf_hub_download("chengchingwen/test_model_repo", "README.md");

julia> readlines(private_file)
1-element Vector{String}:
 "TEST THIS private repo"

julia> HuggingFaceApi.logout()

Search the hub

julia> HuggingFaceApi.list_models(; search = "japanese", filter = ("pytorch", "text-classification"), full=false, limit=5)

5-element JSON3.Array{JSON3.Object, Base.CodeUnits{UInt8, String}, Vector{UInt64}}:
 {
             "id": "daigo/bert-base-japanese-sentiment",
        "private": false,
   "pipeline_tag": "text-classification",
        "modelId": "daigo/bert-base-japanese-sentiment"
}
 {
             "id": "abhishek/autonlp-japanese-sentiment-59363",
        "private": false,
   "pipeline_tag": "text-classification",
        "modelId": "abhishek/autonlp-japanese-sentiment-59363"
}
 {
             "id": "laboro-ai/distilbert-base-japanese-finetuned-livedoor",
        "private": false,
   "pipeline_tag": "text-classification",
        "modelId": "laboro-ai/distilbert-base-japanese-finetuned-livedoor"
}
 {
             "id": "ptaszynski/yacis-electra-small-japanese-cyberbullying",
        "private": false,
   "pipeline_tag": "text-classification",
        "modelId": "ptaszynski/yacis-electra-small-japanese-cyberbullying"
}
 {
             "id": "lewtun/bert-base-japanese-char-v2-finetuned-amazon-jap",
        "private": false,
   "pipeline_tag": "text-classification",
        "modelId": "lewtun/bert-base-japanese-char-v2-finetuned-amazon-jap"
}