חדש אתר בדיקת מידע על המערכת שלכם לכניסה ליחצו כאן
הפוסטים הטובים ביותר שנוצרו על ידי טנטפון
-
חדש אתר בדיקת מידע על המערכת שלכםפורסם בעזרה הדדית למשתמשים מתקדמים
-
הגדרת שלוחות חדשפורסם בטיפים עצות והדגמות מהמשתמשים
הגדרת שלוחות
type=api api_link=https://plus.ivrphone.online/mudolis/text.php api_add_0=text=ההגדרהזה אמור להראות כך אם אתם לדוגמה רוצים להגדיר את המודול של תפריט
type=api api_link=https://plus.ivrphone.online/mudolis/text.php api_add_0=text=type=menuאבל אם בהגדרה הזו יש מעבר שורה לדוגמה העתקת קבצי שמע ממערכת למערכת שלי אז ההגדרות בשלוחה של ההגדרת שלוחות תיראה כך
type=api api_link=https://plus.ivrphone.online/mudolis/text.php api_add_0=text=type=api%26api_link=https://plus.ivrphone.online/mudolis/kvachim.phpכלומר מה ראינו פה שבימקום מעבר שורה עושים %26
אבל אם יש במודול הזה צורך לקבל נתונים לדוגמה יצירת קבצי tts
אז שלוחה 1 תיהיה של ההגדרה הבסיסית של המודולtype=api api_link=https://plus.ivrphone.online/mudolis/text.php api_add_0=text=type=create_ttsכלומר להגדיר את המודול אבל אם אנחנו רוצים לשאול להגדרת השלוחה הקישו 1 להגדרת מיקום שמירת הקובץ מרוש הקישו 2 עז נעשה כך
type=api api_link=https://plus.ivrphone.online/mudolis/text.php api_add_0=text=create_tts_in_folder={add_1} api_000=did1,,,,,Alpha,,, ונעלה קובץ בשם 000 שיהיה בתוכו שעלה אנא הקישו את מספר השלוחה שיהיה מוגדר מראש עליה יעלה הקובץעז מה אנו רועים פה
create_tts_in_folder=מספר השלוחה עליה יעלה הקובץ מרושכך זה אמור להיות עז כדי לקבל מהמשתמש לאן זה יעביר שזה יהיה מוגדר מראש בשלוחה נעשה כך
{add_1}עם יש 2 שתי קבלת נתונים עז במקום השני נעשה כך
{add_2}ונוסיף כך
api_002=did2,,,,,Alpha,,,ונעלה עוד קובץ בשם 002 עם השאלה השניה וכן העלה
אבל אם יש קבלת נתונים של מקלדת עברית עז נעשה כךapi_002=did2,,,,,HebrewKeyboard,,,כלומר במקום Alpha עז HebrewKeyboard יש עוד אפשרויות כפי המופיע כאן

ניתן לראות עוד על שליחת נתונים לשרת כאן
מודול ה ניבנה בעמצעות חברת מרכזיה פלוס להזמנת פיתוחים פתיחת מערכות שילחו מיל A0556762713@GMAIL.COM וצאפ 0733517517 השערת הודעה 0733517517 -
RE: תגובות כל המודולים מבית מרכזיה פלוספורסם בעזרה הדדית למשתמשים מתקדמים
שלום לכולם! 
אני חייב להתחיל מהמקום החשוב ביותר – תודה ענקית ל-@ivrפון!

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

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

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

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

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

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



קריאה חשובה 


וכעת, לאחר כל הסיפורים והדוגמאות, אני חייב לבקש:
מישהו יכול לשלוח את האתר החדש לבדיקה בנטפרי?!


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


