מערכת לסיכום שיעורים: 1$ לשיעור, 100% שליטה

איך בניתי אוטומציה שמסכמת שיעורים ארוכים – בערך 1$ לשיעור של 3 שעות ?
בעקבות צורך של חבר בניתי אוטומציה שלוקחת הקלטה, מתמללת אותה, ומוציאה ממנה גם נקודות עיקריות וגם קובץ סיכום מסודר – הכל בעלות זניחה ובלי להיות תלוי בשירותים יקרים.

הבסיס לכל התהליך הוא Google Sheet אחד שמנהל את כל השלבים כמו לוח בקרה – כל שורה מייצגת שיעור, ובכל עמודה רואים באיזה שלב הוא נמצא (הועלה, תומלל, יש נקודות עיקריות, יש סיכום). זה נותן שליטה מלאה ושקיפות על התהליך, בלי “קופסה שחורה”.

איך זה עובד, שלב אחרי שלב

1. העלאת הקובץ

ההקלטה מועלית לשרת FTP, ואז מוסיפים את שם הקובץ בשורה חדשה בגיליון

יש גם אופציה חלופית: אוטומציה ב-Make שמזהה קבצים חדשים בתיקיית Google Drive משותפת ומכניסה אותם לגיליון בעצמה. זה נוח יותר, אבל דורש מנוי חודשי – ולכן זו אופציה, לא ברירת המחדל.

2. תמלול

סקריפט שרץ בתדירות קבועה (Apps Script מתוזמן) סורק את הגיליון, מאתר שורות חדשות, ושולח את הקובץ לשירות תמלול חיצוני דרך API. כשהתמלול חוזר, הוא נשמר כקובץ טקסט וההפניה אליו נרשמת בגיליון.

3. נקודות עיקריות

לאחר שיש תמלול, הוא נשלח למודל AI שמייצר קובץ Doc עם נקודות עיקריות מהשיעור. השלב הזה חשוב במיוחד כי הוא ניתן לשינוי לפי הצורך – אפשר לפתוח את הקובץ, לערוך, למחוק דברים לא רלוונטיים או להוסיף דגשים, לפני שממשיכים הלאה.

4. יצירת הסיכום

רק אחרי שהנקודות העיקריות מאושרות, נוצר קובץ הסיכום הסופי – וכאן ה-AI מקבל גם את התמלול המלא וגם את הנקודות שנערכו, כדי שהסיכום יהיה מדויק ומבוסס.

5. גמישות לחזור אחורה

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

6. ניקוי

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

למה זה שווה את זה

  • עלות: בערך $1 לשיעור של 3 שעות (בעיקר עלות ה-API של התמלול וה-AI).
  • שקיפות: הכל מנוהל בגיליון אחד, אפשר לראות בדיוק באיזה שלב כל שיעור נמצא.
  • גמישות: אפשר לערוך תוצרי ביניים (נקודות עיקריות) ולהריץ מחדש רק את מה שצריך.
  • חיסכון במקום: ניקוי אוטומטי של קבצי הקול אחרי תמלול.
  • בלי תלות בתשלום חודשי – אלא אם בוחרים במסלול הנוח יותר עם Make.

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

רוצים משהו דומה לעסק שלכם?

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

בוט טלגרם + AI + אתר למעקב אחרי ערב שירה בזמן אמת

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

הרעיון בשורה אחת

המנחה שולח שם שיר בטלגרם ← AI מוצא את המילים המלאות ← האתר מתעדכן ← הקהל לוחץ רענון ורואה את השיר הבא.

איך זה עובד בפועל

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

שלב 2 – ה-AI מוצא את המילים הבוט שולח את שם השיר ל-Claude API, שמחזיר את המילים המלאות בשניות. אין צורך לשמור מראש מאגר שירים, אין צורך לחפש בגוגל – ה-AI פשוט יודע. המנחה מקבל תצוגה מקדימה של המילים ישירות בצ’אט, ויכול לאשר שזה הטקסט הנכון לפני שמפרסמים.

