рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

Python рдореЗрдВ Gradio рдХреЗ рд╕рд╛рде AI рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛

рдЬрд╛рдиреЗрдВ рдХрд┐ Python рдореЗрдВ Gradio рдХреЗ рд╕рд╛рде рддрдХрдиреАрдХреА рдореЙрдбрд▓реЛрдВ рдХреЛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
┬╖ 14 рдорд┐ре░ рдкрдврд╝реЗрдВ

AI рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ

рдЖрдЬ рдХреЗ AI рдореЙрдбрд▓реЛрдВ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдмрд┐рдирд╛ рд╕реБрдЧрдо рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рдлреА рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред Gradio, рдЬреЛ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ Python рд╡реЗрдм UI рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдХреА рдорджрдж рд╕реЗ рдЖрдк LLMs рдФрд░ рдЧреИрд░-рддрдХрдиреАрдХреА рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ AI рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рддреЗрдЬрд╝ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡реНрдпрд╛рдкрдХ рджрд░реНрд╢рдХреЛрдВ рддрдХ рд╕рд░рд▓рддрд╛ рд╕реЗ рддреИрдирд╛рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред

рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЙрди рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЖрдорддреМрд░ рдкрд░ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдЗрд╕рдореЗрдВ Gradio рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рд╢рдмреНрджрд╛рд╡рд▓реА, рд╡рд┐рднрд┐рдиреНрди AI рдореЙрдбрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛, UX рдФрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХреЗ рдЙрдиреНрдирдд рдлрд╝реАрдЪрд░, рддрдерд╛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

Gradio рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд

рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди

рд╣рдо рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ (рд╕рдВрднрд╡ рд╣реЛ рддреЛ Conda) рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ:

$ conda create -n gradio_tutorial python=3.9 -y
$ conda activate gradio_tutorial

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк PIP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Gradio рдФрд░ рдЙрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

$ pip install gradio ipykernel

рд╣рдордиреЗ ipykernel рдкреИрдХреЗрдЬ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо Jupyter рдиреЛрдЯрдмреБрдХреНрд╕ рдХреЗ рднреАрддрд░ рд╣реА Gradio рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджрд┐рдЦрд╛ рд╕рдХреЗрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрдирд╛рдП рдЧрдП рд╡рд░реНрдЪреБрдЕрд▓ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХреЛ Jupyter Lab рдореЗрдВ рдПрдХ рдХрд░реНрдиреЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдХрдорд╛рдВрдб рдпрд╣ рд╣реИ:

$ ipython kernel install --user --name=gradio_tutorial
$ jupyter lab  # Start the lab

рдЗрд╕рд╕реЗ рдЖрдк рдРрд╕рд╛ рдиреЛрдЯрдмреБрдХ рдмрдирд╛ рдкрд╛рдПрдВрдЧреЗ рдЬрд┐рд╕рдХрд╛ рдХрд░реНрдиреЗрд▓ Gradio рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛред рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдорд╛рдирдХ рдЙрдкрдирд╛рдо рд╕реЗ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ:

import gradio as gr
print(gr.__version__)
4.37.1

рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рдФрд░ рд╢рдмреНрджрд╛рд╡рд▓реА

рд╣рдо рдПрдХ тАЬHello WorldтАЭ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЬрд╝рд░рд┐рдП Gradio рдХреА рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рдФрд░ рд╢рдмреНрджрд╛рд╡рд▓реА рд╕реАрдЦреЗрдВрдЧреЗ:

def greet(name):
   return f"Hello, {name}!"
demo = gr.Interface(
   fn=greet,
   inputs=['text'],
   outputs="text",
)
demo.launch()

рдЬрдм рдЖрдк рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдПрдХ рд╕реЗрд▓ рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рдЫреЛрдЯрд╛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдЧрд╛ рдЬреЛ рдХрд╕реНрдЯрдо рдЕрднрд┐рд╡рд╛рджрди рд╕рдВрджреЗрд╢ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:

Gradio рдореЗрдВ Hello World рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ GIF

