Ce face Gradio (gr.Interface și gr.ChatInterface)
Gradio transformă o funcție Python într-o aplicație web. gr.Interface(fn, inputs, outputs) creează un formular pentru funcții cu una sau mai multe intrări și ieșiri. gr.ChatInterface(fn) creează o interfață de chat; funcția primește message și history (o listă de dicționare în stil OpenAI, cu role și content). gr.Blocks() dă control complet asupra layout-ului.
Dacă funcția de chat folosește yield, răspunsul apare progresiv (streaming). Rulată dintr-un fișier, aplicația pornește pe http://localhost:7860.
demo.launch(share=True) creează un link public de forma https://xxxx.gradio.live. Serverele Gradio Share sunt doar un proxy către serverul tău local și nu stochează date. Linkurile expiră după o săptămână; pentru găzduire permanentă folosești Hugging Face Spaces.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
gr.Interface(fn, inputs, outputs) |
Interfață pentru o funcție. |
gr.ChatInterface(fn) |
Interfață de chat; fn(message, history). |
gr.Blocks() |
Layout personalizat. |
launch(share=True) |
Link public temporar (o săptămână). |
ChatInterface(examples=[...]) |
Exemple afișate ca butoane înainte de primul mesaj. |
Exemple practice
Exemplul 1: Interfață simplă
import gradio as gr
def greet(name):
return "Hello " + name + "!"
demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
demo.launch()
Exemplul 2: Chat cu streaming
import time
import gradio as gr
def slow_echo(message, history):
for i in range(len(message)):
time.sleep(0.05)
yield "You typed: " + message[: i+1]
gr.ChatInterface(slow_echo).launch()
Exemplul 3: Apelare din alt script Python
from gradio_client import Client
client = Client("http://localhost:7860")
Greșeli frecvente și bune practici
- Folosești linkul
shareca adresă permanentă. Expiră după o săptămână; pentru găzduire stabilă publici aplicația într-un Space. - Scrii funcția de chat cu altă ordine a argumentelor. Gradio trimite întâi mesajul, apoi istoricul.
- Returnezi tot textul la fiecare pas de streaming și te temi de trafic. Gradio trimite către browser doar diferența față de mesajul anterior.