שלב 3 – עדכון האתר אחרי אישור, הבוט שולח את המילים לשרת שמעדכן את דף האתר. הכל קורה מאחורי הקלעים – המנחה רואה הודעת אישור קצרה וממשיך הלאה.

שלב 4 – הקהל רואה הקהל פותח קישור פשוט בדפדפן. בדף יש כפתור רענון אחד גדול. לחיצה עליו מציגה את השיר הנוכחי – כותרת ומילים מלאות, בגופן נוח לקריאה. אין התקנות, אין חשבונות, אין אפליקציות.

למה השילוב הזה עובד

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

המנחה לא מרגיש שהוא “מפעיל מערכת” – הוא פשוט שולח הודעה. הקהל לא מרגיש שהוא “משתמש בכלי” – הוא פשוט מסתכל על דף. כל המורכבות הטכנית מסתתרת בדיוק במקום שצריך.

לסיכום

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

אם בניתם משהו דומה, או יש לכם רעיונות לשיפור – אשמח לשמוע 👇

בוט טלגרם כסוכן אישי מותאם

איך יצרתי טלגרם בוט שמבצע עבורי משימות AI מותאמות?

במהלך פרויקט אישי חיפשתי דרך נוחה לעטוף יכולות AI בתוך ממשק זמין ויום-יומי. הבחירה הטבעית הייתה בוט טלגרם: כלי פשוט לשימוש, מהיר ואינטגרטיבי, שגם מאפשר לי להריץ פקודות מותאמות אישית מכל מקום.

החיבור בין טלגרם ל-AWS Lambda

את הבוט בניתי על בסיס המדריך הזה והחלטתי לחבר אותו ל־AWS Lambda – שירות ללא שרת שמריץ קוד לפי טריגרים.
מדריך נוסף נמצא כאן (ובטח יש עוד הרבה מדריכים)
כדי להפעיל את הבוט כראוי, יש להגדיר גם API Gateway שישמש כשכבת ביניים בין טלגרם לבין ה-Lambda (הסבר מלא מופיע במדריך המקורי). הדבר מאפשר לכל עדכון שמגיע מטלגרם לשלוח קריאה ישירה לפונקציית ה-Lambda שלי.

השתמשתי הרבה ב-CloudWatch של AWS:

וגם השתמשתי ב-AWS DynamoDB לשמור ולהשתמש מחדש בערכים

פה אפשר להתנסות בבוט (מקווה שזה לא יעמיס יותר מדי על חשבון ה-AWS שלי)

ניהול משתמשים וזיהוי

אחת הנקודות המעניינות היא היכולת לזהות כאשר אני עצמי עובד מול הבוט. בתוך ה־payload שמגיע מטלגרם ניתן לקבל user_id, שמאפשר לבצע פעולות מותנות לפי המשתמש. חשוב לציין שזו אינה שיטה מאובטחת לגמרי, כיוון שבאופן תאורטי ניתן לזייף user_id. עבור פרויקטים רציניים מומלץ להוסיף שכבת אימות נוספת.

עניין ה-timeout

באופן ברירת מחדל, ל־Lambda יש הגבלת זמן ריצה. כאשר ניסיתי להריץ פקודות AI חיצוניות או קריאות API מורכבות, נדרשתי להגדיל את זמן ה-timeout כדי למנוע עצירה פתאומית של הביצוע. זהו פרמטר שכדאי לשים לב אליו במיוחד בעבודה עם מודלים חיצוניים שעלולים להגיב לאט.

בעיות שכיחות ודרכי פתרון