Gradio рдХреБрдЫ рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  1. Interface: UI рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд░ рдХреНрд▓рд╛рд╕ред
  2. Components: рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рддрддреНрд╡, рдЬреИрд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕, рдЫрд╡рд┐рдпрд╛рдБ рдФрд░ рдСрдбрд┐рдпреЛред рдЕрднреА 30 рд╕реЗ рдЕрдзрд┐рдХ рдмрд┐рд▓реНрдЯ-рдЗрди рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
  3. Functions: Python рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЗрдирдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред
  4. Launch: рдЖрдкрдХрд╛ Gradio рдРрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ред

рдКрдкрд░, рд╣рдордиреЗ рдПрдХ greet рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЬреЛ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рд▓реЗрддрд╛ рдФрд░ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рдХрд╛рд░рдг, рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЛ text рдХреЗ рд░реВрдк рдореЗрдВ Interface рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрджрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рд╣рдо launch рдореЗрдердб рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рд▓реЛрдХрд▓ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред UI рдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рд╣реЗрддреБ, рдЖрдк share рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ True рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ SSH рдЯрдирд▓ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ рдФрд░ Gradio рдРрдк рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡реЗрдмрдкреЗрдЬ рдкрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдЧрд╛:

demo.launch(share=True)
Running on public URL: https://d638ed5f2ce0044296.gradio.live
This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run gradio deploy from Terminal to deploy to Spaces (https://huggingface.co/spaces)

Gradio рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕

Gradio рдРрдк рдмрдирд╛рддреЗ рд╕рдордп рдЖрдк рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рд╡рд┐рднрд┐рдиреНрди рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреЗрдЬ рдкрд░ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП, рдЗрд╕реА рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рддреЛ рдЖрдЗрдП рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛-рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕

Gradio рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпреЗ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдЖрдо рддреМрд░ рдкрд░ рджреЛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрдБрдЯреЗ рд╣реЛрддреЗ рд╣реИрдВ: рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯред

рдЗрдирдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ (рдпрд╣ рдХреЛрдИ рднреА Python рдлрд╝рдВрдХреНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдХреЛ рдбреЗрдЯрд╛ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдЗрдирдкреБрдЯ рд╣реИрдВ:

  • Textbox
  • Image
  • Audio
  • Slider
  • Dropdown

рдпрд╣рд╛рдБ рдПрдХ рдбрдореА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬреЛ рдКрдкрд░ рдХреЗ рдХреБрдЫ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

def process_inputs(text, image, audio, number, option):
   # Process inputs and return results
   return f"Processed: {text}, {number}, {option}"
demo = gr.Interface(
   fn=process_inputs,
   inputs=[
       gr.Textbox(label="Enter text"),
       gr.Image(label="Upload image"),
       gr.Audio(label="Upload audio"),  # Uncomment this line to add audio input
       gr.Slider(0, 100, label="Choose a number"),
       gr.Dropdown(["Streamlit", "Taipy", "Gradio"], label="Select a UI library"),
   ],
   outputs="text",
)
demo.launch()

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, process_inputs рдлрд╝рдВрдХреНрд╢рди рдкрд╛рдБрдЪ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╛рдБрдЪ рдЗрдирдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдмрдирд╛рдиреЗ рд╣реЛрдВрдЧреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ inputs рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрдирдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рд╕рдЦреНрдд рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП UI рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдХрдИ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдФрд░ Gradio рдбреЗрдореЛ

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рд╕рд╛рджрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ text рдХреЗ рдмрдЬрд╛рдп рдЗрдирдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Textbox рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рд╕рдорд░реНрдкрд┐рдд рдХреНрд▓рд╛рд╕реЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХреНрд▓рд╛рд╕реЗрдЬрд╝ рдореЗрдВ рдЙрдкрдпреЛрдЧреА label рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ Slider рдФрд░ Dropdown рдореЗрдВ рд░реЗрдВрдЬ рдФрд░ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВред

рдХрдИ рдЗрдирдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдп рдпреЗ рд╣реИрдВ:

  • Label: рдЯреЗрдХреНрд╕реНрдЯ рдпрд╛ рд╡рд░реНрдЧреАрдХрд░рдг рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛
  • Image: рдкреНрд░реЛрд╕реЗрд╕ рдХреА рдЧрдИ рдпрд╛ рдЬрдирд┐рдд рдЫрд╡рд┐рдпрд╛рдБ рджрд┐рдЦрд╛рдирд╛
  • Audio: рдкреНрд░реЛрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдпрд╛ рдЬрдирд┐рдд рдСрдбрд┐рдпреЛ рдЪрд▓рд╛рдирд╛
  • Plot: рдЧреНрд░рд╛рдлрд╝ рдпрд╛ рдЪрд╛рд░реНрдЯ рджрд┐рдЦрд╛рдирд╛

рдЗрдирдкреБрдЯ рдХреА рддрд░рд╣, рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рднреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛

Gradio рдЖрдкрдХреЛ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реНрдб рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

demo = gr.Interface(
   fn=lambda x: int(x) ** 7,
   inputs=gr.Textbox(
       lines=5,
       placeholder="Enter any number...",
       label="Custom textbox",
       info="This is a customized textbox component to raise any number to the power of 7.",
   ),
   outputs=gr.Textbox(label="And the number is...", show_copy_button=True),
)
demo.launch()

рдХрд╕реНрдЯрдо рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ Gradio рдбреЗрдореЛ

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ Textbox рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрддрд╛рдХрд░, рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓рд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЬреЛрдбрд╝рдХрд░, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдкреА рдмрдЯрди рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рд╣реИред

рд╡рд┐рднрд┐рдиреНрди рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдЙрдирдХреА рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЕрдкрдиреЗ AI рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛ рд╕рдХреЗрдВред рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕реА рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреМрди-рдХреМрди рд╕реА рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЙрд╕рдХреЗ рдбреЙрдХреНрдпреБрдореЗрдВрдЯреНрд╕ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдмреЗрд╣рддрд░ рдпрд╣ рдХрд┐ рдЙрд╕рдХреЗ рдХреНрд▓рд╛рд╕ рдирд╛рдо рдХреЗ рдмрд╛рдж Jupyter Lab рдореЗрдВ ? рдСрдкрд░реЗрдиреНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

Gradio рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХреА рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

LLMs рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛

рдЕрдм рддрдХ рд╕реАрдЦреА рдмрд╛рддреЛрдВ рдХреЛ рд╕рдореЗрдЯрддреЗ рд╣реБрдП, рд╣рдо LLMs рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рджреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдЗрдореЗрдЬ-рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдПрдБрдЧреЗред

рдкрд╣рд▓реЗ, рд╣рдо рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╕реЗ Turkish, Spanish рдпрд╛ Chinese рдореЗрдВ рднрд╛рд╖рд╛ рдЕрдиреБрд╡рд╛рджрдХ рдмрдирд╛рдПрдБрдЧреЗ:

import openai  # pip install openai
def translate_text(api_key, text, target_language):
  
   openai.api_key = api_key  # Set openai API key
  
   language_map = {
       "Turkish": "Turkish",
       "Spanish": "Spanish",
       "Chinese": "Chinese (Simplified)",
   }
   prompt = f"Translate the following English text to {language_map[target_language]}:\n\nEnglish: {text}\n\n{target_language} translation:"
   try:
       response = openai.chat.completions.create(
           model="gpt-4",
           messages=[
               {"role": "system", "content": "You are a professional translator."},
               {"role": "user", "content": prompt},
           ],
       )
       translation = response.choices[0].message.content.strip()
       return translation
   except Exception as e:
       return f"Error: {str(e)}"

рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо translate_text рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рднреАрддрд░ рд╣рдо OpenAI API рдХреБрдВрдЬреА рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рднрд╛рд╖рд╛ рдореИрдк рдмрдирд╛рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдореНрдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдХ try-except рдмреНрд▓реЙрдХ рдХреЗ рднреАрддрд░, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЗ рд╕рд╛рде ChatCompletion рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкрд╣рд▓реА рдкрд╕рдВрдж рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред

рдЕрдм, рд╣рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

iface = gr.Interface(
   fn=translate_text,
   inputs=[
       gr.Textbox(
           placeholder="Enter your OpenAI API key",
           type="password",
           label="OpenAI API Key",
       ),
       gr.Textbox(
           lines=4,
           placeholder="Enter English text to translate...",
           label="English Text",
       ),
       gr.Dropdown(choices=["Turkish", "Spanish", "Chinese"], label="Target Language"),
   ],
   outputs=gr.Textbox(label="Translation", show_copy_button=True),
   title="English to Turkish/Spanish/Chinese Translator",
   description="Translate English text to Turkish, Spanish, or Chinese using OpenAI's GPT-4 model. Enter your OpenAI API key, the text you want to translate, and select the target language.",
)
iface.launch(share=True)

рдХреЛрдб рдкрд╣рд▓реЗ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреИрд╕рд╛ рд╣реА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдХреБрдЫ рдирдП рдЧреБрдг рдкреЗрд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдХрд╛ type рдЖрд░реНрдЧреНрдпреВрдореЗрдВрдЯ рд╕рд╛рджрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдЗрдирдкреБрдЯ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдЫрд┐рдк рдЬрд╛рддрд╛ рд╣реИред
  • Interface рдХреНрд▓рд╛рд╕ рдХреЗ title рдФрд░ description рдЖрд░реНрдЧреНрдпреВрдореЗрдВрдЯ рдкреЗрдЬ рдХреЗ рд╢реАрд░реНрд╖ рдордзреНрдп рдореЗрдВ H1 рд╢реАрд░реНрд╖рдХ рдФрд░ рдЙрдкрд╢реАрд░реНрд╖рдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдПрдХ Gradio рдРрдк рдЬреЛ рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рдХреЛ Turkish/Spanish/Chinese рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ

рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА API рдХреБрдВрдЬреА рдРрдк рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдХрд░ рдХреНрдпреЛрдВ рдорд╛рдБрдЧ рд░рд╣реЗ рд╣реИрдВ, рдмрдЬрд╛рдп рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг Gradio рдХреЗ UI рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдпрджрд┐ рд╣рдо рдЕрдкрдиреА API рдХреБрдВрдЬреА рдХреЛ рдПрдХ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ (рдЬреЛ рдорд╛рдирдХ рдкреНрд░рдерд╛ рд╣реИ), рддреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдРрдк рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реЗ рд╣рдорд╛рд░реЗ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рд╣реЛрддреАред рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ HuggingFace Spaces рдкрд░ рддреИрдирд╛рддреА рдХрд░рдХреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдПрдХ рдФрд░ UI рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЫрд╡рд┐рдпрд╛рдБ рдЬрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИ:

def generate_surrealist_art(api_key, prompt):
   surrealist_prompt = f"Create a surrealist artwork based on the following concept: {prompt}. The artwork should be dreamlike, with unexpected juxtapositions and a sense of the uncanny."
   client = OpenAI(api_key=api_key)
   response = client.images.generate(
       model="dall-e-3",
       prompt=surrealist_prompt,
       size="1024x1024",
   )
   image_url = response.data[0].url
   return image_url

рд╣рдордиреЗ generate_surrealist_art рдирд╛рдордХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдпрд╛ рдЬреЛ dall-e-3 рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реБрд░реНрд░рд┐рдпрд▓рд┐рд╕реНрдЯ рдкреНрд░реЙрдореНрдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрдирд┐рдд рдЫрд╡рд┐ рдХрд╛ URL рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛрдмрд╛рд░рд╛ Interface рдХреНрд▓рд╛рд╕ рдореЗрдВ рдлрд╝реАрдб рдХрд░реЗрдВрдЧреЗ:

iface = gr.Interface(
   fn=generate_surrealist_art,
   inputs=[
       gr.Textbox(
           placeholder="Enter your OpenAI API key",
           type="password",
           label="OpenAI API Key",
       ),
       gr.Textbox(
           lines=2,
           placeholder="Describe your surrealist concept...",
           label="Concept Description",
       ),
   ],
   outputs=gr.Image(value="str"),
   title="Surrealist Artwork Generator",
   description="Generate surrealist artwork based on your prompts using DALL-E. Enter your OpenAI API key and describe your concept.",
)
iface.launch(share=True)

рд╣рдордиреЗ API рдХреБрдВрдЬреА рдФрд░ рдЙрд╕ рдХреЙрдиреНрд╕реЗрдкреНрдЯ рдХреЗ рд▓рд┐рдП рджреЛ рдЗрдирдкреБрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рд╕реБрд░реНрд░рд┐рдпрд▓рд┐рд╕реНрдЯ рдЫрд╡рд┐ рдореЗрдВ рдкрдХрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдлрд┐рд░, рд╣рдордиреЗ рдЬрдирд┐рдд рдЫрд╡рд┐ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Image рдХреНрд▓рд╛рд╕ рд╕реЗ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдмрдирд╛рдпрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ value рдЖрд░реНрдЧреНрдпреВрдореЗрдВрдЯ рдХреЛ str рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ URLs рд╕реЗ рдЫрд╡рд┐рдпрд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред

рдФрд░ рдпрд╣ рд░рд╣рд╛ рдкрд░рд┐рдгрд╛рдо:

рдЗрдореЗрдЬ-рдЖрдзрд╛рд░рд┐рдд Gradio рдРрдк рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ GIF

рдХреНрд▓рд╛рд╕рд┐рдХ ML рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛

рдЕрдм, рдЖрдЗрдП рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЯреИрдмреБрд▓рд░ рд░рд┐рдЧреНрд░реЗрд╢рди рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдо Seaborn рдореЗрдВ рдЙрдкрд▓рдмреНрдз Diamonds рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдПрдХ рдирдпрд╛ рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдмрдирд╛рдПрдБ рдФрд░ рдЙрд╕рдХреЗ рдЕрдВрджрд░ app.py рдирд╛рдордХ рдПрдХ рдирдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВред рдлрд┐рд░, рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ, Scikit-learn рдХреА Pipeline рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдФрд░ RandomForestRegression рдореЙрдбрд▓ рдЯреНрд░реЗрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдЗрд╕ GitHub gist рд╕реЗ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред

GitHub gist рдХрд╛ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

рдЕрдЧрд▓рд╛ рдХрджрдо рдПрдХ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ Diamonds рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (features) рдЬрд┐рддрдиреЗ рд╣реА рдЗрдирдкреБрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реЛ:

# Create the Gradio interface
def predict_price(carat, cut, color, clarity, depth, table, x, y, z):
  
   input_data = pd.DataFrame(
       {
           "carat": [carat],
           "cut": [cut],
           "color": [color],
           "clarity": [clarity],
           "depth": [depth],
           "table": [table],
           "x": [x],
           "y": [y],
           "z": [z],
       }
   )
  
   prediction = model.predict(input_data)[0]
   return f"Predicted Price: ${prediction:.2f}"

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрди рдЗрдирдкреБрдЯреНрд╕ рдХреЛ DataFrame рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреА .predict() рдореЗрдердб рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдЕрдиреБрдорд╛рдирд┐рдд рдХреАрдордд рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЕрдм, Interface рдХреНрд▓рд╛рд╕ рдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛: рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреМ рдЗрдирдкреБрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рдХреАрдордд рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдЙрдЯрдкреБрдЯ:

iface = gr.Interface(
   fn=predict_price,
   inputs=[
       gr.Slider(
           minimum=diamonds["carat"].min(),
           maximum=diamonds["carat"].max(),
           label="Carat",
       ),
       gr.Dropdown(["Fair", "Good", "Very Good", "Premium", "Ideal"], label="Cut"),
       gr.Dropdown(["D", "E", "F", "G", "H", "I", "J"], label="Color"),
       gr.Dropdown(
           ["I1", "SI2", "SI1", "VS2", "VS1", "VVS2", "VVS1", "IF"], label="Clarity"
       ),
       gr.Slider(
           minimum=diamonds["depth"].min(),
           maximum=diamonds["depth"].max(),
           label="Depth",
       ),
       gr.Slider(
           minimum=diamonds["table"].min(),
           maximum=diamonds["table"].max(),
           label="Table",
       ),
       gr.Slider(minimum=diamonds["x"].min(), maximum=diamonds["x"].max(), label="X"),
       gr.Slider(minimum=diamonds["y"].min(), maximum=diamonds["y"].max(), label="Y"),
       gr.Slider(minimum=diamonds["z"].min(), maximum=diamonds["z"].max(), label="Z"),
   ],
   outputs="text",
   title="Diamond Price Predictor",
   description="Enter the characteristics of a diamond to predict its price.",
)
iface.launch(share=True)

рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрджрд░, рд╣рдо рд╢реНрд░реЗрдгреАрдмрджреНрдз рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рддреАрди рдбреНрд░реЙрдкрдбрд╛рдЙрди рдмрдирд╛рддреЗ рд╣реИрдВред рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реАрдЪрд░ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рд╕реЗ рднрд░рд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдлрд╝реАрдЪрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЫрд╣ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рднреА рдмрдирд╛рддреЗ рд╣реИрдВред рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕ рдХреА рд░реЗрдВрдЬ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реАрдЪрд░ рдХреЗ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдорд╛рдиреЛрдВ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред

рдЕрдм рдмрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдХрд░ рдРрдк рдХреЛ рд░рди рдФрд░ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВ:

$ python app.py

рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ:

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдбрд┐рдкреНрд▓реЙрдп рдХрд┐рдП рдЧрдП Gradio рдбреЗрдореЛ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ GIF

рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдФрд░ рдЕрдиреБрдХреВрд▓рди рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП Best Practices рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдБред

Gradio рдРрдкреНрд╕ рддреИрдирд╛рдд рдХрд░рдирд╛

рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдЖрд░реНрдЧреНрдпреВрдореЗрдВрдЯ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ Gradio рдРрдкреНрд╕ рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдореЛ 72 рдШрдВрдЯреЗ рдХреЗ рднреАрддрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, Gradio рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╡рд┐рдзрд┐ HuggingFace Spaces рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред HuggingFace рдиреЗ 2021 рдореЗрдВ Gradio рдХрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рджреЛрдиреЛрдВ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдмреАрдЪ рдПрдХреАрдХрд░рдг рд╕рд╣рдЬ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдпрд╛ Gradio рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рднрд╡рд┐рд╖реНрдп рдХреЗ рдХрд┐рд╕реА рднреА рдРрдк рдХреЗ рд▓рд┐рдП, huggingface.co рдкрд░ рдПрдХ рдореБрдлрд╝реНрдд рдЦрд╛рддрд╛ рдмрдирд╛рдПрдБ рдФрд░ Settings > Tokens рдкрд░ рдЬрд╛рдХрд░ рдПрдХ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ:

Hugging Face рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ GIF

рдЯреЛрдХрди рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╣реАрдВ рд╕рд╣реЗрдЬ рд▓реЗрдВред

рдЗрд╕ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде, рдЖрдк Spaces рдкрд░ рд╕реНрдерд╛рдпреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЬрд┐рддрдиреЗ рдЪрд╛рд╣реЗрдВ рдЙрддрдиреЗ Gradio рдРрдкреНрд╕ рдбрд┐рдкреНрд▓реЙрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░, рд╣рдо рдкрд┐рдЫрд▓реЗ рд╕реЗрдХреНрд╢рди рдХреЗ Diamond Prices Prediction рдореЙрдбрд▓ рдХреЛ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рд▓рдЧреЗрдЧрд╛ред

рдЖрдкрдХреЛ рдмрд╕ UI рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рд▓реА рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрд░ рдЬрд╛рдирд╛ рд╣реИ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ gradio deploy рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ:

рдЯрд░реНрдорд┐рдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Gradio рдРрдк рдХреЛ рдХреИрд╕реЗ рдбрд┐рдкреНрд▓реЙрдп рдХрд░реЗрдВ, рдЗрд╕рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

рдЯрд░реНрдорд┐рдирд▓ рдЖрдкрдХреЛ рдЖрдкрдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд╛рд░реНрдпрд╢реАрд▓ HuggingFace Space рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд╝рд╛рд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╡рд░рдг рдкреВрдЫрддрд╛ рд╣реИ:

  • рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди
  • Space рдХрд╛ рд╢реАрд░реНрд╖рдХ: рдпрд╣ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рдмрд╛рдж Space URL рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛
  • Gradio UI рдХреЛрдб рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо (рдбрд┐рдлрд╝реЙрд▓реНрдЯ app.py)
  • Space рдХрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░; рдХреЗрд╡рд▓ CPU (рдореБрдлрд╝реНрдд) рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджреЗрдВ
  • рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдИ рднреА рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ (рдпрд╣реАрдВ рдкрд░ рдЖрдк API рдХреБрдВрдЬрд┐рдпрд╛рдБ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд╣рд╕реНрдп рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд░рдЦрддреЗ рд╣реИрдВ)
  • рдирд┐рд░реНрднрд░рддрд╛рдПрдБ тАФ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ ENTER рджрдмрд╛рдХрд░ рдПрдХ-рдПрдХ рдХрд░ рджрд░реНрдЬ рдХрд░реЗрдВ

рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдЖрдкрдХреЛ рдбрд┐рдкреНрд▓реЙрдп рдХрд┐рдП рдЧрдП Space рдХрд╛ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

image.png

рдЗрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рдзрд┐ рдХреА рдПрдХ рдФрд░ рдЦрд╝реВрдмреА рдпрд╣ рд╣реИ рдХрд┐ Gradio рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдореЛ рдХреЛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ REST API рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдФрд░ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рд╣рдореЗрд╢рд╛ рд╕рдмрд╕реЗ рдиреАрдЪреЗ рд╣реЛрддреЗ рд╣реИрдВ:

Gradio рдРрдк рдбреЗрдореЛ рдХреЗ API рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓рд╛ GIF

рддреЛ, рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЧреИрд░-рддрдХрдиреАрдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рд╕реНрдерд╛рдпреА UI рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдФрд░ рдЖрдкрдХреЗ рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рд╡ рдбреЗрд╡рд▓рдкрд░ рдорд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП REST API тАФ рджреЛрдиреЛрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдЕрдзрд┐рдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ рд╡реЗрдмрдкреЗрдЬ рдореЗрдВ рдбреЗрдореЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛, рдРрдкреНрд╕ рдореЗрдВ Google рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЬреЛрдбрд╝рдирд╛, рдЖрджрд┐, Gradio рдХреЗ тАЬSharing Your AppтАЭ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдБред

Gradio рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдБ рдФрд░ рд╕реБрдЭрд╛рд╡

Gradio рдХреЗ рд╕рд╛рде рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдФрд░ рдЖрдкрдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЕрдиреБрд░рдХреНрд╖рдгреАрдпрддрд╛ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдкреНрд░рдореБрдЦ рд╕рд┐рдлрд╝рд╛рд░рд┐рд╢реЗрдВ рд╣реИрдВ:

1. рд╕рдВрдЧрдарди рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдгреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдмреЗрд╣рддрд░ рд╡рд░реНрд╢рди рдирд┐рдпрдВрддреНрд░рдг, рд╕рд╣рдпреЛрдЧ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП Gradio рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВред

2. рдХреЙрдореНрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдЖрд╡рдВрдЯрди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдВ

рд╕рдВрддреБрд▓рд┐рдд, рд░реЗрд╕реНрдкреЙрдиреНрд╕рд┐рд╡ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЖрдХрд╛рд░ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдЯреВрд▓реНрд╕ (рдЬреИрд╕реЗ, gr.Column(), gr.Row()) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

3. рд╡реНрдпрд╛рдкрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВ

рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢ рдФрд░ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рд╣реЗрддреБ тАШinfoтАЩ рдФрд░ тАШlabelтАЩ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

4. рдмрдбрд╝реЗ рдлрд╝реАрдЪрд░ рд╕реЗрдЯ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВ

рдЕрдиреЗрдХ рдлрд╝реАрдЪрд░реНрд╕ рд╡рд╛рд▓реЗ рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдмреИрдЪ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╕рд░рд▓ рд░рдЦрдиреЗ рд╣реЗрддреБ рдлрд╝рд╛рдЗрд▓ рдЗрдирдкреБрдЯ (CSV, JSON) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

5. рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рд╕рд╣реА рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВ

рд▓реЛрдХрд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП python-dotenv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП Hugging Face Spaces рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╕реЗрдЯ рдХрд░реЗрдВред

6. рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди рдФрд░ рд╡реИрд▓рд┐рдбреЗрд╢рди рд▓рд╛рдЧреВ рдХрд░реЗрдВ

рдЗрдирдкреБрдЯреНрд╕ рдХреЛ рдорд╛рдиреНрдп рдХрд░реЗрдВ, рд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрдВ, рдФрд░ рд╕рд╣рдЬ рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП try-except рдмреНрд▓реЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

7. рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдВ

рдХреИрд╢рд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдмрдбрд╝реЗ рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдЬрд╝реА рд▓реЛрдбрд┐рдВрдЧ рдХрд░реЗрдВ, рдФрд░ рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП gr.LoadingStatus() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

8. рдЕрднрд┐рдЧрдореНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ

рдЙрдЪреНрдЪ рдХрдВрдЯреНрд░рд╛рд╕реНрдЯ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ, рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП alt рдЯреЗрдХреНрд╕реНрдЯ рджреЗрдВ, рдФрд░ рд╕рднреА рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдХреНрд╖рдо рдХрд░реЗрдВред

9. рдкреНрд░реЛрдЧреНрд░реЗрд╕рд┐рд╡ рдбрд┐рд╕реНрдХреНрд▓реЛрдЬрд╝рд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ

рдЬрдЯрд┐рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреЙрд░реНрдбрд┐рдпрди рдпрд╛ рдЯреИрдмреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдЬрд╝рд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЙрдиреНрдирдд рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдПрдБред

10. рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдФрд░ рдЕрдиреБрд░рдХреНрд╖рдг рдХрд░реЗрдВ

рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЕрджреНрдпрддрди рд░рдЦреЗрдВ, рдмрдЧреНрд╕ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реАрдбрдмреИрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░рдВрддрд░ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВред

11. HuggingFace рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдБ

Gradio рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдмрд╛рдз рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП HuggingFace рдХреЗ рдЯреВрд▓реНрд╕ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рдирдореЗрдВ рдореЙрдбрд▓ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

12. рдмрдбрд╝реЗ рдореЙрдбрд▓реЛрдВ рдХреЛ HuggingFace Hub рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд░реЗрдВ

рдмрдбрд╝реЗ рдЯреИрдмреБрд▓рд░ рдореЙрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ HuggingFace Hub рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ Gradio рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реАрдзреЗ рд▓реЛрдб рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдмреЗрд╣рддрд░ рд╣реЛ рдФрд░ рд▓реЛрдХрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдХрдо рд╣реЛрдВред

13. HuggingFace рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ HuggingFace Hub рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ Gradio рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕реАрдзреЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛ рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рд╕рдордп рдмреЗрд╣рддрд░ рд╣реЛред

рдирд┐рд╖реНрдХрд░реНрд╖ рдФрд░ рдЖрдЧреЗ рдХреЗ рд╕рдВрд╕рд╛рдзрди

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ Gradio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ AI рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдирд╛ рд╕реАрдЦрд╛ред рд╣рдордиреЗ рдЕрднреА рд╕рддрд╣ рдХреЛ рд╣реА рдЫреБрдЖ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Gradio рдЬрдЯрд┐рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдФрд░ рдлрд╝реАрдЪрд░реНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, interface state рдЖрдкрдХреЗ рдРрдк рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ рджреВрд╕рд░реА рддрдХ рдЖрдЙрдЯрдкреБрдЯ рдпрд╛рдж рд░рдЦрдиреЗ рджреЗрддрд╛ рд╣реИред Reactive interfaces рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдмрджрд▓рддреЗ рд╣реА UI рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓ рджреЗрддреА рд╣реИрдВред Blocks рдХреЗ рд╕рд╛рде, рдЖрдк рдХрд╕реНрдЯрдо рд▓реЗрдЖрдЙрдЯ рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрдиреЛрдВ рд╡рд╛рд▓реЗ рдРрдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕реА рддрд░рд╣, рдЕрдзрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рджреЗрдЦреЗрдВ:

рд╡рд┐рд╖рдп