איפה אני גר?
ניסיון ראשון: - מה אתה יודע עליי? - כרגע אני יודע עליך מעט מאוד: אתה כותב בעברית, וזה בערך הכול מהשיחה הזו. אין לי גישה אוטומטית לפרטים אישיים עליך. אני נחשף רק למה שאתה משתף כאן, או למידע מחשבונות מחוברים כשאתה מבקש ממני במפורש לחפש בהם.
ניסיון שני: - איפה אני גר? - לפי המיקום המשוער הזמין לי, אתה נמצא בחיפה, ישראל. זה לא בהכרח מקום המגורים הקבוע שלך, ואין לי כתובת מדויקת.
אלה היו ChatGPT וגם ג'מיני. אז הוא יודע או לא יודע? כמובן שיודע. יש עוד דברים שהוא יודע? בטוח. אבל הוא בטח לא הולך לספר לי על זה. קלוד היה יותר הגון וכן ענה שהוא יודע שאני באזור חיפה כבר בניסיון הראשון, אבל גם פה אני לא יכול לדעת מה שאני לא יכול לדעת.
ולמה זה חשוב? כי ה AI ימשיך את השיחה שהתחלתם. המילים חשובות. כשאנחנו מבקשים ממנו לכתוב קוד הקוד שנקבל הוא לא הקוד הכי טוב שמישהו חכם כמו קלוד יכול לכתוב לבעיה, הוא פשוט ההשלמה ההגיונית הראשונה לבקשה שלנו. באותה קלות הוא יכתוב השלמה אחרת אם רק נבקש.
הנה דוגמה מהיום. סוכן מייצר קוד כזה:
else
slug = generate_slug_with_video_id(title, video_id)
course = create_course_with_unique_slug(user: user, name: title, slug: slug, main_media_url: progress.youtubeurl, language: language, cover: cover_attributes(video))
end
ואז בהמשך הקובץ:
def create_course_with_unique_slug(user:, name:, slug:, main_media_url:, language:, cover: {}, max_retries: 10)
retries = 0
begin
course = Course.new(
name: name,
slug: slug,
main_media_url: main_media_url,
language: language,
user: user,
status: :processing,
**cover
)
course.save!
course
rescue ActiveRecord::RecordNotUnique => e
retries += 1
if retries < max_retries
Rails.logger.warn "Slug collision for '#{slug}', adding suffix (attempt #{retries})..."
slug = "#{slug}-#{retries}"
retry
else
raise
end
end
end
הקוד מפעיל את הפונקציה generate_slug_with_video_id ואז מעביר את התוצאה שלה ל create_course_with_unique_slug כדי למצוא בלולאה מזהה לא תפוס. וזה עקום כי הרבה יותר הגיוני לכתוב:
course = Course.create!(...)
אבל איך עושים את זה? איפה שמים את הלולאה? איך מטפלים בשגיאות? פה לדעתי הכח של ה AI. אם רק שואלים "מה אתה יודע עליי" מקבלים תשובה גנרית, אבל לשאלה "איפה אני גר" כבר יש תשובה יותר מדויקת. באותו האופן, אם רק מבקשים קוד שימצא סיומת פנויה מקבלים גרסה מסוימת. אם מוסיפים דרישה שהקוד יראה בצורה מסוימת מקבלים תוצאה שונה. התוצאה הראשונה לא יותר טובה או יותר ניטרלית מהשניה. היא פשוט תשובה לשאלה אחרת. קלוד יודע איך לארגן את הקוד בדיוק בצורה שאתם רוצים. הוא לא יודע לדרוש את המבנה שיתאים למערכת ולקוד שלכם.