Gradio-lite: Gradio აპლიკაციების გაშვება პირდაპირ ბრაუზერში Pyodide-ით
Gradio-lite არის JavaScript ბიბლიოთეკა, რომელიც საშუალებას გაძლევთ გაუშვათ Gradio აპლიკაციები პირდაპირ ვებ ბრაუზერში, Pyodide-ის გამოყენებით (Python runtime WebAssembly-ისთვის). ეს გამორიცხავს სერვერის ინფრასტრუქტურის საჭიროებას, ამარტივებს დეპლოიმენტს, ამცირებს ხარჯებს და უზრუნველყოფს სწრაფ ინტერაქციასა და მონაცემთა დაცვას. სტატიაში აღწერილია Gradio-lite-ის ძირითადი ფუნქციები, აპლიკაციის შექმნა, მრავალფაილიანი პროექტებისა და დამატებითი მოთხოვნების მართვა. განხილულია მისი უპირატესობები, როგორიცა
Gradio-lite (@gradio/lite): ბიბლიოთეკა, რომელიც Pyodide-ის მეშვეობით Gradio-ს პირდაპირ თქვენს ბრაუზერში ათავსებს. ამ ბლოგ პოსტში ჩვენ განვიხილავთ, თუ რა არის @gradio/lite, გავივლით კოდის მაგალითებს და ვისაუბრებთ იმ უპირატესობებზე, რასაც ის სთავაზობს Gradio აპლიკაციების გაშვებისთვის.
@gradio/lite არის JavaScript ბიბლიოთეკა, რომელიც საშუალებას გაძლევთ Gradio აპლიკაციები პირდაპირ თქვენს ვებ ბრაუზერში გაუშვათ. ის ამას Pyodide-ის გამოყენებით ახერხებს, რომელიც არის Python-ის runtime WebAssembly-ისთვის და Python კოდის ბრაუზერის გარემოში შესრულების საშუალებას იძლევა. @gradio/lite-ის საშუალებით, შეგიძლიათ დაწეროთ ჩვეულებრივი Python კოდი თქვენი Gradio აპლიკაციებისთვის და ისინი უპრობლემოდ იმუშავებენ ბრაუზერში სერვერული ინფრასტრუქტურის საჭიროების გარეშე.
**შევქმნათ „Hello World“ Gradio აპლიკაცია @gradio/lite-ში**
დაიწყეთ ახალი HTML ფაილის შექმნით, თუ უკვე არ გაქვთ. @gradio/lite პაკეტის შესაბამისი JavaScript-ისა და CSS-ის იმპორტირება შეგიძლიათ შემდეგი კოდის გამოყენებით:
```html
```
გაითვალისწინეთ, რომ ზოგადად უნდა გამოიყენოთ @gradio/lite-ის უახლესი ხელმისაწვდომი ვერსია. ხელმისაწვდომი ვერსიების ნახვა შეგიძლიათ აქ: [https://www.gradio.app/docs/lite/getting_started](https://www.gradio.app/docs/lite/getting_started)
თქვენი HTML გვერდის `` ნაწილში (სადაც გსურთ Gradio აპლიკაციის რენდერირება), შექმენით გახსნადი და დახურადი `` ტეგები. **შენიშვნა:** შეგიძლიათ დაამატოთ `theme` ატრიბუტი `` ტეგს, რათა აიძულოთ თემა იყოს მუქი ან ღია (ნაგულისხმევად, ის ითვალისწინებს სისტემის თემას). მაგალითად:
```html
# Your Python code here
```
ახლა, დაწერეთ თქვენი Gradio აპლიკაცია ისე, როგორც ჩვეულებრივ, Python-ში! გაითვალისწინეთ, რომ რადგან ეს Python-ია, მნიშვნელოვანია ცარიელი ადგილები (whitespace) და ინდენტაცია.
```python
import gradio as gr
def greet(name):
return "Hello " + name + "!"
gr.Interface(fn=greet, inputs="text", outputs="text").launch()
```
და სულ ესაა! ახლა თქვენ შეგიძლიათ გახსნათ თქვენი HTML გვერდი ბრაუზერში და ნახოთ Gradio აპლიკაცია რენდერირებული! გაითვალისწინეთ, რომ Gradio აპლიკაციას თავდაპირველად შესაძლოა ცოტა დრო დასჭირდეს ჩატვირთვას, რადგან Pyodide-ის ინსტალაციას ბრაუზერში შეიძლება გარკვეული დრო დასჭირდეს.
**შენიშვნა დებაგინგის შესახებ:** Gradio-lite აპლიკაციაში ნებისმიერი შეცდომის სანახავად, გახსენით ინსპექტორი თქვენს ვებ ბრაუზერში. ყველა შეცდომა (მათ შორის Python შეცდომები) იქ დაიბეჭდება.
რა მოხდება, თუ გსურთ შექმნათ Gradio აპლიკაცია, რომელიც რამდენიმე ფაილს მოიცავს? ან რომელსაც აქვს სპეციალური Python მოთხოვნები? ორივე შესაძლებელია @gradio/lite-ით! მრავალი ფაილის დამატება @gradio/lite აპლიკაციაში ძალიან მარტივია: გამოიყენეთ `` ტეგი. შეგიძლიათ გქონდეთ რამდენიც გსურთ `` ტეგი, მაგრამ თითოეულს უნდა ჰქონდეს `name` ატრიბუტი, ხოლო თქვენი Gradio აპლიკაციის საწყის წერტილს (entry point) უნდა ჰქონდეს `entrypoint` ატრიბუტი. აი მაგალითი:
```html
import gradio as gr
from utils import sum_numbers
def add_nums(a, b):
return sum_numbers(a,b)
demo = gr.Interface(add_nums, ["number", "number"], "number")
demo.launch()
def sum_numbers(a,b):
return a + b
```
თუ თქვენს Gradio აპლიკაციას აქვს დამატებითი მოთხოვნები (requirements), მათი დაინსტალირება ბრაუზერში ჩვეულებრივ შესაძლებელია `micropip`-ის გამოყენებით. ჩვენ შევქმენით ე.წ. „wrapper“, რათა ეს პროცესი განსაკუთრებით მოსახერხებელი იყოს: უბრალოდ ჩამოთვალეთ თქვენი მოთხოვნები `requirements.txt`-ის ანალოგიური სინტაქსით და ჩასვით ისინი `` ტეგებში. აქ, ჩვენ ვაინსტალირებთ `transformers_js_py`-ს, რათა ტექსტის კლასიფიკაციის მოდელი პირდაპირ ბრაუზერში გავუშვათ!
```html
transformers_js_py
from transformers_js_py import pipeline
import gradio as gr
classifier = pipeline("sentiment-analysis")
def classify_text(text):
result = classifier(text)[0]
return f"Label: {result['label']}, Score: {result['score']:.2f}"
gr.Interface(fn=classify_text, inputs="text", outputs="text").launch()
```
**სცადეთ:**
ამ მაგალითის გაშვება შეგიძლიათ იხილოთ Hugging Face Static Space-ზე: [https://huggingface.co/spaces/gradio/lite-transformers-js-py](https://huggingface.co/spaces/gradio/lite-transformers-js-py), რომელიც საშუალებას გაძლევთ უფასოდ უმასპინძლოთ სტატიკურ (სერვერის გარეშე) ვებ აპლიკაციებს. ეწვიეთ გვერდს და შეძლებთ მანქანური სწავლების მოდელის გაშვებას ინტერნეტის გარეშე!
@gradio/lite-ის მთავარი უპირატესობა ის არის, რომ ის გამორიცხავს სერვერული ინფრასტრუქტურის საჭიროებას. ეს ამარტივებს დეპლოიმენტს, ამცირებს სერვერთან დაკავშირებულ ხარჯებს და აადვილებს Gradio აპლიკაციების სხვებთან გაზიარებას.
ბრაუზერში გაშვებით, @gradio/lite მომხმარებლებს დაბალ შეყოვნებას (low-latency) სთავაზობს. მონაცემებს არ სჭირდება სერვერზე მოძრაობა, რაც იწვევს უფრო სწრაფ პასუხებს და მომხმარებლის უფრო გლუვ გამოცდილებას.
რადგან ყველა დამუშავება მომხმარებლის ბრაუზერში ხდება, @gradio/lite აუმჯობესებს კონფიდენციალურობასა და უსაფრთხოებას. მომხმარებლის მონაცემები რჩება მათ მოწყობილობაზე, რაც სიმშვიდეს უზრუნველყოფს მონაცემთა დამუშავებასთან დაკავშირებით.
ამჟამად, @gradio/lite-ის გამოყენების ყველაზე დიდი შეზღუდვა ის არის, რომ თქვენი Gradio აპლიკაციები თავდაპირველად ბრაუზერში ზოგადად მეტ დროს (ჩვეულებრივ 5-15 წამს) მოითხოვს ჩასატვირთად. ეს იმიტომ ხდება, რომ ბრაუზერმა უნდა ჩატვირთოს Pyodide runtime, სანამ Python კოდს დაარენდერებს.
ყველა Python პაკეტი არ არის მხარდაჭერილი Pyodide-ის მიერ. მიუხედავად იმისა, რომ `gradio` და მრავალი სხვა პოპულარული პაკეტი (მათ შორის `numpy`, `scikit-learn` და `transformers-js`) შეიძლება დაინსტალირდეს Pyodide-ში, თუ თქვენს აპლიკაციას ბევრი დამოკიდებულება (dependencies) აქვს, ღირს შემოწმება, შედის თუ არა ისინი Pyodide-ში, ან შესაძლებელია თუ არა მათი `micropip`-ით დაინსტალირება.
შეგიძლიათ დაუყოვნებლივ სცადოთ @gradio/lite ამ კოდის ლოკალურ `index.html` ფაილში კოპირებითა და თქვენი ბრაუზერით გახსნით:
```html
Gradio Lite App
import gradio as gr
def greet(name):
return "Hello " + name + "!"
gr.Interface(fn=greet, inputs="text", outputs="text").launch()
```
ჩვენ ასევე შევქმენით Playground Gradio-ს ვებსაიტზე, რომელიც საშუალებას გაძლევთ ინტერაქტიულად შეცვალოთ კოდი და დაუყოვნებლივ ნახოთ შედეგები! Playground: [https://www.gradio.app/playground](https://www.gradio.app/playground)
**მეტი სტატია ჩვენი ბლოგიდან**
მე ვმართავ სემინარს `gradio`-სა და `gradio-lite`-ის გამოყენების შესახებ და მაინტერესებს, რა არის `` ტეგის დანიშნულება. დოკუმენტაცია ამ თემაზე საკმაოდ მწირია და რადგან სხვა ტექნიკურ დოკუმენტაციას ამ ტეგის გამოყენების შესახებ ვერსად ვპოულობ, გადავწყვიტე კითხვა აქ დამესვა. ჩემი ლოგიკით, ეს ტეგი შეიძლება ნიშნავდეს, რომ შესაძლებელია Python ფაილების ჩართვა ფაილური სისტემიდან, რათა კოდი უფრო მოდულარული გახდეს, და მე ვცადე Python ფაილების ჩართვა იმავე საქაღალდიდან, სადაც HTML ფაილია, `rel`-ის გამოყენებით...
თეგები:
#ბრაუზერი
#მანქანური სწავლება
#ვებ დეველოპმენტი
#python
#gradio
#javascript
#gradio-lite
#pyodide
#webassembly
#სერვერის გარეშე
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ტექნოლოგიები
Honor Magic V6: უთხელესი დასაკეცი ტელეფონი? პირველი შთაბეჭდილებები
ტექნოლოგიები
Honor Magic V6: ყველაზე თხელი დასაკეცი სმარტფონი და მისი შთამბეჭდავი შესაძლებლობები
ტექნოლოგიები