להריץ ממשק של 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 2023-10-21 22.28.58 - Photo of a computer server room with red warning lights flashing, indicating a potential cyber threat. Multiple screens display graphs showing a sudde
יסודות בתכנות

מבוא לאבטחת מידע: IDOR

הסבר על התקפה אהובה ומוצלחת שבאמצעותה שואבים מידע מאתרים

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

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

נגישות טכנית – פודקאסט ומבוא

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

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