Spaces:
Runtime error
Runtime error
import streamlit as st | |
from utils import * | |
if True: | |
st.markdown(""" | |
## Notebook to Hugging Face Space | |
##### 1. Install huggingface_hub | |
```python | |
!pip install huggingface_hub==0.15.0 | |
``` | |
##### 2. Login to Huggingface with notebook | |
```python | |
from huggingface_hub import login | |
import os | |
from dotenv import load_dotenv | |
load_dotenv() | |
HF_API_KEY = os.getenv('HF_API_KEY') ## This should be set up last week :) | |
login(token = HF_API_KEY) # You might need to execute this cell twice sometimes | |
``` | |
The code above have two parts: | |
1. Import the method, called "login" from the library we just installed; this is the most common way in Python to import library or methods from library. | |
2. Call the method by passing a parameter "token = ". This token is the **Personal Token** when you sign up Hugging Face. | |
##### 3. Download a repo from our code space | |
```python | |
from huggingface_hub import snapshot_download # This time we use another method | |
# Call the method and passing three parameters into it | |
# The 1st parameter is repo_id, which is formed by "Organization Name / Space name", in our case of the tutorial folder, | |
# it is "TGSAI/Tutorials" | |
# The 2nd parameter is location(path) on your computer you want the folder to be saved | |
# The 3rd parameter is repo type, in our case, it is 'space' | |
snapshot_download(repo_id="TGSAI/Tutorials", | |
local_dir = "./Tutorials", | |
repo_type='space', | |
revision = 'week2') ## We will create branch per week | |
``` | |
##### 4. Editing our loacl codes | |
After you download repo from our space, you can edit and testing those files on you own computer, the location/path of the folder is show as the output above. | |
- if it is a jupyter notebook file, i.e. with ".ipynb" as file extension, you can open that file in the Jupyter Notebook directly | |
- it it is other form, such as ".py" as extension, you can use [vscode.dev](https://vscode.dev/) as the IDE to edit the file on your machine, or for the sake of simplicity, you can edit them directly in the notebook server by click the file. | |
- More detailed instruction of vscode.dev can be checked [here](https://google.com) | |
- For this week, you might only need to edit the app.py file just inside the /Tutorial folder you have just downloaded | |
- find the section "Our member profile" | |
- replace the "coming soon ..." with your name and some intro about you | |
- you should always download the latest version in each branch before you edit code | |
To check existing branch, using the code snippet below: | |
```python | |
from huggingface_hub import HfApi | |
api = HfApi() | |
api.list_repo_refs(repo_id = "TGSAI/Tutorials", repo_type = "space") | |
``` | |
##### 5. Update your changes to the specific branch | |
1. If you have edited the app.py file with your profile, the change already happened in your local code folder; | |
2. For simplicity, you will upload the updated folder "Tutorials" to the "main" branch; | |
2.5. But before you commit change, you should **always** update your local code with newest change at our code space, by: | |
```python | |
from huggingface_hub import Repository | |
repo = Repository(local_dir="<Your local folder>", clone_from="<The HF folder>", revision='main') | |
repo.git_pull(rebase=True) # This will update your local folder | |
``` | |
3. We will check your commit and merge it mannualy from HF web interface | |
Using the code snippet below to update your changes, | |
- You will need to do detailed editing and check before you submit it, otherwise, your pull request would not be accepted | |
```python | |
api.upload_folder(folder_path="./Tutorials", # the folder path at the local machine | |
repo_id="TGSAI/Tutorials", | |
repo_type="space", | |
revision = 'main', # make sure upload to the main branch | |
commit_message = 'https://app.clickup.com/t/860r79ppd', # add comment, mostly link to Clickup ticket url | |
commit_description = '', # any discription, or omitted | |
create_pr = True # Important! You must create Pull Request, then the maintainer will need to check it. | |
) | |
``` | |
""") |