1.1 עבודה עם צ'אט הרצאה
רוב האנשים פוגשים AI לראשונה דרך צ'אט - חלון שיחה פשוט שבו כותבים הודעה ומקבלים תשובה. זה נשמע טריוויאלי, אבל צ'אט הוא לא "הגרסה הפשוטה" של פיתוח אג'נטי - הוא כלי עם יתרונות משלו, ויש משימות שהוא פותר טוב יותר מagent שרץ בטרמינל. בהרצאה הזו נכיר את הinterfaces המרכזיים - Claude.ai ו-ChatGPT, נבין מתי צ'אט הוא הבחירה הנכונה ומתי לא, ונעבור על הפיצ'רים שהופכים אותו מ"תיבת טקסט" לכלי עבודה אמיתי: שיחות, פרויקטים, קבצים מצורפים וארטיפקטים.
הinterfaces המרכזיים - Claude.ai ו-ChatGPT¶
שני הinterfaces הנפוצים ביותר לעבודה עם מודלי שפה דרך דפדפן הם Claude.ai של Anthropic ו-ChatGPT של OpenAI. בקורס הזה נעבוד בעיקר עם Claude, אבל שווה להכיר את שניהם כי הרעיונות דומים והם מופיעים כמעט בכל כלי AI אחר.
מבנה הinterface כמעט זהה בשניהם:
- סרגל צד עם רשימת השיחות הקודמות, כדי לחזור אליהן.
- חלון שיחה במרכז המסך, שבו רואים את ההודעות שלכם ואת התשובות של המודל.
- תיבת קלט בתחתית, עם אפשרות לצרף קבצים, לבחור מודל, ולפעמים להפעיל tools נוספים (חיפוש באינטרנט, ניתוח קבצים).
- בחירת מודל - בדרך כלל תפריט נפתח שמאפשר לעבור בין מודל מהיר וזול למודל חזק ואיטי יותר. נעמיק בבחירת מודל בהרצאה 1.4.
ההבדל המעשי בין הinterfaces הוא בעיקר בפיצ'רים המשלימים (ארטיפקטים מול canvas, פרויקטים מול GPTs מותאמים אישית) ובאישיות של המודל - אבל העקרונות של איך כותבים פרומפט טוב, איך מנהלים שיחה, ואיך יודעים מתי לעבור לכלי אחר, זהים.
מעבר לinterface בדפדפן, Claude זמין גם כאפליקציית דסקטופ ומובייל עם אותה חוויה בעיקרה, וגם דרך אינטגרציות בכלים אחרים (לדוגמה תוסף ב-Slack). לצורך הקורס הזה, כל מה שנלמד על עבודה עם צ'אט תקף בכל אחת מהצורות האלה - ההבדלים הם בנוחות הגישה, לא בעקרונות.
מתי צ'אט הוא הכלי הנכון¶
זו השאלה החשובה באמת. בקורס הזה נלמד גם על Claude Code - agent שקורא, כותב ומריץ קוד ישירות בפרויקט שלכם. אז למה בכלל להשתמש בצ'אט?
התשובה: צ'אט מצוין למשימות שבהן אתם נשארים בשליטה על כל שורה, ופחות טוב כשצריך שהמודל יבצע סדרה ארוכה של פעולות בעצמו.
| מצב | הכלי המתאים | למה |
|---|---|---|
| דיון בעיצוב - design discussion, לפני שכותבים קוד | צ'אט | רוצים לחשוב יחד, לשקול חלופות, בלי שנוצר קוד בפועל |
| למידת מושג חדש (מה זה JWT, איך עובד React hook) | צ'אט | שיחה חופשית, שאלות המשך, בלי צורך בגישה לקבצים |
| טרנספורמציה חד-פעמית (המרת JSON ל-CSV, ניסוח מחדש של טקסט) | צ'אט | הדבקה, קבלת תוצאה, גמרנו - אין צורך בcontext של פרויקט שלם |
| כתיבת פיצ'ר שנוגע בכמה קבצים בפרויקט אמיתי | הagent (Claude Code) | הagent צריך לקרוא קבצים קיימים, להריץ בדיקות, ולתקן את עצמו |
| דיבוג שדורש הרצת קוד וקריאת פלט שגיאה בפועל | הagent | צ'אט לא מריץ את הקוד שלכם - הוא רק מנחש מה קרה |
| רפקטורינג על פני עשרות קבצים | הagent | היקף גדול מדי להעתקה-הדבקה ידנית |
הכלל האצבע: אם המשימה מתחילה ונגמרת בטקסט שאתם מעתיקים פנימה והחוצה, צ'אט מספיק. ברגע שהמשימה דורשת "לך תראה מה יש בקובץ X", "תריץ את זה ותגיד לי מה קרה", או "תתקן עד שהבדיקות עוברות" - אתם צריכים agent. נחזור לזה בהרחבה בפרק 2.
חשוב גם לזכור: גם כשעובדים עם agent, צ'אט נשאר שימושי לצד העבודה - לתכנן ארכיטקטורה לפני שנותנים לagent לבצע, או לשאול שאלת הבנה שלא קשורה לקוד ספציפי.
דוגמה לתהליך החלטה¶
נניח שאתם צריכים להוסיף התראות אימייל למערכת קיימת. איך יודעים אם להתחיל בצ'אט או ישר בagent?
Step 1 (chat): "I want to add email notifications when a user
places an order. I already have a Node.js server with Express and
a PostgreSQL database. What approaches are possible - an external
service like SendGrid vs. direct SMTP - and what are the pros and
cons of each in my case?"
-> Short discussion, no code, until an approach is decided
(e.g. SendGrid, since there's no need to manage SMTP infrastructure).
Step 2 (agent): "Add sending an email via SendGrid every time
a new order is created, based on the decision we discussed. Read how
the other external integrations in the project are configured and
keep the same pattern."
השלב הראשון הוא בדיוק המקום שבו צ'אט מנצח: דיון קצר בלי מחויבות לקוד. השלב השני דורש קריאת קבצים אמיתיים בפרויקט, ולכן עובר לagent. הרבה זרימות עבודה טובות עוברות בדיוק בין השניים - לא צריך לבחור אחד ולהיצמד אליו.
שיחות ופרויקטים - conversations and projects¶
שיחה - conversation בודדת היא פשוט רצף ההודעות שלכם עם המודל. חשוב להבין: המודל "זוכר" רק את מה שכתוב בשיחה הנוכחית. הוא לא זוכר שיחות קודמות (אלא אם הופעלה תכונת זיכרון מפורשת), ולא יודע כלום על הפרויקטים שלכם מעבר למה שכתבתם או צירפתם.
מסקנה מעשית: כשפותחים שיחה חדשה, מתחילים מאפס. זה יתרון (אין "רעש" משיחות ישנות) וגם חיסרון (צריך לתת context מחדש בכל פעם).
כאן נכנסים פרויקטים - projects. פרויקט הוא מיכל שמחזיק:
- הוראות קבועות (system prompt מותאם) שחלות על כל שיחה בתוך הפרויקט - למשל "אני כותב בפייתון 3.12, תמיד תציע טיפוסים - type hints".
- קבצים מצורפים שזמינים לכל שיחה חדשה בפרויקט - מסמך אפיון, קטע קוד רלוונטי, מילון מונחים.
- שיחות מרובות שכולן חולקות את אותו context בסיסי.
דוגמה שימושית: פרויקט בשם "כתיבת בלוג טכני" עם הוראה קבועה "כתוב בעברית, בטון ישיר, בלי קלישאות שיווקיות" וקובץ מצורף עם 3 פוסטים קודמים כדוגמת סגנון. כל שיחה חדשה בפרויקט הזה כבר "מכירה" את הסגנון בלי שתצטרכו להסביר מחדש.
זה שימושי גם לעבודה טכנית: פרויקט לכל repo, עם קובץ README או סכמת בסיס נתונים מצורפים, כך שאפשר לשאול שאלות על הפרויקט בלי להדביק context בכל פעם מחדש. שימו לב - זו עדיין לא גישה של agent שקורא את הקבצים בעצמו; אתם עדיין אלה שמצרפים ומעדכנים.
קבצים מצורפים - attachments¶
אפשר לצרף לצ'אט כמעט כל דבר: קובצי טקסט וקוד, PDF, תמונות (צילומי מסך של שגיאה, תרשים ארכיטקטורה), ולפעמים גיליונות אלקטרוניים. זה פותח שימושים מעשיים:
Attachment: traceback.txt (Python error from the terminal)
Prompt: "I got the attached error while running a migration in
Django. Explain what happened and suggest a fix. The project uses
PostgreSQL."
Attachment: screenshot.png (ER diagram of a database, photographed
from a whiteboard)
Prompt: "This is an ER diagram of a schema I'm designing. Check for
normalization issues and suggest a SQL query to create the tables."
נקודה חשובה: קובץ מצורף נכנס לcontext של השיחה במלואו (או בחלקים, תלוי בגודל) ותופס מקום בcontext window - נדבר על זה בפירוט בהרצאה 1.4. קובץ ענק שמצורפים "ליתר ביטחון" עלול לדחוק החוצה חלקים אחרים של השיחה או לגרום למודל להתמקד בפרטים לא רלוונטיים. עדיף לצרף רק את מה שבאמת נחוץ לשאלה.
ארטיפקטים וקנבס - artifacts and canvas¶
כשמבקשים מהמודל תוכן ארוך ובר-עריכה - קוד, מסמך, טבלה, דף HTML - הצ'אט לא תמיד הפורמט הנוח ביותר להצגה. שני הinterfaces פתרו את זה בדרכים דומות:
- ב-Claude.ai נקרא הפיצ'ר ארטיפקט - artifact: כשהתשובה מכילה קטע תוכן עצמאי (קובץ קוד, מסמך, עמוד HTML אינטראקטיבי), הוא נפתח בחלונית נפרדת לצד השיחה, ניתן לעריכה, להעתקה, ואפשר לבקש מהמודל "לעדכן" אותו בלי לכתוב אותו מחדש בתוך הצ'אט.
- ב-ChatGPT נקרא הפיצ'ר הדומה קנבס - canvas: אותו רעיון - מסמך או קוד שנפתחים בצד, עם היסטוריית עריכות ואפשרות לערוך ידנית לצד הבקשות למודל.
היתרון המעשי: כשעובדים על מסמך ארוך או קטע קוד, לא צריך לגלול בשיחה כדי למצוא את הגרסה האחרונה, ואפשר לבקש שינוי ממוקד ("תוסיף טיפול בשגיאות לפונקציה הזו") בלי שהמודל יכתוב את כל הקובץ מחדש בהודעת טקסט. דוגמה לזרימת עבודה:
Prompt 1: "Write me a simple HTML page with a signup form - a name
field, an email field, and a submit button."
-> An artifact opens with the full code, viewable live.
Prompt 2: "Add validation that the email is in a valid format before
submitting."
-> The artifact updates in place, without rewriting the whole
conversation.
חשוב לזכור: ארטיפקט הוא עדיין רק תצוגה נוחה בתוך הצ'אט. הוא לא מריץ קוד אמיתי מול קבצים בפרויקט שלכם, לא ניגש לרשת (מלבד יכולות תצוגה מוגבלות כמו HTML/JS פשוט), ולא שומר קבצים בדיסק. ברגע שאתם רוצים שהתוצר הזה יהפוך לחלק אמיתי מפרויקט - להוריד, לשמור, להריץ, לחבר ל-git - זו בדיוק הנקודה שבה עוברים לעבודה עם agent.
אמון ואימות בתשובות צ'אט¶
נקודה שחשוב לפתוח בה כבר בשלב הזה של הקורס: תשובת צ'אט, גם כשהיא נשמעת בטוחה ומנוסחת היטב, יכולה להכיל טעויות עובדתיות - תופעה שנקראת הזיה - hallucination. המודל לא "יודע שהוא לא יודע" באותה צורה שאדם יודע - הוא פשוט מייצר את הטקסט הכי סביר, וזה יכול לכלול שם פונקציה שלא קיים, גרסת ספרייה שגויה, או "עובדה" שנשמעת הגיונית אבל לא נכונה.
זה חשוב במיוחד כשמשתמשים בצ'אט למידע טכני מדויק: מספרי גרסה, שמות API, פרטים חוקיים או רפואיים. כמה הרגלים שעוזרים:
- כשמדובר בעובדה שקל לבדוק (שם פונקציה, פרמטר) - בדקו מול התיעוד הרשמי לפני שמסתמכים עליה.
- אם יש למודל יכולת חיפוש באינטרנט, בקשו ממנו להשתמש בה כשהמידע עדכני או קריטי.
- שאלות שהתשובה עליהן "חשובה מדי לטעות" (החלטות פיננסיות, משפטיות, רפואיות) - צ'אט הוא נקודת התחלה למחקר, לא מקור סופי.
זה לא אומר שאי אפשר לסמוך על צ'אט - זה אומר לדעת מתי הביטחון בניסוח לא שווה לביטחון בתוכן.
טיפים מעשיים לעבודה יומיומית¶
כמה הרגלים שהופכים עבודה עם צ'אט ליעילה יותר:
- פתחו שיחה חדשה לנושא חדש. שיחה ארוכה עם הרבה נושאים לא קשורים "מלכלכת" את הcontext ומורידה איכות תשובות. שיחה ממוקדת נותנת תשובות חדות יותר.
- אל תפחדו לתקן באמצע. אם התשובה לא מדויקת, אין צורך לנסח פרומפט חדש מאפס - תגובת המשך כמו "זה כמעט טוב, אבל תשתמש ב-async/await במקום callbacks" בדרך כלל יעילה יותר.
- תנו למודל לשאול שאלות הבהרה. אפשר לבקש במפורש: "אם משהו לא ברור, תשאל אותי לפני שאתה עונה" - זה מונע ניחושים שגויים על כוונה לא ברורה.
- השתמשו בפרויקטים לעבודה חוזרת על אותו נושא או קודבייס, כדי לא לחזור על אותו context בכל שיחה.
- בדקו את התאריך והידע העדכני של המודל. מודלי שפה מאומנים עד נקודת זמן מסוימת (knowledge cutoff) ולא תמיד יודעים על שינויים אחרונים בספריות או כלים - כשזה קריטי, שווה לבקש מהמודל לחפש באינטרנט אם היכולת זמינה.
ארגון שיחות לאורך זמן¶
ככל שמשתמשים בצ'אט יותר, מצטברות עשרות ומאות שיחות בסרגל הצד. כמה הרגלים שעוזרים למצוא דברים אחר כך:
- תנו שם ברור לשיחה כשהinterface מאפשר זאת (בדרך כלל אפשר לערוך את הכותרת שנוצרת אוטומטית) - "תיקון bug בהזמנות" עדיף על הכותרת האוטומטית הגנרית.
- השתמשו בחיפוש במקום לגלול - שני הinterfaces תומכים בחיפוש טקסטואלי בתוך היסטוריית השיחות.
- פרויקטים כתחליף לתיוג - כשאין תכונת "תיוג" מובנית לשיחות, פרויקט משמש בפועל כקטגוריה: כל השיחות על נושא מסוים נשארות מקובצות יחד.
- מחקו שיחות ניסיוניות שלא רלוונטיות יותר - זה לא משפיע על ביצועים, אבל עוזר לשמור על סרגל הצד שמיש.
סיכום¶
- Claude.ai ו-ChatGPT הם interfaces הצ'אט המרכזיים; המבנה דומה - שיחות, תיבת קלט, בחירת מודל, tools משלימים.
- צ'אט מתאים לדיון בעיצוב, ללמידה, ולטרנספורמציות חד-פעמיות של טקסט; agent (כמו Claude Code) מתאים כשצריך לקרוא קבצים אמיתיים, להריץ קוד ולתקן על בסיס תוצאה בפועל.
- שיחה - conversation בודדת לא זוכרת שיחות אחרות; פרויקט - project מאפשר הוראות קבועות וקבצים משותפים לכמה שיחות על אותו נושא.
- קבצים מצורפים (טקסט, PDF, תמונות) מרחיבים מה אפשר לשאול, אבל תופסים מקום בcontext window - לצרף רק מה שרלוונטי.
- ארטיפקט - artifact ב-Claude.ai וקנבס - canvas ב-ChatGPT מציגים תוכן ארוך בחלונית נפרדת שניתנת לעדכון ממוקד, אבל הם תצוגה בלבד - לא סביבת הרצה אמיתית.
- הרגלים טובים: שיחה חדשה לכל נושא, תיקון באמצע במקום ניסוח מחדש, בקשה מהמודל לשאול כשלא ברור, ומודעות לתאריך הידע העדכני של המודל.
- תשובות צ'אט יכולות להכיל הזיות - hallucinations - טעויות עובדתיות שנשמעות בטוחות; בדקו מידע קריטי מול מקור מהימן.
- ארגון שיחות (שמות ברורים, חיפוש, פרויקטים כקטגוריה) הופך שימוש ארוך טווח בצ'אט לנוח משמעותית.