Gradio-ს გადატვირთვის რეჟიმი: ხელოვნური ინტელექტის აპლიკაციების სწრაფი შექმნა
ეს სტატია განმარტავს Gradio-ს გადატვირთვის რეჟიმის (reload mode) მუშაობის პრინციპს, რაც დეველოპერებს საშუალებას აძლევს, ავტომატურად განაახლონ კოდის ცვლილებები სერვერის გადატვირთვის გარეშე. აღწერილია, თუ როგორ შეიძლება ამ რეჟიმის გამოყენება ხელოვნური ინტელექტის აპლიკაციის სწრაფად შესაქმნელად Hugging Face Inference API-სა და LLM-ების მეშვეობით, რომელიც დოკუმენტების სურათებიდან შეკითხვებზე პასუხებს ბუნებრივ ენაზე გასცემს.
მარტივად რომ ვთქვათ, Gradio-ს გადატვირთვის რეჟიმი (reload mode) იღებს უახლეს ცვლილებებს თქვენი საწყისი ფაილებიდან Gradio სერვერის გადატვირთვის გარეშე. თუ ეს ჯერ კიდევ გაუგებარია, გთხოვთ, განაგრძოთ კითხვა.
Gradio არის პოპულარული Python ბიბლიოთეკა ინტერაქტიული მანქანური სწავლების აპლიკაციების შესაქმნელად. Gradio-ს დეველოპერები UI-ს განლაგებას სრულად Python-ში აცხადებენ და ამატებენ Python ლოგიკას, რომელიც გააქტიურდება UI მოვლენისას. მისი სწავლა მარტივია, თუ საბაზისო Python გესმით. გაეცანით ამ სწრაფ სტარტს, თუ ჯერ არ იცნობთ Gradio-ს.
Gradio აპლიკაციები იშვება ისევე, როგორც ნებისმიერი სხვა Python სკრიპტი, უბრალოდ გაუშვით `python app.py` (ფაილს Gradio კოდით შეიძლება ნებისმიერი სახელი ერქვას). ეს დაიწყებს HTTP სერვერს, რომელიც გამოსახავს თქვენი აპლიკაციის UI-ს და რეაგირებს მომხმარებლის ქმედებებზე. თუ გსურთ ცვლილებების შეტანა აპლიკაციაში, აჩერებთ სერვერს (ჩვეულებრივ, Ctrl + C-ით), არედაქტირებთ საწყის ფაილს და შემდეგ ხელახლა უშვებთ სკრიპტს. სერვერის შეჩერებამ და ხელახლა გაშვებამ შეიძლება გამოიწვიოს დიდი შეფერხება აპლიკაციის შემუშავებისას. უკეთესი იქნება, თუ არსებობდა გზა, რომ ავტომატურად მიეღო კოდის უახლესი ცვლილებები, რათა მყისიერად შეგეძლოთ ახალი იდეების ტესტირება. სწორედ ამას აკეთებს Gradio-ს გადატვირთვის რეჟიმი. უბრალოდ გაუშვით `gradio app.py` `python app.py`-ის ნაცვლად, რათა თქვენი აპლიკაცია გადატვირთვის რეჟიმში გაუშვათ!
Gradio აპლიკაციები იშვება uvicorn-ით, ასინქრონული სერვერით Python ვებ ფრეიმვორკებისთვის. Uvicorn უკვე გთავაზობთ ავტომატურ გადატვირთვას, მაგრამ Gradio ახორციელებს საკუთარ ლოგიკას შემდეგი მიზეზების გამო:
ახლა გაჩვენებთ, თუ როგორ შეგიძლიათ გამოიყენოთ Gradio-ს გადატვირთვის რეჟიმი AI აპლიკაციის სწრაფად შესაქმნელად. ჩვენი აპლიკაცია მომხმარებლებს საშუალებას მისცემს ატვირთონ დოკუმენტების სურათები და დაუსვან მათ შეკითხვები. ისინი მიიღებენ პასუხებს ბუნებრივ ენაზე. ჩვენ გამოვიყენებთ უფასო Hugging Face Inference API-ს, ასე რომ თქვენ შეძლებთ ყველაფრის გაკეთებას თქვენი კომპიუტერიდან. GPU არ არის საჭირო!
დასაწყებად, მოდით შევქმნათ ძირითადი `gr.Interface`. ჩაწერეთ შემდეგი კოდი `app.py` ფაილში და გაუშვით გადატვირთვის რეჟიმში `gradio app.py` ბრძანებით: ეს ქმნის შემდეგ მარტივ UI-ს (მომხმარებლის ინტერფეისს). რადგან მსურს მომხმარებლებმა ატვირთონ სურათები თავიანთ შეკითხვებთან ერთად, შევცვლი შემავალ კომპონენტს `gr.MultimodalTextbox()`-ზე. შეამჩნიეთ, როგორ განახლდება UI მყისიერად! ეს UI მუშაობს, მაგრამ ვფიქრობ, უკეთესი იქნება, თუ შემავალი ტექსტბოქსი იქნებოდა გამომავალი ტექსტბოქსის ქვემოთ. ამის გაკეთება შემიძლია Blocks API-ის გამოყენებით. მე ასევე ვახდენ შემავალი ტექსტბოქსის პერსონალიზაციას, ვამატებ შემავსებელ ტექსტს მომხმარებლების გასაყოლებლად.
ახლა, როდესაც კმაყოფილი ვარ UI-ით, დავიწყებ `chat_fn` ლოგიკის იმპლემენტაციას. რადგან Hugging Face-ის Inference API-ს გამოვიყენებ, შემოვიტან `InferenceClient`-ს `huggingface_hub` პაკეტიდან (ის Gradio-სთან ერთად დაყენებულია). მომხმარებლის შეკითხვაზე პასუხის გასაცემად გამოვიყენებ `impira/layouylm-document-qa` მოდელს. შემდეგ გამოვიყენებ `HuggingFaceH4/zephyr-7b-beta` LLM-ს, რათა პასუხი ბუნებრივ ენაზე მივაწოდო.
ეს არის ჩვენი დემო მოქმედებაში! მე ასევე მივაწვდი სისტემურ შეტყობინებას, რათა LLM-მა პასუხები შეინარჩუნოს მოკლედ და არ შეიცავდეს ნედლ სანდოობის ქულებს. `InferenceClient`-ის ყოველ ცვლილებაზე ხელახალი ინსტანცირების თავიდან ასაცილებლად, მას მოვათავსებ „გადატვირთვის გარეშე“ (no reload) კოდის ბლოკში.
ეს არის ჩვენი დემო ახლა მოქმედებაში! სისტემურმა შეტყობინებამ ნამდვილად შეუწყო ხელი ბოტის პასუხების მოკლედ შენარჩუნებას და გრძელი ათობითი რიცხვების გარეშე. როგორც საბოლოო გაუმჯობესება, დავამატებ markdown სათაურს გვერდზე:
ამ პოსტში, მე შევქმენი მოქმედი AI აპლიკაცია Gradio-სა და Hugging Face Inference API-ის გამოყენებით. როდესაც ამის შემუშავება დავიწყე, არ ვიცოდი, როგორი იქნებოდა საბოლოო პროდუქტი, ამიტომ UI-სა და სერვერის ლოგიკის მყისიერმა გადატვირთვამ საშუალება მომცა ძალიან სწრაფად მემუშავა სხვადასხვა იდეაზე. მთელი ამ აპლიკაციის შესაქმნელად დაახლოებით ერთი საათი დამჭირდა! თუ გსურთ ნახოთ ამ დემოს სრული კოდი, გთხოვთ, შეამოწმოთ ეს სივრცე! მეტი სტატია ჩვენი ბლოგიდან. დარეგისტრირდით ან შეხვიდეთ კომენტარისთვის.
თეგები:
#ხელოვნური ინტელექტი
#llm
#მანქანური სწავლება
#ვებ დეველოპმენტი
#hugging face
#python
#gradio
#გადატვირთვის რეჟიმი
#დოკუმენტაციის კითხვა-პასუხი
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ხელოვნური ინტელექტი
Anthropic-ის Claude-ის აღზევება Apple App Store-ის რეიტინგებში პენტაგონთან მოლაპარაკებების ფონზე
ხელოვნური ინტელექტი
ტრამპის ადმინისტრაცია Anthropic-ს სანქციებს უწესებს ხელოვნური ინტელექტის გამოყენებაზე უარის გამო: ექსპერტი ინდუსტრიის უსაფრთხოების ხარვეზებზე საუბრობს
ხელოვნური ინტელექტი