במהלך השימוש נתקלתי בכמה נקודות שכדאי להכיר מראש:

  • הרצת פקודות כפולה – לעיתים בפקודות פשוטות (שאינן מערבות API חיצוני) הבקשה התבצעה פעמיים. יש לכך הסבר טכני ידוע ופתרונות שונים שהוצעו בקהילה. שווה לבדוק מה מתאים למבנה הבוט.
  • שיהוי בביצוע – לפעמים הבוט מגיב באיחור של כמה דקות. לא מצאתי הסבר חד-משמעי לכך, אך ייתכן שזה קשור לתהליך ה־ cold start של ה-Lambda כאשר הפונקציה לא רצה זמן רב.
  • אבטחת הבוט – ראיתי את הפוסט הזה, אבל לא יודע מה עוד אפשר לעשות

יתרון כלכלי

לשימוש מצומצם, כל המערכת פועלת בתוך ה־Free Tier של AWS. כלומר, אין עלות בפועל עבור הרצות של כמה פקודות ביום, מה שהופך את זה לכלי נהדר לפרויקטים אישיים או ניסויים עם AI.


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

מוזמנים לכתוב לי בתגובות את ההערות שלכם + רעיונות למשימות עבור בוט טלגרם

עבודה עם bash

עבודה עם Bash: איך בניתי כלי אוטומציה לאתרי WordPress

בחודשים האחרונים יצא לי להעמיק בעולם של Bash scripting, בעיקר בשילוב עם WP-CLI, כלי שורת הפקודה הרשמי של WordPress. מהר מאוד גיליתי את העוצמה והגמישות שיש בסקריפטים – איך באמצעות כמה שורות קוד אפשר לעשות בצורה אוטומטית תהליכים שבעבר דרשו שעות עבודה ידנית.

במיוחד הצלחתי לגבש שני כלים שימושיים, שניהם מבוססי שילוב בין אלבומי Google Photos לבין WordPress:

כלי 1: יצירת רשת אתרים מאלבומי Google

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

כלי 2: יצירת אתר תדמית מאלבומי Google

בפרויקט נוסף, פיתחתי סקריפט שמבצע את התהליך בצורה אחרת: הפעם כל אלבום Google יוצר דף חדש באתר WordPress. בתוך הדף נוצרת גלריה עם תמונות האלבום, ובנוסף קיימת אפשרות להוסיף טקסט מותאם אישית בראש הדף, מעל הגלריה.
כך נוצר בצורה כמעט אוטומטית אתר תדמית שלם, המבוסס על אלבומים מוכנים.
אפשר להשתמש בקובץ CSV להגדרות של האתר

היתרונות של הגישה

  • אוטומציה מלאה – האתר נבנה לבד, ללא הקלדה חוזרת ונשנית ב־WordPress.
  • מהירות הטמעה – פרויקט שלוקח שעות (ואף ימים) יכול להפוך לענין של דקות.
  • גמישות גבוהה – קל לשנות את הסקריפטים כך שיתאימו למבנים אחרים או לסוגי תוכן נוספים.

האתגרים שנתקלתי בהם

כמו בכל תהליך אוטומטי, גם כאן לא הכל מושלם:

  • הפעלה מסיבית של סקריפטים כאלה עלולה לגרום לניצול משמעותי של משאבי השרת, ובעיקר חשבונות שיתופיים (shared hosting) יכולים ליצור בעיות של ניצול יתר של המשאבים
  • אפשר לחלק תמונות רק לפי אלבומים או לוגיקה לפי שם הקובץ

העברת שרת

אחרי כמה שנים טובות שאיחסנתי את האתר הזה (יחד עם אתרים נוספים) ב-BlueHost, החלטתי לעבור שרת. הסיבות שלי היו דמי חידוש גבוהים (מחיר פי 3 עד פי 4 מאשר חבילה חדשה) וגם לפעמים ממשק הניהול לא היה זמין.

הצרכים שלי משירות אכסון הן כמות אתרים לא מוגבלת, גישת SSH (כולל WP-CLI), הוספת SSL לכל האתרים שבאכסון בחינם, ממשק cPanel, וכמובן ללא הגבלת נפח דיסק. רוב השירותים היום נותנים את כמעט כל זה בחבילה הבינונית / מתקדמת שלהם. לגבי נפח קבצים – היום כמעט כולם לא מגבילים את זה, אבל מגבילים את מספר ה-Inodes בשרת.

