בעיה | בעיה בAPI בחיבור לגוגל AI סטודיו
-
שלום לכולם, אני מנסה כבר כמה ימים להוציא API (המודל החינמי) מגוגל AI סטודיו,
אבל כל הזמן התוכנה שבשבילה אני מנסה להוציא טוענת שזה לא תקין או שיש בעיות בחיבור לאינטרנט,
יצויין שאני לא כל כך מבין בAPI,
אמנם גוגל הודיעו (בחלון קופץ כשנכנסתי לאחזור מפתחות API בגוגל AI סטודיו) שיש בעיות בשל המעבר למודיל מתקדמים יותר בAPI, אבל השאלה היא אם זה באמת זה או שפשוט לא הוצאתי את המפתח API הנכון בשבילי (תוכנה אישית - לא עובד עליה בגוגל AI סטודיו).
אם יש למישהו ידע - אשמח שיכתוב!
תודה לכולם! -
@aiib import json
import requests
import urllib3urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def call_gemini_api(prompt, api_key):
"""
פונקציה לשליחת בקשה ל-Gemini 1.5 Flash
מחזירה JSON עם התשובה או הודעת שגיאה
"""
# כתובת ה-Endpoint של גוגל
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={api_key}"headers = {'Content-Type': 'application/json'} # מבנה הנתונים לפי התיעוד של Google AI data = { "contents": [{ "parts": [{"text": prompt}] }] } try: # verify=False - קריטי למשתמשי רימון/נטפרי/אתרוג response = requests.post(url, headers=headers, json=data, verify=False, timeout=15) if response.status_code == 200: result = response.json() # שליפת הטקסט מתוך המבנה של גוגל answer = result['candidates'][0]['content']['parts'][0]['text'] return {"status": "success", "data": answer} else: return {"status": "error", "code": response.status_code, "message": response.text} except Exception as e: return {"status": "exception", "message": str(e)}השתמשתי בספרייה לעקיפת הסינון לצורך התקשרות עם השרת.
(משתמש בסינון רימון אבל זה אמור לעבוד בכל הסינונים).
@aiib מתנצל על ההסברים שהוספתי בקוד - הוספתי בשביל עצמי ולא היה לי זמן למחוק אותם. -
@aiib import json
import requests
import urllib3urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def call_gemini_api(prompt, api_key):
"""
פונקציה לשליחת בקשה ל-Gemini 1.5 Flash
מחזירה JSON עם התשובה או הודעת שגיאה
"""
# כתובת ה-Endpoint של גוגל
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={api_key}"headers = {'Content-Type': 'application/json'} # מבנה הנתונים לפי התיעוד של Google AI data = { "contents": [{ "parts": [{"text": prompt}] }] } try: # verify=False - קריטי למשתמשי רימון/נטפרי/אתרוג response = requests.post(url, headers=headers, json=data, verify=False, timeout=15) if response.status_code == 200: result = response.json() # שליפת הטקסט מתוך המבנה של גוגל answer = result['candidates'][0]['content']['parts'][0]['text'] return {"status": "success", "data": answer} else: return {"status": "error", "code": response.status_code, "message": response.text} except Exception as e: return {"status": "exception", "message": str(e)}השתמשתי בספרייה לעקיפת הסינון לצורך התקשרות עם השרת.
(משתמש בסינון רימון אבל זה אמור לעבוד בכל הסינונים).
@aiib מתנצל על ההסברים שהוספתי בקוד - הוספתי בשביל עצמי ולא היה לי זמן למחוק אותם. -
@aiib import json
import requests
import urllib3urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def call_gemini_api(prompt, api_key):
"""
פונקציה לשליחת בקשה ל-Gemini 1.5 Flash
מחזירה JSON עם התשובה או הודעת שגיאה
"""
# כתובת ה-Endpoint של גוגל
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={api_key}"headers = {'Content-Type': 'application/json'} # מבנה הנתונים לפי התיעוד של Google AI data = { "contents": [{ "parts": [{"text": prompt}] }] } try: # verify=False - קריטי למשתמשי רימון/נטפרי/אתרוג response = requests.post(url, headers=headers, json=data, verify=False, timeout=15) if response.status_code == 200: result = response.json() # שליפת הטקסט מתוך המבנה של גוגל answer = result['candidates'][0]['content']['parts'][0]['text'] return {"status": "success", "data": answer} else: return {"status": "error", "code": response.status_code, "message": response.text} except Exception as e: return {"status": "exception", "message": str(e)}השתמשתי בספרייה לעקיפת הסינון לצורך התקשרות עם השרת.
(משתמש בסינון רימון אבל זה אמור לעבוד בכל הסינונים).
@aiib מתנצל על ההסברים שהוספתי בקוד - הוספתי בשביל עצמי ולא היה לי זמן למחוק אותם. -
@המלאך זה כל הקוד או שהשמטת את הAPI עצמו? (יותר נכון, באיזה צורה התוכנה יודעת מה הAPI?)
עריכה: תעלה את כל הקטע הרלוונטי עם צינזור של הAPI עצמו
-
@aiib הוספתי בממשק עצמו את הענייין של הAPI (כלומר המשתמש עצמו צריך להוסיף API עצמי ולהעתיק בכפתור ייעודי).
@המלאך שוב, אני לא מבין יותר מדי בקוד... (אני משתמש בAI כדי לפתח...) אבל לפחות איך שעבדתי עד היום אמור להיות בקוד שורה שאמורה לומר מה הURL של הקריאה, איזה מודל בדיוק וגם מאיפה לשאוב את הAPI (מהקוד עצמו או מקובץ ENV) אצלך אני לא רואה. אז זה יכול לנבוע או מחוסר ידע שלי... או שיש עוד דרכים או שזאת הבעיה...
לכן אולי כדאי להביא את הקטע השלם הנצרך -
@aiib הוספתי בממשק עצמו את הענייין של הAPI (כלומר המשתמש עצמו צריך להוסיף API עצמי ולהעתיק בכפתור ייעודי).
@המלאך אני משתמש בנטפרי ועובד מצויין
ובשביל מה אתה צריך לעשות עקיפת סינון? -
@המלאך שוב, אני לא מבין יותר מדי בקוד... (אני משתמש בAI כדי לפתח...) אבל לפחות איך שעבדתי עד היום אמור להיות בקוד שורה שאמורה לומר מה הURL של הקריאה, איזה מודל בדיוק וגם מאיפה לשאוב את הAPI (מהקוד עצמו או מקובץ ENV) אצלך אני לא רואה. אז זה יכול לנבוע או מחוסר ידע שלי... או שיש עוד דרכים או שזאת הבעיה...
לכן אולי כדאי להביא את הקטע השלם הנצרך@aiib אתה צודק בגישה שלך, וודאי שAPI רגיל עובד כך, אבל כמו שכתבתי - תוכל לראות בקוד עצמו - אני נתקעתי עם הסינון (בין שלי ובין של המשתמש) ולכן רציתי לעשות גישה שלא תדרוש בדיקת אבטחה של הסינון - מה שיחסום את הגישה מצד גוגל שדורשת 'שיחה פרטית',
ולכן כתבתי שאני עובד עם ספריית requests ומשלב את הכל (היו אר אל והא פי איי) בתוך שורה אחת: import requests
import jsondef call_gemini(prompt, api_key):
# כאן מוגדר ה-URL, המודל (gemini-1.5-flash) והמפתח (key=api_key) - הכל בשורה אחת!
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={api_key}"headers = {'Content-Type': 'application/json'} # גוף הבקשה (Payload) data = { "contents": [{"parts": [{"text": prompt}]}] } # verify=False זה מה שמאפשר לזה לעבוד גם עם סינון פעיל response = requests.post(url, headers=headers, json=data, verify=False) if response.status_code == 200: return response.json()['candidates'][0]['content']['parts'][0]['text'] else: return f"Error: {response.status_code} - {response.text}"תפסת?
@מגנוס-קרלסן שוב כיוון שה API עשה לי בעיות וחשבתי שזה בעיה בסינון הוספתי את זה , (בכל מקרה זה גם אם לא מועיל אף פעם לא יזיק),
בדקתי בשילוב עם הקוד הזה ולא הצלחתי למצוא פיתרון לAPI שמסרב לעבוד!
אם למישהו יהיה תשובה - אשמח... -
@aiib אתה צודק בגישה שלך, וודאי שAPI רגיל עובד כך, אבל כמו שכתבתי - תוכל לראות בקוד עצמו - אני נתקעתי עם הסינון (בין שלי ובין של המשתמש) ולכן רציתי לעשות גישה שלא תדרוש בדיקת אבטחה של הסינון - מה שיחסום את הגישה מצד גוגל שדורשת 'שיחה פרטית',
ולכן כתבתי שאני עובד עם ספריית requests ומשלב את הכל (היו אר אל והא פי איי) בתוך שורה אחת: import requests
import jsondef call_gemini(prompt, api_key):
# כאן מוגדר ה-URL, המודל (gemini-1.5-flash) והמפתח (key=api_key) - הכל בשורה אחת!
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={api_key}"headers = {'Content-Type': 'application/json'} # גוף הבקשה (Payload) data = { "contents": [{"parts": [{"text": prompt}]}] } # verify=False זה מה שמאפשר לזה לעבוד גם עם סינון פעיל response = requests.post(url, headers=headers, json=data, verify=False) if response.status_code == 200: return response.json()['candidates'][0]['content']['parts'][0]['text'] else: return f"Error: {response.status_code} - {response.text}"תפסת?
@מגנוס-קרלסן שוב כיוון שה API עשה לי בעיות וחשבתי שזה בעיה בסינון הוספתי את זה , (בכל מקרה זה גם אם לא מועיל אף פעם לא יזיק),
בדקתי בשילוב עם הקוד הזה ולא הצלחתי למצוא פיתרון לAPI שמסרב לעבוד!
אם למישהו יהיה תשובה - אשמח... -
@המלאך כתב בבעיה | בעיה בAPI בחיבור לגוגל AI סטודיו:
gemini-1.5-flash
כמדומני שהוא כבר לא פעיל!! תבדוק גרסה מתקדמת יותר כמו 2.0 או 2.5
עריכה: עכשיו אני רואה שזה השגיאה שקיבלת בפועל...
@aiib
אוייש!!!!!!
לא שמתי לב בכלל! הבנת? בגלל שאני לא מבין כל כך (בלשון המעטה) ביצירת API נעזרתי בג'מיני ליצירת הקוד הספציפי הזה...
ולפני שירדו עלי למה אני משתמש בAI לקוד, אני מצהיר זה רק לחלק הזה של הAPI.
והוא כנראה לא מעודכן...
טוב, לפחות להבא אני ידע קצת יותר על APIיים,
תודה רבה!! -
@aiib
אוייש!!!!!!
לא שמתי לב בכלל! הבנת? בגלל שאני לא מבין כל כך (בלשון המעטה) ביצירת API נעזרתי בג'מיני ליצירת הקוד הספציפי הזה...
ולפני שירדו עלי למה אני משתמש בAI לקוד, אני מצהיר זה רק לחלק הזה של הAPI.
והוא כנראה לא מעודכן...
טוב, לפחות להבא אני ידע קצת יותר על APIיים,
תודה רבה!! -
@המלאך כתב בבעיה | בעיה בAPI בחיבור לגוגל AI סטודיו:
והוא כנראה לא מעודכן...
זה מצחיק מאד אבל גם אני נפגשתי בזה רבות. הוא מעודכן ממש אחורה וגם כשמסבירים לו הוא מתווכח...
-
@aiib
אוייש!!!!!!
לא שמתי לב בכלל! הבנת? בגלל שאני לא מבין כל כך (בלשון המעטה) ביצירת API נעזרתי בג'מיני ליצירת הקוד הספציפי הזה...
ולפני שירדו עלי למה אני משתמש בAI לקוד, אני מצהיר זה רק לחלק הזה של הAPI.
והוא כנראה לא מעודכן...
טוב, לפחות להבא אני ידע קצת יותר על APIיים,
תודה רבה!!@המלאך כתב בבעיה | בעיה בAPI בחיבור לגוגל AI סטודיו:
ולפני שירדו עלי למה אני משתמש בAI לקוד, אני מצהיר זה רק לחלק הזה של הAPI.
אפחד לא יורד עליך... אני לא מבין בכלל בקוד ואני מפתח רק עם AI... וזה לגיטימי לגמרי וכל העולם עובד ככה... אז נכון שאנשים כמוני עלולים ליצור דברים עם בעיות אבטחה או ליצור דברים עם קושי עתידי לתחזוק אבל זה עובד ואין מה להתבייש...
-
@המלאך כתב בבעיה | בעיה בAPI בחיבור לגוגל AI סטודיו:
מה עם ג'מיני 3.0 ו3.1 יש להם כבר API חינמי? או שזה רק 2.5?
יש רק את 3.1 פרו ו-3 פלאש
אבל תוך שנייה נגמר להם המגבלה -
@המלאך כתב בבעיה | בעיה בAPI בחיבור לגוגל AI סטודיו:
ולפני שירדו עלי למה אני משתמש בAI לקוד, אני מצהיר זה רק לחלק הזה של הAPI.
אפחד לא יורד עליך... אני לא מבין בכלל בקוד ואני מפתח רק עם AI... וזה לגיטימי לגמרי וכל העולם עובד ככה... אז נכון שאנשים כמוני עלולים ליצור דברים עם בעיות אבטחה או ליצור דברים עם קושי עתידי לתחזוק אבל זה עובד ואין מה להתבייש...
-
@aiib תודה.
אבל בוודאות יש פה כאלה שלא נהנים מאנשים שמשתמשים בAI לגמרי.
אני כמו שאני מצהיר בפרופיל שלי, נעזר בAI אבל בסופו של דבר זה רק לקצר את הזמן, אבל וודאי שלעצם הקוד אני עושה בעצמי.
רגע, ו2.5 כבר לא זמין יותר? ומה המגבלות של השלוש?@המלאך כתב בבעיה | בעיה בAPI בחיבור לגוגל AI סטודיו:
אבל בוודאות יש פה כאלה שלא נהנים מאנשים שמשתמשים בAI לגמרי.
בעיה שלהם... כמובן עדיף כמה שיותר להבין מה שעושים אבל הכל טוב...
אני כמו שאני מצהיר בפרופיל שלי, נעזר בAI אבל בסופו של דבר זה רק לקצר את הזמן, אבל וודאי שלעצם הקוד אני עושה בעצמי.
רגע, ו2.5 כבר לא זמין יותר? ומה המגבלות של השלוש?זמין,
לגבי הגבלות יש אתר שכתוב בו את כל ההגבלות, לא מוצא כרגע את הלינק