בזכותו, הפרויקטים שלי ממשיכים להתקדם ולשגשג.
לכל מי שתמך בדרך, תודה רבה – וכל מי יכול לשלוח את האתר לבדיקה בנטפרי – תהיה לו תודה מיוחדת גם מהקהילה וגם ממני אישית.
-
RE: 🔒 שדרוג אבטחה: הוספת אימות דו-שלבי (MFA) בעת כניסה לאתר ניהול המערכת, וכן בעת שימוש ב-APIפורסם בחדש במערכת
@שלוימי-770 כתב ב
שדרוג אבטחה: הוספת אימות דו-שלבי (MFA) בעת כניסה לאתר ניהול המערכת, וכן בעת שימוש ב-API:אפשרות זו זמינה כבר כעת ותהפוך לחובה החל מ01/11/2025. לאחר תאריך זה
מה בקשר לרסילרים האם גם במערכות שלנו זה יהיה כי אם כן לא יהיה ניתן לחלק מערכות וגם לנהל כי במערכות ברסילרים המספר טלפון של מנהל המערכת זה המספר של המערכת עצמה
-
RE: הורדת הודעות מאתר הניהולפורסם בשאלות ועזרה הדדית
@פלוני-אלמוני-1 בניתי לעצמי אתר כזה תישלח לי למיל A055762713@GMAIL.COM מספר מערכת סיסמה מיספר שלוחה ואני יוריד
-
RE: צינתוק ממספר אחרפורסם בפורום מפתחים API
@CUBASE אתה יכול לעשות את זה באתר הזה שלי בתיקית צינתוקים ויש שם אפשרות להפעיל צינתוק בצורה רנדומלית
-
הדבקה בשרתפורסם בפורום PHP
שלום אני משתמש בחברה של השרתים הזות https://dash.infinityfree.com/login יש לי קודים שכתבתי בוורד ואני נכנס למנהל הקבצים פתחתי קובץ ואני מעתיק כשאני לוחץ על העכבר בצד ימין שיעבור לאפשרויות ומאבי לי אפשרויות באנגלית איך אני מדביק
-
RE: דחוף נמחק לי שלוחה עם כ 3000 הודעותפורסם בשאלות ועזרה הדדית
@מערכת-המשפחה מערכת המשפחה תיתקש ל ימות ותקיש 1\1
-
RE: הגדרה במערכת אחרתפורסם בשאלות ועזרה הדדית
יפה. אז אם נלך על זה שלב־שלב — ככה פותחים פרויקט ב־GitHub כדי ש־Render יוכל למשוך ממנו את הקבצים שלך:
🧰 שלב 1 — פתיחת חשבון
כנס ל־https://github.com
.אם אין לך חשבון, לחץ Sign up, תבחר שם משתמש, אימייל וסיסמה.
אחרי ההרשמה — תיכנס לחשבון שלך.
שלב 2 — יצירת ריפוזיטורי (Repository)לחץ על הכפתור הירוק New בצד שמאל למעלה.
תן שם, לדוגמה ivr-php-server.
תשאיר את האפשרות Public (כדי ש־Render יוכל לקרוא את זה).
סמן את האפשרות Add a README file (לא חובה אבל עוזר).
לחץ על Create repository.
שלב 3 — העלאת הקבצים שלךיש שתי דרכים:
️ דרך הדפדפן:בתוך הריפוזיטורי שפתחת, לחץ על Add file → Upload files.
גרור לשם את הקבצים שלך:
index.php, api.php, וכל מה שקשור לפרויקט שלך.גלול למטה ולחץ Commit changes (כפתור ירוק).
או
דרך מחשב מקומי (אם יש לך Git):
git clone https://github.com/username/ivr-php-server.git
cd ivr-php-serverשים את הקבצים שלך בתיקייה
git add .
git commit -m "first commit"
git push
שלב 4 — חיבור ל־Renderכנס שוב ל־https://render.com
.לחץ על New + → Web Service.
Render יבקש הרשאה לגישה לחשבון GitHub שלך — אשר.
תבחר את הריפוזיטורי שלך (ivr-php-server).
תמשיך בהגדרות כמו שהראיתי קודם:
Start Command: php -S 0.0.0.0:10000
Environment: Free
פוסטים אחרונים שנוצרו על ידי טנטפון
-
RE: לא מצליח להשמיעה קבציםפורסם בפורום מפתחים API
@פלמנמוני אנה הקוד אבל יש לי בעיה קטנה אני רציתי שישירות אחרי שאוה מבי את התשובה יבא את התשובה לממיר טקסט לקול שלהם ואז ישמיעה את הקובץ למשתמש וזה לא משמיעה את הקובץ
import requests from flask import Flask, request, Response import warnings import re from google import genai from google.genai import types import wave import io # הקוד הזה מסתיר את אזהרות ה-SSL הלא קריטיות שהופיעו קודם from requests.packages.urllib3.exceptions import InsecureRequestWarning warnings.simplefilter('ignore', InsecureRequestWarning) app = Flask(__name__) # פונקציה לשמירת האודיו לקובץ במדיום זיכרון במקום לשמור כקובץ def wave_file_in_memory(pcm, channels=1, rate=24000, sample_width=2): buf = io.BytesIO() with wave.open(buf, "wb") as wf: wf.setnchannels(channels) wf.setsampwidth(sample_width) wf.setframerate(rate) wf.writeframes(pcm) buf.seek(0) return buf @app.route('/app.py', methods=['GET']) def handle_gemini_request(): print(">>> Request received! Processing with Gemini...") txt = request.args.get('txt') if not txt or len(txt.strip()) < 2: return "read=t-אנא הקלד שאלה ברורה ומלאה.=txt,,,,,HebrewKeyboard," # ==================== המפתח שלך ==================== api_key = "AIzaSyB6AxGaSia5qH43lOp2v268mMWEpwKRDqA" # ================================================== # שימוש בשם מודל מהדור החדש, לפי התיעוד model = "gemini-2.0-flash" api_url = f"https://generativelanguage.googleapis.com/v1/models/{model}:generateContent?key={api_key}" headers = {'Content-Type': 'application/json'} data = { 'contents': [{ 'parts': [{'text': txt}] }] } try: response = requests.post(api_url, json=data, headers=headers, verify=False, timeout=20) print(f">>> Raw response status code: {response.status_code}") print(f">>> Raw response text: {response.text}") response.raise_for_status() response_json = response.json() if 'candidates' not in response_json or not response_json['candidates']: print("!!! Gemini response is missing 'candidates'. Possibly blocked by safety filters.") return "read=t-השאלה שלך נחסמה או שלא התקבלה תשובה ברורה. נסה לשאול אחרת.=txt,,,,,HebrewKeyboard," generated_text = response_json['candidates'][0]['content']['parts'][0]['text'] print(f">>> Gemini Response: {generated_text}") except requests.exceptions.Timeout: print("!!! Request to Google API timed out!") return "read=t-לשרת לוקח יותר מדי זמן לענות. נסה שוב מאוחר יותר.=txt,,,,,HebrewKeyboard," except requests.exceptions.HTTPError as e: print("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") print(">>> GOOGLE API RETURNED AN HTTP ERROR!") print(f">>> Status Code: {e.response.status_code}") print(f">>> Response Body: {e.response.text}") print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n") return "read=t-שגיאה בתקשורת עם הבינה המלאכותית. ייתכן ששם המודל אינו נכון.=txt,,,,,HebrewKeyboard," except Exception as e: print(f"!!! An unexpected error occurred: {e}") return "read=t-אירעה שגיאה לא צפויה.=txt,,,,,HebrewKeyboard," # ---- עיבוד התשובה וחיתוך למקטעים ---- generated_text = re.sub(r'[^A-Za-z0-9א-ת ]', '', generated_text) # הסרת סימנים מיוחדים כמו ** # המרת טקסט לדיבור באמצעות Gemini API (TTS) client = genai.Client() response = client.models.generate_content( model="gemini-2.5-flash-preview-tts", # או המודל הרלוונטי לך contents=generated_text, config=types.GenerateContentConfig( response_modalities=["AUDIO"], speech_config=types.SpeechConfig( voice_config=types.VoiceConfig( prebuilt_voice_config=types.PrebuiltVoiceConfig( voice_name='Kore', # בחירת הקול מתוך המובנים ) ) ) ) ) data = response.candidates[0].content.parts[0].inline_data.data # שמירת האודיו במדיום זיכרון buf = wave_file_in_memory(data) # החזרת האודיו ישירות כתגובה ב-HTTP return Response(buf, mimetype='audio/wav') if __name__ == '__main__': app.run(host='0.0.0.0', port=5001, debug=True)הקוד שעובד בלא המרה לאודיו את התשובה
import requests from flask import Flask, request import warnings import re # הקוד הזה מסתיר את אזהרות ה-SSL הלא קריטיות שהופיעו קודם from requests.packages.urllib3.exceptions import InsecureRequestWarning warnings.simplefilter('ignore', InsecureRequestWarning) app = Flask(__name__) @app.route('/app.py', methods=['GET']) def handle_gemini_request(): print(">>> Request received! Processing with Gemini...") txt = request.args.get('txt') if not txt or len(txt.strip()) < 2: return "read=t-אנא הקלד שאלה ברורה ומלאה.=txt,,,,,HebrewKeyboard," api_key = "AIzaSyB6AxGaSia5qH43lOp2v268mMWEpwKRDqA" model = "gemini-2.0-flash" api_url = f"https://generativelanguage.googleapis.com/v1/models/{model}:generateContent?key={api_key}" headers = {'Content-Type': 'application/json'} data = { 'contents': [{ 'parts': [{'text': txt}] }] } try: response = requests.post(api_url, json=data, headers=headers, verify=False, timeout=20) print(f">>> Raw response status code: {response.status_code}") print(f">>> Raw response text: {response.text}") response.raise_for_status() response_json = response.json() if 'candidates' not in response_json or not response_json['candidates']: print("!!! Gemini response is missing 'candidates'. Possibly blocked by safety filters.") return "read=t-השאלה שלך נחסמה או שלא התקבלה תשובה ברורה. נסה לשאול אחרת.=txt,,,,,HebrewKeyboard," generated_text = response_json['candidates'][0]['content']['parts'][0]['text'] print(f">>> Gemini Response: {generated_text}") except requests.exceptions.Timeout: print("!!! Request to Google API timed out!") return "read=t-לשרת לוקח יותר מדי זמן לענות. נסה שוב מאוחר יותר.=txt,,,,,HebrewKeyboard," except requests.exceptions.HTTPError as e: print("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") print(">>> GOOGLE API RETURNED AN HTTP ERROR!") print(f">>> Status Code: {e.response.status_code}") print(f">>> Response Body: {e.response.text}") print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n") return "read=t-שגיאה בתקשורת עם הבינה המלאכותית. ייתכן ששם המודל אינו נכון.=txt,,,,,HebrewKeyboard," except Exception as e: print(f"!!! An unexpected error occurred: {e}") return "read=t-אירעה שגיאה לא צפויה.=txt,,,,,HebrewKeyboard," # ---- עיבוד התשובה וחיתוך למקטעים ---- # הסרת סימנים מיוחדים מהתשובה כמו ** וכו' generated_text = re.sub(r'[^A-Za-z0-9א-ת ]', '', generated_text) # מסיר כל תו שלא אות או מספר # חילוק למילים והוספת פסיק אחרי כל 10 מילים words = generated_text.split() chunks = [] for i in range(0, len(words), 10): # כל 10 מילים chunk = ' '.join(words[i:i+10]) chunks.append(chunk + ',') # הוספת פסיק בסוף כל 10 מילים # מחבר את כל הקטעים חזרה לשורה אחת result = ' '.join(chunks) return f"id_list_message=t-{result}" if __name__ == '__main__': app.run(host='0.0.0.0', port=5001, debug=True) -
לא מצליח להשמיעה קבציםפורסם בפורום מפתחים API
אני רציתי שישירות אחרי שאוה מבי את התשובה יבא את התשובה לממיר טקסט לקול שלGENIMI ואז ישמיעה את הקובץ למשתמש וזה לא משמיעה את הקובץ זה מעביר להודעה TTS רגילה של ימות בלי האמרה
import requests from flask import Flask, request, Response import warnings import re from google import genai from google.genai import types import wave import io # הקוד הזה מסתיר את אזהרות ה-SSL הלא קריטיות שהופיעו קודם from requests.packages.urllib3.exceptions import InsecureRequestWarning warnings.simplefilter('ignore', InsecureRequestWarning) app = Flask(__name__) # פונקציה לשמירת האודיו לקובץ במדיום זיכרון במקום לשמור כקובץ def wave_file_in_memory(pcm, channels=1, rate=24000, sample_width=2): buf = io.BytesIO() with wave.open(buf, "wb") as wf: wf.setnchannels(channels) wf.setsampwidth(sample_width) wf.setframerate(rate) wf.writeframes(pcm) buf.seek(0) return buf @app.route('/app.py', methods=['GET']) def handle_gemini_request(): print(">>> Request received! Processing with Gemini...") txt = request.args.get('txt') if not txt or len(txt.strip()) < 2: return "read=t-אנא הקלד שאלה ברורה ומלאה.=txt,,,,,HebrewKeyboard," # ==================== המפתח שלך ==================== api_key = "AIzaSyB6AxGaSia5qH43lOp2v268mMWEpwKRDqA" # ================================================== # שימוש בשם מודל מהדור החדש, לפי התיעוד model = "gemini-2.0-flash" api_url = f"https://generativelanguage.googleapis.com/v1/models/{model}:generateContent?key={api_key}" headers = {'Content-Type': 'application/json'} data = { 'contents': [{ 'parts': [{'text': txt}] }] } try: response = requests.post(api_url, json=data, headers=headers, verify=False, timeout=20) print(f">>> Raw response status code: {response.status_code}") print(f">>> Raw response text: {response.text}") response.raise_for_status() response_json = response.json() if 'candidates' not in response_json or not response_json['candidates']: print("!!! Gemini response is missing 'candidates'. Possibly blocked by safety filters.") return "read=t-השאלה שלך נחסמה או שלא התקבלה תשובה ברורה. נסה לשאול אחרת.=txt,,,,,HebrewKeyboard," generated_text = response_json['candidates'][0]['content']['parts'][0]['text'] print(f">>> Gemini Response: {generated_text}") except requests.exceptions.Timeout: print("!!! Request to Google API timed out!") return "read=t-לשרת לוקח יותר מדי זמן לענות. נסה שוב מאוחר יותר.=txt,,,,,HebrewKeyboard," except requests.exceptions.HTTPError as e: print("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") print(">>> GOOGLE API RETURNED AN HTTP ERROR!") print(f">>> Status Code: {e.response.status_code}") print(f">>> Response Body: {e.response.text}") print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n") return "read=t-שגיאה בתקשורת עם הבינה המלאכותית. ייתכן ששם המודל אינו נכון.=txt,,,,,HebrewKeyboard," except Exception as e: print(f"!!! An unexpected error occurred: {e}") return "read=t-אירעה שגיאה לא צפויה.=txt,,,,,HebrewKeyboard," # ---- עיבוד התשובה וחיתוך למקטעים ---- generated_text = re.sub(r'[^A-Za-z0-9א-ת ]', '', generated_text) # הסרת סימנים מיוחדים כמו ** # המרת טקסט לדיבור באמצעות Gemini API (TTS) client = genai.Client() response = client.models.generate_content( model="gemini-2.5-flash-preview-tts", # או המודל הרלוונטי לך contents=generated_text, config=types.GenerateContentConfig( response_modalities=["AUDIO"], speech_config=types.SpeechConfig( voice_config=types.VoiceConfig( prebuilt_voice_config=types.PrebuiltVoiceConfig( voice_name='Kore', # בחירת הקול מתוך המובנים ) ) ) ) ) data = response.candidates[0].content.parts[0].inline_data.data # שמירת האודיו במדיום זיכרון buf = wave_file_in_memory(data) # החזרת האודיו ישירות כתגובה ב-HTTP return Response(buf, mimetype='audio/wav') if __name__ == '__main__': app.run(host='0.0.0.0', port=5001, debug=True)הקוד שעובד בלא המרה לאודיו את התשובה
import requests from flask import Flask, request import warnings import re # הקוד הזה מסתיר את אזהרות ה-SSL הלא קריטיות שהופיעו קודם from requests.packages.urllib3.exceptions import InsecureRequestWarning warnings.simplefilter('ignore', InsecureRequestWarning) app = Flask(__name__) @app.route('/app.py', methods=['GET']) def handle_gemini_request(): print(">>> Request received! Processing with Gemini...") txt = request.args.get('txt') if not txt or len(txt.strip()) < 2: return "read=t-אנא הקלד שאלה ברורה ומלאה.=txt,,,,,HebrewKeyboard," api_key = "AIzaSyB6AxGaSia5qH43lOp2v268mMWEpwKRDqA" model = "gemini-2.0-flash" api_url = f"https://generativelanguage.googleapis.com/v1/models/{model}:generateContent?key={api_key}" headers = {'Content-Type': 'application/json'} data = { 'contents': [{ 'parts': [{'text': txt}] }] } try: response = requests.post(api_url, json=data, headers=headers, verify=False, timeout=20) print(f">>> Raw response status code: {response.status_code}") print(f">>> Raw response text: {response.text}") response.raise_for_status() response_json = response.json() if 'candidates' not in response_json or not response_json['candidates']: print("!!! Gemini response is missing 'candidates'. Possibly blocked by safety filters.") return "read=t-השאלה שלך נחסמה או שלא התקבלה תשובה ברורה. נסה לשאול אחרת.=txt,,,,,HebrewKeyboard," generated_text = response_json['candidates'][0]['content']['parts'][0]['text'] print(f">>> Gemini Response: {generated_text}") except requests.exceptions.Timeout: print("!!! Request to Google API timed out!") return "read=t-לשרת לוקח יותר מדי זמן לענות. נסה שוב מאוחר יותר.=txt,,,,,HebrewKeyboard," except requests.exceptions.HTTPError as e: print("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") print(">>> GOOGLE API RETURNED AN HTTP ERROR!") print(f">>> Status Code: {e.response.status_code}") print(f">>> Response Body: {e.response.text}") print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n") return "read=t-שגיאה בתקשורת עם הבינה המלאכותית. ייתכן ששם המודל אינו נכון.=txt,,,,,HebrewKeyboard," except Exception as e: print(f"!!! An unexpected error occurred: {e}") return "read=t-אירעה שגיאה לא צפויה.=txt,,,,,HebrewKeyboard," # ---- עיבוד התשובה וחיתוך למקטעים ---- # הסרת סימנים מיוחדים מהתשובה כמו ** וכו' generated_text = re.sub(r'[^A-Za-z0-9א-ת ]', '', generated_text) # מסיר כל תו שלא אות או מספר # חילוק למילים והוספת פסיק אחרי כל 10 מילים words = generated_text.split() chunks = [] for i in range(0, len(words), 10): # כל 10 מילים chunk = ' '.join(words[i:i+10]) chunks.append(chunk + ',') # הוספת פסיק בסוף כל 10 מילים # מחבר את כל הקטעים חזרה לשורה אחת result = ' '.join(chunks) return f"id_list_message=t-{result}" if __name__ == '__main__': app.run(host='0.0.0.0', port=5001, debug=True) -
RE: אני צריך עזרה ביצירת בינה מלאכותית לטלפוןפורסם בשאלות ועזרה הדדית
@טנטפון מה עני עושה אך אני מיתחבר אולי מישהו יכל לישעול במתמחים תופ

-
RE: אני צריך עזרה ביצירת בינה מלאכותית לטלפוןפורסם בשאלות ועזרה הדדית
@HTML כתב באני צריך עזרה ביצירת בינה מלאכותית לטלפון:
תלך להגדרות של גוגל (לא צריך התחברות) ותכבה את האימות הדו שלבי
אבל כן צריך להתחבר

-
RE: אני צריך עזרה ביצירת בינה מלאכותית לטלפוןפורסם בשאלות ועזרה הדדית
@HTML אני לא יכול להתחבר לחשבון שלי
-
RE: אני צריך עזרה ביצירת בינה מלאכותית לטלפוןפורסם בשאלות ועזרה הדדית
@HTML אני לא מצליח להתחבר לחשבון גוגל שלי הפעלתי אימות דו שלבי למספר וירטואלי שלי שאני ניכנס להצגת ה SMS באתר הזה אני לא רועה את ה SMS