בחרתי ב-GreenGeeks בעיקר בגלל הפן האקולוגי שלהם, בנוסף לעובדה שבגלל שהם אירופיים / גרמנים אפשר לסמוך יותר על הפרטיות ואבטחת המידע שלהם. בנוסף, יש להם גיבויים יומיים בחינם.

היו לי כ-10 אתרים להעביר, ןזה היה זמן טוב לעשות סדר בעניין, ולהוריד אתרים שכבר לא רציתי לאחסן.

לא מצאתי דרך להעביר את חשבונות המיילים באופן מרוכז, כך שנאלצתי ליצור אותם מחדש. בנוסף מצאתי שהרבה חברות כבר לא נותנות להגדיר forward mail account ל-Gmail (הסבר מלא פה), כך שיצרתי כתובת מייל, והגדרתי ב-Gmail שימשוך אותה.

את רוב האתרים העברתי בדרך הישנה – כיווץ הספרייה וה-DataBase, את רוב הקבצים האלו משכתי ישר בשרת החדש דרך SSH + CURL, פרשתי (extract), יצרתי את ה-DataBase הנדרשים ושיניתי הגדרות בהתאם.

ניסיתי להשתמש בתוספים להעברת חלק מהאתרים, אבל לא מצאתי משהו טוב בחינם שאני יכול להמליץ עליו…

באותה הזדמנות, גם הפכתי כמה אתרים קטנים שלי לרשת אתרים (MultiSite), כדי לפשט את העדכונים שלהם.

לסיכום: אני שמח על התהליך בעיקר בגלל החיסכון הכספי (70$ לשנה, כולל דומיין, לעומת 59$ כל 3 חודשים), ובגלל שהמעבר גרם לי לעשות סדר בכל מה שהיה בשרת 🙂

סנכרון תמונות מאלבום גוגל לאתר

רציתי לעשות אתר שיהיה קל להעביר תמונות (ווידאו) מאלבום גוגל, בלי שאני אצטרך להוריד למחשב שלי ולהעלות המון תמונות.

קודם כל – אני משתמש באכסון של blueHost, שנותנים גישת SSH ו-wp-cli
גם א/נשים בלי ידע טכני יכולים לעבוד לפי המדריך הזה, אבל צריך לא לפחד מלכתוב פקודות (Command Line), ואני מקווה ששמתי פה מספיק קישורים להסברים.

אחרי שהתחברתי לחשבון שלי עם SSH, שמתי שם rclone – לא צריך להתקין את זה (ההתקנה דורשת הרשאת root בשרת, שאין לי כמובן), רק להוריד ולפרוס. אח”כ בשביל לגשת לזה – צריך לקרוא לפקודה rclone עם המיקום שלה.

הפקודות שאני השתמשתי בשביל התקנת rclone

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
mv rclone-vVERSION-NO-linux-amd64/ rclone
* שימו לב בפקודה האחרונה מה מס’ הגירסא שאצלכם

הגדרתי את rclone להתחבר לחשבון Google Photos שרציתי. שימו לב שבגלל שעובדים על מחשב מרוחק – אי אפשר להשתמש בauto config, עונים NO על השאלה “Use auto config?”, ואז צריך להתחבר לחשבון Google ממחשב אחר שבו יש דפדפן, להתקין שם rclone ולהכניס את הפקודה:

rclone authorize "google photos"

