שיתוף | ChatGPT - הצ'אטבוט החדש של OpenAI ; לכתיבת תסריטים
-
אני מניח שחלק יתהו על מה כל ההתרגשות, אבל כל מי שהתלהב בזמנו מDALL-E 2, מוזמן לנסות גם את מודל הטקסט המעולה של OpenAI. המודל הנ"ל פשוט יוצר כל העולה בדעתכם, מכתיבת סיפורים, שירים, ברכות ואיחולים, ושאר ביטויים.
החיסרון המרכזי זה הבלעדיות בשפת האנגלית (מה שכמובן לא מהווה בעיה לנושא המרכזי שאני רוצה להראות את יכולותיו).
לדוגמה, ביקשתי הימנו לכתוב תקנון הומוריסטי לאתר מתמחים טופ והוא הביא תקנון די מבדח, שמוצלח בעיקר באנגלית.השימושים כמעט אינסופיים, אבל מה שמשך אותי במיוחד זה היכולת לכתוב תסריטים בשפות שונות, וממש לקלוע למטרה!
לדוגמה, ביקשתי ממנו לכתוב תכנית פשוטה בJAVA, והוא פשוט עשה את זהומה שבאמת מוצלח, שאפשר לנהל איתו שיח על העניין ולבקש ממנו לתקן דברים, והוא מציית.
לדוגמה, ביקשתי תכנית שתמיין מערך ותחזיר שגיאה אם יש בו איברים כפולים, ויצא העגל הזה:כמובן, שאני לא כותב מיין אם יש לי רובוט שיעשה את זה, אז ביקשתי ממנו עוד טובה על הדרך...
וזה עובד! (לא הרצתי בeclipse כי לא היה לי כוח לפתוח מחלקות וכו' אז בדקתי בקומפיילר אונליין)
אבל אולי הוא לא באמת ממיין, אולי הוא רק בודק כפילויות? חזרתי לChatGPT וביקשתי הבהרות:
טדדם!
אבל בתסריטים הוא פשוט מלך:
כל דבר שאפשר לחשוב עליו, הוא עושה. לא תמיד בהצלחה, אבל עושה ...
ביקשתי ממנו לכתוב קובץ JS לבדיקת ראשוניות, ואחרי מחשבה קצרה הוא שיתף איתי את הקוד הבא:
הייתי מצפה ממנו לגלות תבונה גם בקבצי באט, אבל לא נראה לי שיש לו את זה...
ביקשתי ממנו לכתוב קובץ באט לבדיקת ראשוניות, והוא גמגם קוד צולע ממש . בשביל שזה יעבוד, הייתי צריך לתקן מספיק דברים כדי שזה לא ייחשב קובץ שהוא כתב .אתם יכולים לגרום לזה לעבוד?
הוספתי רק pause.@echo off :start echo Welcome to the Prime Number Checker! echo. echo Enter a number to check if it is prime: set /p number= set /a result=1 :loop set /a result=%result% * %number% set /a number=%number% - 1 if %number% == 1 goto prime if %number% == 0 goto notprime goto loop :prime echo %result% is a prime number. goto end :notprime echo %result% is not a prime number. goto end :end pause exit
עזבו, לא חשוב.
בperl למשל, הוא די בסדר. ביקשתי ממנו לכתוב תכנית שתכתוב באיזה יום בשבוע יחול יומולדת 24 של בנכם הקטן, וזה מה שהיה לו לומר בנידון:
הרצתי לאחר שינוי קטן (הורדת המשתנה ב-1) ושינוי קוסמטי (מחיקת הכתב המודגש כמובן), והנה:
חושבים שסיימנו כאן? הו, לא. ביקשתי מChatGPT לכתוב כתבה על עצמו ואיך אפשר להשתמש בו לכתיבת קוד, והנ"ל הגה את המאמר הבא: ChatGPT.docx .
לסיכום:
מעבר להנאה שתפיקו מלהטריד את הבוט הכי משוכלל ש(כנראה) קיים, יש בו גם שימושים לא רעים בכלל. אני המלצתי פה על כתיבת סקריפטים, בעיקר מחמת שזה מה שעלה בדעתי כשפתחתי את ChatGPT. וגם מחמת הנוחות - הוא לא צריך לדייק כל כך, אפשר לבקש ממנו ואח"כ לתקן בקטנה... מה שאין כן בתכנות פרוצדוראלי, שכנראה עדיף לא לסמוך עליו. אבל מה אני יודע?
יש כמובן עוד שימושים, ואני מתכבד לפתוח פה את הבמה לכל רעיון שעולה במוחכם הקודח (בבקשהההה להשתדל שיהיה אפילו קצת תועלת ) -
@NH-LOCAL
עובד מדהים בעברית!!
בקשתי שייצור לי HTML לאתר מוזיקה וזה התוצאה
`<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>אתר שירים מודרניים</title>
<style>
/* כאן תוכל להעלות סגנון מודרני לאתר שלך */
</style>
</head>
<body>
<h1>אתר שירים מודרניים</h1>
<p>באתר זה תוכל למצוא שירים מעוצבים בסגנון מודרני לצדך.</p><!-- כאן תוכל להוסיף את השירים שלך -->
</body>
</html>
` -
@מויטיו ומה עם זה?
# רשימת שירים ואמנים songs = [ {"title": "אחד לכולם", "artist": "דודו טסה"}, {"title": "עוד לא מספיק", "artist": "אהוד בנאי"}, {"title": "הילד הגדול שלי", "artist": "דניאלה ספקטור"}, {"title": "אנחנו כאן", "artist": "אריק איינשטיין"}, {"title": "ככה יש לי את זה", "artist": "דודו טסה"}, ] # משתנה למעקב אחר האמנים artists = {} # לולאת עץ עוברת על כל השירים for song in songs: # מקבלת את האמן של השיר הנוכחי artist = song["artist"] # בדיקה אם האמן כבר קיים במשתנה של האמנים if artist in artists: # אם כן, הוספת השיר לרשימת השירים של האמן artists[artist].append(song["title"]) else: # אם לא, יצירת רשימה חדשה עם השיר הראשון של האמן artists[artist] = [song["title"]] # לאחר סיום הלולאה, משתנה האמנים יכיל רשימה של אמנ
-
הוא גם מאפשר להעלות קוד שכתבת והוא נותן עצות מה יש לשפר בקוד:
מסתבר שהוא גם יכול לתת לך קוד משופר שכולל את העצות שלו!
קוד מעודכן:# -*- coding: utf-8 -*- import os import sys # יבוא פונצקיה לקריאת מטאדאטה של קובץ import music_tag # יבוא פונצקיה לקריאת עץ תיקיות from os.path import join, getsize # יבוא פונצקיה עבור תצוגת האותיות העבריות from bidi.algorithm import get_display def pro_scanner(my_file, root): """ פונקציית סורקת את המטאדאטה של השיר ומכניסה אותו למשתנה """ try: my_file = root + "\\" + my_file artist_file = music_tag.load_file(my_file) artist = artist_file['artist'] target_dict[my_file] = artist except: pass def main(): global target_dict target_dict = {} dir_path = str(sys.argv[1]) if (dir_path != "") and (os.path.exists(dir_path)): for root, dirs, files in os.walk(dir_path): for my_file in files: pro_scanner(my_file, root) dict_list = target_dict.items() for item in dict_list: file_name = str(item[0]) art_name = str(item[1]) if art_name.isdigit() or art_name.isalpha() or "&" in art_name or art_name == "" or "," in art_name or len(art_name.split()) >= 3: continue print("move " + file_name + " to " + art_name) if __name__ == '__main__': main()
עד כאן
-
@GIGA אתה צריך להתקין אותו עם PIP קודם כל (אתה יכול לשאול את הבוט איך עושים את זה...)
אגב, זה הקוד המקורי - לפני התיקונים:
קוד ישן:# -*- coding: utf-8 -*- import os import sys # יבוא פונצקיה לקריאת מטאדאטה של קובץ import music_tag # יבוא פונקציה לקריאת עץ תיקיות from os.path import join, getsize # יבוא פונצקיה עבור תצוגת האותיות העבריות from bidi.algorithm import get_display def pro_scanner(my_file, root): # הפונקציה סורקת את המטאדאטה של השיר ומכניסה אותו למשתנה try: my_file = root + "\\" + my_file artist_file = music_tag.load_file(my_file) artist = artist_file['artist'] target_dict[my_file] = artist except: pass def main(): global target_dict target_dict = {} dir_path = str(sys.argv[1]) if (dir_path != "") and (os.path.exists(dir_path)): for root, dirs, files in os.walk(dir_path): #print("{}".format(root)) #continue for my_file in files: pro_scanner(my_file, root) dict_list = target_dict.items() for item in dict_list: file_name = str(item[0]) art_name = str(item[1]) if art_name.isdigit() or art_name.isalpha() or "&" in art_name or art_name == "" or "," in art_name or len(art_name.split()) >= 3: continue print("move " + file_name + " to " + art_name) os.system('pause') if __name__ == '__main__': main()
עד כאן.
-
@GIGA לא. זה קוד שכתבתי בעצמי, הוא רק שיפר אותו. למרות שהאמת היא שהוא נתן לי גם אפשרות של קוד שהוא כתב לגמרי לבד כולל יבוא של פונקציה תואמת
עריכה: מסתבר שהוא גם יכול להוסיף תיעוד, הוא אמנם קצת הסתבך עם זה - אבל זו התוצאה:
עם תיעוד:# -*- coding: utf-8 -*- import os import sys # יבוא פונצקיה לקריאת מטאדאטה של קובץ import music_tag # יבוא פונקציה לקריאת עץ תיקיות from os.path import join, getsize # יבוא פונקציה עבור תצוגת האותיות העבריות from bidi.algorithm import get_display def pro_scanner(my_file, root): """ פונקציית סורקת את המטאדאטה של השיר ומכניסה את האמן למשתנה תנאים: my_file (str) - שם הקובץ שנסרק root (str) - נתיב התיקייה האב תוצאה: מכניס את האמן שנמצא במטאדאטה של השיר למשתנה target_dict """ try: # בדיקה האם הקובץ הוא קובץ MP3 if not my_file.endswith(".mp3"): return # יצירת נתיב מלא לקובץ my_file = root + "\\" + my_file # טעינת מטאדאטה של השיר artist_file = music_tag.load_file(my_file) # קבלת אמן מטאדאטה של השיר artist = artist_file['artist'] # הכנסת נתוני האמן למשתנה הגלובלי if artist: target_dict[my_file] = artist except: pass def main(): """ הפונקציה המרכיבת את הפקודה הראשית של התכנית. היא מסורקת את התיקיות והקבצים תחת נתיב שצוין ומכניסה את האמנים שמופיעים במטאדאטה של השירים למשתנה גלובלי תנאים: אין תוצאה: מכניס את האמנים שמופיעים במטאדאטה של השירים למשתנה גלובלי """ # הגדרת משתנה גלובלי למעט את התגיות הראשיות global target_dict target_dict = {} # קבלת נתיב משתנה dir_path = str(sys.argv[1]) if (dir_path != "") and (os.path.exists(dir_path)): for root, dirs, files in os.walk(dir_path): for my_file in files: pro_scanner(my_file, root) dict_list = target_dict.items() for file_name, artist_item in dict_list: artist = artist_item.value if artist.isdigit() or artist.isalpha() or "&" in artist or artist == "" or "," in artist or len(artist.split()) >= 3: continue print("move " + file_name + " to " + artist) if __name__ == '__main__': main()
-
חמוד לגמרי, אבל כדי לבנות תוכנה של ממש הוא ינחה אתכם בכל השלבים (שימו לב שכל השיח הזה מתנהל בעברית !):
אני: קוד ב-PHP לניהול כניסה מאובטחת של משתמשים שרשומים במסד הנתונים
הרובוט:
אם אתה מעוניין לכתוב קוד ב-PHP לניהול כניסה מאובטחת של משתמשים שרשומים במסד הנתונים, אתה יכול להתחיל על ידי כתיבת פונקציה שתקבל את שם המשתמש והסיסמה שהוזנו על ידי המשתמש כפרמטרים. לאחר מכן, ניתן לשלב קריאת הנתונים ממסד הנתונים ובדיקת התאמת השם המשתמש והסיסמה שנמסרו עם הנתונים שמופיעים במסד הנתונים. אם נמצא תאימות בין הנתונים שנמסרו לפונקציה ובין הנתונים במסד הנתונים, ניתן לכתוב קוד כדי לאפשר למשתמש לכנס לאתר ולגשת לאזורים המוגנים עבור משתמשים רשומים. עם כך, הקוד יאפשר לך לנהל כניסה מאובטחת של משתמשים רשומים לאתר באמצעות מסד נתונים.אני (מחזיר אליו את המשימה ) : כתוב פונקציה ב-PHP שתקבל את שם המשתמש והסיסמה שהוזנו על ידי המשתמש כפרמטרים. לאחר מכן, שלב את קריאת הנתונים ממסד הנתונים ובדיקת התאמת השם המשתמש והסיסמה שנמסרו עם הנתונים שמופיעים במסד הנתונים. אם נמצא תאימות בין הנתונים שנמסרו לפונקציה ובין הנתונים במסד הנתונים, כתוב קוד כדי לאפשר למשתמש להיכנס לאתר ולגשת לאזורים המוגנים עבור משתמשים רשומים.
הרובוט:
function check_credentials($username, $password){ //connect to database $db = mysqli_connect("localhost", "root", "password", "users"); //query database for user information $query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; $result = mysqli_query($db, $query); //check if there is a match in the database if (mysqli_num_rows($result) == 1){ //if there is a match, log the user in and redirect to protected pages $_SESSION['username'] = $username; header("location: protected_page.php"); } else{ //if there is no match, display an error message echo "Invalid username or password. Please try again."; } } //example usage: check_credentials("username123", "password123");
אני (לא מרוצה מהשאילתה הזו) : כתוב פונקציה ב-PHP שתקבל את שם המשתמש והסיסמה שהוזנו על ידי המשתמש כפרמטרים. לאחר מכן, שלב את קריאת הנתונים ממסד הנתונים באמצעות PDO ובדיקת התאמת השם המשתמש והסיסמה שנמסרו עם הנתונים שמופיעים במסד הנתונים. אם נמצא תאימות בין הנתונים שנמסרו לפונקציה ובין הנתונים במסד הנתונים, כתוב קוד כדי לאפשר למשתמש להיכנס לאתר ולגשת לאזורים המוגנים עבור משתמשים רשומים.
הרובוט:
function check_credentials($username, $password){ //connect to database $db = new PDO("mysql:host=localhost;dbname=users", "root", "password"); //query database for user information $query = "SELECT * FROM users WHERE username = :username AND password = :password"; $stmt = $db->prepare($query); $stmt->execute(array( "username" => $username, "password" => $password )); //check if there is a match in the database if ($stmt->rowCount() == 1){ //if there is a match, log the user in and redirect to protected pages $_SESSION['username'] = $username; header("location: protected_page.php"); } else{ //if there is no match, display an error message echo "Invalid username or password. Please try again."; } } //example usage: check_credentials("username123", "password123");
-
פוסט זה נמחק!
-
פוסט זה נמחק!