
Hugging Face Spaces: javna aplikacija može skrivati izvorni kod

Za objavu jednostavnog AI dema na Hugging Face Spaces izradite Gradio Space, dodajte datoteku app.py i pristupni token spremite kao tajnu HF_TOKEN. Ako aplikaciju želite otvoriti posjetiteljima, a kod zadržati za vlasnika i suradnike, odaberite Protected: pregled vidljivosti Spaceova navodi da je tada pokrenuta aplikacija javna preko zasebne adrese, dok repozitorij nije.
Public otvara i aplikaciju i repozitorij svima; Private oboje ograničava na vlasnika i suradnike. Za prvi demo možete odabrati Public ako u datotekama nema povjerljivih podataka. Protected zahtijeva odgovarajući plaćeni plan, pa vidljivost odaberite prije nego što podijelite poveznicu.
Provjerite uvjete za Gradio Space
Pri stvaranju Spacea birate ime, vidljivost i SDK. Gradio je SDK za Python sučelje u ovom primjeru. Datoteke Spacea čuvaju se u Git repozitoriju, a nova predaja promjena pokreće ponovnu izgradnju i pokretanje aplikacije. Zato spremanje datoteke app.py nije posljednji korak: pričekajte da izgradnja završi prije nego što očekujete odgovor modela.
Za izradu Gradio ili Docker Spacea koji koristi računalne resurse potreban je plan PRO za osobni račun odnosno Team ili Enterprise za organizaciju. Dokumentacija navodi ograničenu iznimku za osobne račune koji ispunjavaju uvjete i koriste Gradio na ZeroGPU. Statički Space dostupan je zasebno, ali ne pokreće ovaj Python primjer kao Gradio aplikaciju. Provjerite što vaš račun nudi prije pripreme dema.
Objavite datoteke i pokrenite demo
Hugging Faceov vodič za prvu aplikaciju opisuje objavu datoteke app.py u novom Gradio Spaceu i dodavanje tajne HF_TOKEN u njegovim postavkama. Za jednostavno sučelje koje prima pitanje slijed je sljedeći:
- Prijavite se, izradite novi Space, upišite njegovo ime i odaberite Gradio. Odmah postavite vidljivost prema tome tko smije koristiti demo i pregledavati datoteke.
- U repozitorij dodajte app.py s kodom prikazanim niže. Dodajte i requirements.txt; za ovaj primjer u njega upišite huggingface_hub kao zaseban redak.
- U postavkama Spacea dodajte HF_TOKEN kao tajnu i unesite vrijednost svojeg pristupnog tokena. Token ne upisujte u Python datoteku, popis paketa ni opis projekta.
- Pričekajte izgradnju, otvorite aplikaciju i unesite kratko probno pitanje. Tek nakon odgovora ili razumljive poruke o pogrešci podijelite adresu namijenjenu posjetiteljima.
Space ima stranicu repozitorija na Hubu i zasebnu adresu pokrenute aplikacije. Ta je razlika osobito važna za Protected: posjetitelju kojem želite dati samo sučelje pošaljite adresu aplikacije, a ne poveznicu za pregled repozitorija.
Minimalan primjer datoteke app.py
Ovo je uvjetni minimalni primjer tekstnog dema. Svaki prikazani redak ide u novi redak datoteke app.py; dva retka unutar funkcije uvucite za četiri razmaka. Korisnik upisuje pitanje, a Gradio prikazuje sadržaj odgovora koji vrati model.
import os
import gradio as gr
from huggingface_hub import InferenceClient
client = InferenceClient(provider="auto", api_key=os.environ["HF_TOKEN"])
def odgovori(pitanje):
rezultat = client.chat.completions.create(model="deepseek-ai/DeepSeek-R1-0528:fastest", messages=[{"role": "user", "content": pitanje}])
return rezultat.choices[0].message.content
gr.Interface(fn=odgovori, inputs=gr.Textbox(label="Pitanje"), outputs=gr.Textbox(label="Odgovor"), title="AI demo").launch()
Odabrani model pojavljuje se u službenom primjeru poziva, ali dostupnost modela i pružatelja može se promijeniti. Ako poziv ne uspije, provjerite je li model trenutačno dostupan vašem računu i po potrebi zamijenite njegov identifikator podržanim modelom za Chat Completion. Postavka provider="auto" prepušta odabir dostupnog pružatelja usluzi; ne znači da će svaki model uvijek biti dostupan.
Gradio je odabran pri stvaranju Spacea, dok requirements.txt navodi dodatni Python paket koji primjer uvozi. Datoteka app.py sadrži način pozivanja modela, ali ne i vrijednost tokena. To omogućuje da istu datoteku pregledavate ili mijenjate bez kopiranja vjerodajnice u repozitorij.
Token spremite kao Secret
U postavkama Spacea otvorite odjeljak za varijable i tajne te stvorite Secret naziva HF_TOKEN. Izraz os.environ["HF_TOKEN"] u primjeru čita njegovu vrijednost iz okruženja pri pokretanju aplikacije. Obična varijabla prikladna je za nepovjerljivu konfiguraciju; pristupni token spremite među tajne bez obzira na odabranu vidljivost Spacea.
Za ovaj poziv token mora imati dopuštenje za Inference Providers, kako navode upute za Chat Completion. Ako se sučelje učita, a odgovor izostane, provjerite naziv tajne, dopuštenje tokena i dostupnost odabranog modela. Vrijednost tokena nemojte prikazivati u izlazu aplikacije ni uključivati u poruku o pogrešci koju vide posjetitelji.
Što posjetitelj vidi u svakoj postavci
Vidljivost Spacea uređuje pristup dvjema stvarima: pokrenutoj aplikaciji i datotekama repozitorija. Ova matrica pomaže odabrati postavku prema publici kojoj je demo namijenjen:
- Public: svatko može koristiti aplikaciju, pregledavati njezin izvorni kod na Hubu i klonirati repozitorij. Prikladan je kada namjerno objavljujete i sučelje i kod.
- Protected: pokrenuta aplikacija ostaje javna preko svoje ugrađene adrese ili prilagođene domene ako je postavljena. Datoteke mogu pregledavati i klonirati samo vlasnik i suradnici; potrebna je odgovarajuća pretplata.
- Private: i aplikacija i repozitorij dostupni su samo vlasniku i suradnicima. Posjetitelji bez pristupa ne mogu koristiti demo.
Protected je koristan kada želite javno pokazati rezultat rada aplikacije, ali ne i objaviti app.py. Ta postavka skriva repozitorij, ne sadržaj koji aplikacija sama pošalje korisniku. Zato u odgovoru modela, oznakama sučelja i porukama o pogrešci ne smiju završiti podaci koje želite zadržati privatnima.
Kontrolni popis prije dijeljenja
- Izgradnja Spacea je završila, a sučelje prihvaća pitanje i prikazuje odgovor.
- HF_TOKEN je spremljen kao Secret; njegova vrijednost nije u app.py, requirements.txt ni drugim datotekama repozitorija.
- Token ima dopuštenje za Inference Providers, a odabrani model dostupan je za poziv.
- Public, Protected ili Private odgovara tome tko smije koristiti aplikaciju i tko smije vidjeti kod.
- Za Protected dijelite adresu pokrenute aplikacije. Ako je cilj ograničiti i korištenje aplikacije, odaberite Private.
Pročitajte i:
Povezani članci


Cloudflareov Web Search API daje agentima tri tražilice, ali ne provjerava odgovor

Perplexity razbija PDF na vektore — pretraživanje više ne traži OCR

GitHub profil za posao: tri do pet projekata vrijedi više od zida aktivnosti

Microsoft Clarity ili Hotjar: besplatne snimke ne daju odgovor „zašto”

GitHub Copilot predaje sesiju VS Codeu — razgovor i izmjene ostaju cijeli
Pretplatite se na naš newsletter
Primajte najnovije vijesti o Web3-u, AI-ju i kriptovalutama izravno u svoj sandučić.