ואז מקבלים לינק שצריך לפתוח בדפדפן (מתחיל ב: http://127.0.0.1:53682/auth) וצריך לאשר לגוגל לגשת לתמונות. הוראות מפורטות לשלב הזה – כאן

עכשיו יוצרים ספרייה שאליה rclone יסנכרן / יעתיק את התמונות מהאלבום המבוקש (מי שלא מכיר – תחפשו את הפקודה mkdir).

הפקודה לסנכרון נראית משהו כזה:

rclone sync RcloneName:album/AlbumName Folder-for-the-Photos –ignore-existing

החלקים המודגשים אלו המקומות שבהם צריך לשנות לפי מה שאתם יצרתם (RcloneName – השם שנתתם לחיבור הזה בהגדרות של rclone, AlbumName – השם של האלבום שאתם רוצים להעתיק מGoogle Photos, Folder-for-the-Photos – השם של הספרייה בשרת שם אתם רוצים לשמור את התמונות).
אפשר גם להוסיף את הפרמטר –max-age 1d כדי לסנכרן רק את התמונות מהיום האחרון

זה עובד די מהר, ובקרוב התמונות מGoogle Photos יהיו כבר בשרת.

הפקודה הבאה משתמשת בwp-cli לייבא את התמונות לספריית המדיה של האתר.
שימו לב, שצריך להיות בספרייה של האתר (או ספרייה כלשהיא בתוכה) כדי שזה ייבא לאתר שלכם (חשוב לשים לב, בעיקר כשיש כמה אתרים מאוכסנים על אותו חשבון בשרת).

for x in Folder-for-the-Photos/*.jpg; do
if test -f “../../wp-content/uploads/2020/08/$x”; then
echo “$x exists.”
else
wp media import $x –preserve-filetime
fi
done

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

מזל טוב, סיימתם.

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

אני משתמש בינתיים בתוסף Modula כדי ליצור גלריית תמונות, כי אהבתי את הצורה שהוא מסדר את התמונות בגלריה, אבל הגירסא החינמית שלו מוגבלת ל20 תמונות בגלריה. אפשר כמובן להשתמש בגלריית תמונות הבסיסית של וורדפרס, או בכל תוסף אחר. מוזמנים/ות לכתוב בתגובה על תוספים יותר טובים לגלריות.

קבלת החלטות בקהילה‎‎

אפשרויות / מתודות לקבלת החלטות בקהילה

תמצות מתורגם של אפשרויות לקבלת החלטות בקבוצה (לפי אתר Decide Better Together):

דיאלוג קהילתי (אתר “תכנית גישורים”)

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

חזרתי לפה

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

אחרי שלא מצאתי איך לקבוע בבלוק של גוטנברג שזה עברית (מה שנקרא כיווניות RTL), יצרתי CSS class עם המאפיין של direction: rtl, ואז אני נותן לכל בלוק את הclass הזה.
אשמח לשמוע על רעיונות יותר מוצלחים 🙂
(האתר מוגדר כאנגלית, ורק חלק מהפוסטים הם או חלקם בעברית)

עדיין מנסה לראות מה להכניס לבלוג.

בינתיים מאמר מצויין על אבטחת אתר וורדפרס: https://www.computec.co.il/article/%D7%90%D7%91%D7%98%D7%97%D7%AA-%D7%90%D7%AA%D7%A8-%D7%95%D7%95%D7%A8%D7%93%D7%A4%D7%A8%D7%A1/

SSL – website security

למי שחדש בתחום – הSSL זה אישור על מהימנות האתר, וכשגולשים לאתר כזה הכתובת מתחילה ב- https:// ולא ב- http:// . בנוסף, ברוב הדפדפנים יש מנעול ירוק בפינת הכתובת שמראה שהאתר מאובטח (וגם התראה כשמנסים להגיע לאתר שמתחזה למאובטח, אבל ישנה בעיה עם אישור האבטחה / מהימנות שלו). כשבעצם זה מציין ש תעבורת האינטרנט בין הלקוח והשרת מוצפנת.

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

גוגל הודיעו שהם יורידו את הדירוג לאתרים שאין להם SSL.

קיימים כבר שירותים שמציעים אישורי  SSL בחינם.

מאמרים בנושא:

The Easiest Way To Make WooCommerce SSL certified store

BlueHost – How to activate a free WordPress SSL Certificate