להריץ ממשק של open-webui על הרספברי פיי

להפעיל ממשק של צ׳אט ג׳יפיטי שאפשר לגשת אליו מכל מחשב ברשת הביתית על רספברי פיי עם מודל בשם tinydolphin שרץ על רספברי פיי.

בפוסט הקודם הראיתי איך להתקין ollama על רספברי פיי שבעצם מריץ בינה מלאכותית מסוג LLM על המכונה הקטנה של רספברי פיי. אפשר להפעיל את זה כחלק מה-CLI. בסוף, הזכרתי שאפשר להתקין גם ממשק וובי. אז למה שלא נעשה את זה ונבנה ממשק משלנו?

המערכת הגרפית שאיתה עובדים נקראת open-webui. מאד קל להתקין אותה עם דוקר על כל מחשב, עם רספברי פיי זה קצת טריקי אבל אנחנו נצליח. אני יוצא מנקודת הנחה שהתקנתם את ollama ואחד המודלים. אפשר להתקין כמה, אגב.

השלב הבא הוא להתקין דוקר. כתבתי מדריך קצר שמסביר על מה זה דוקר ואיך אפשר להתקין אותו על רספברי פיי. אם אתם לא רוצים לקרוא זה בסדר גמור – פשוט הקלידו:

curl -sSL https://get.docker.com |sh

כדי לבדוק שהכל הותקן כמו שצריך, יש להקליד:

sudo docker run hello-world

אם הכל תקין, נראה משהו כזה:

פלט של הפקודה:
sudo docker run hello-world
מה שמעניין הוא שתי השורות הראשונות:
Hello from Docker!
This message shows that your installation appears to be working correctly.

חשוב מאד להתקין את הדוקר כך ולא בדרך אחרת שמועדת לפורענות על רספברי.

השלב הבא הוא להפעיל את open-webui. יש להם בדוקומנטציה הסברים על ההפעלה, יש להתעלם מהם אם אתם מתקינים על רספברי פיי שאתם ניגשים אליו ממכונה אחרת ולהריץ את הפקודה הבאה:

sudo docker run -d -v open-webui:/app/backend/data --name open-webui --restart always --network host ghcr.io/open-webui/open-webui:main

הפקודה הזו אומרת להריץ בעצם את הקונטיינר של open-webui ושירוץ בלוקלהוסט. בגדול מבחינה אבטחתית זה לא להיט (ואני מקווה שאתם מגינים על הרספברי פיי שלכם ברשת הביתית) אם אתם רוצים לחשוף את המכשיר הזה החוצה, כדאי להשתמש ב-docker compose. בסנריו הזה, אני חושב שזה מיותר.

אני רק מזהיר שזה יקח זמן. לכו תכינו קפה/תה/שוקו או (במקרה שלי) תלכו להתקוטט עם הילדים.

התקנה של open-webui בדוקר, מה שחשוב הוא לראות כמה זמן זה לוקח להתקין!

אחרי פרק זמן ארוך, הכל ייגמר. אפשר להקליד sudo docker ps כדי לראות שהכל תקין ואז להכנס אל:

http://raspberrypi.local:8080

או כל הוסט אחר אם הגדרתם הוסט אחר (אצלי למשל זה http://raspberrypi4.local:8080 כי זה המכשיר הרביעי מבין שישה שיש לי בבית כי אני מופרע). ותכנסו לממשק.

זה לא עובד 😡

לא נכנסים לממשק? יש לכם This site can’t be reached? שימו לב שאתם על אותה רשת עם הרספברי פיי ותנסו גם לגשת עם ping להוסט שלכם כדי לראות שאתם רואים אותו.

הגדרת שם משתמש וסיסמה

אחרי הכניסה לממשק, אתם תידרשו להגדיר שם משתמש וסיסמה – אל דאגה – זה לא נשלח לשום מקום אלא נשמר על הרספברי פיי.

מסך הרשמה של open webui.

יפתח בפנינו צ׳אט שמאד מזכיר בעיצוב את ChatGPT. אבל עדיין לא סיימנו. יש ללכת אל ההגדרות כדי לחבר את שרת ה-ollama אל הממשק הגרפי הנאה. אנו ניגש אל settings ונבחר ב-connections. ונכניס את הכתובת הזו:

http://localhost:11434

נלחץ על אישור ונוסיף תפילה חרישית שהכל עובד. אם נראה סמן ירוק שבו כתוב Server connection verified, אז נדע שהכל הצליח.

מסך ההגדרות, לשונית Connections היא הלשונית הפעילה, בשדה עם השם Ollama Base URL כתוב http://localhost:11434

נשמור ואז נחזור לממשק.

זה לא עובד 😡

אני מת (!) על זה שבפוסטים ומדריכים הכל עובד אבל אצלי הכל מתפוצץ. אם אתם מקבלים תקלה של ״WebUI could not connect to Ollama״ יש מה לעשות:

  1. הריצו docker ps על המכונה, האם רואים שם את הדוקר? אם לא, הריצו אותו שוב.
  2. אם כן יש את הדוקר ברשימה, תסתכלו בפנים באמצעות הפקודה sudo docker logs open-webui כדי לראות אם יש לוגים או הודעות שגיאה.
  3. הקלידו ollama serve כדי לראות שבאמת השרת של ollama עובד.
  4. ריסטארט לרספברי פיי מעולם לא הזיק.

הפעלת הממשק!

השלב הבא הוא פשוט לתפעל את הממשק ולשאול שאלות! אפשר להפעיל כמה מודלים.

הפעלת הצ׳אט של open web ui בתמונה יש צילום מסך של צ׳אט עם ממשק נאה שדומה מאד לזה של צ׳אט ג׳יפיטי, חוץ מזה שהוא רץ על רספברי פיי. המודל פה הוא tinydolphin.
זהה לתמונה הקודמת, אבל עם מודל phi3.

ו… זהו! עוד דבר משעשע במיוחד להפעיל על המחשב הקטן הזה. כמובן שהאקשן האמיתי זה לחבר AI ל-IoT. אבל זה לגמרי אפשרי.

פוסטים נוספים שכדאי לקרוא

DALL·E 2024-09-06 12.34.24 - A visually engaging post about Python and cryptographic problems. The image should feature a dark-themed background with a glowing, futuristic Python
פתרונות ומאמרים על פיתוח אינטרנט

בעיות במימוש של פונקציות קריפטוגרפיות בפייתון

היום (16 לספטמבר) ממש, אני מעביר הרצאה ב-PyconIL 2024 על בעיות קריפטוגרפיות באפליקציות פייתון. לצערי אי אפשר להכניס את כל הבעיות הקריפטוגרפיות להרצאה אחת או

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

מיקרו בקרים

חיבור מצלמה למיקרובקר

חיבור מצלמה למיקרו בקר ויצירה של מצלמת אבטחה מרחוק בעלות של 20 שקל.

גלילה לראש העמוד