בינה מלאכותית טלפונית על שרת פרטי!!!!!!!!!!!!!!!!
-
מדריך מפורט ליצירת בינה מלאכותית טלפונית על שרת ngrok פרטי!!!!!!!!!
שלב א' יש לפתוח בתוך הכונן C תיקיה בשם AI
שלב ב' בתוך תיקית AI יש לפתוח תיקיה בשם data
שלב ג' לפתוח פנקס רשימות ולעתיק אליו את הקוד הבא:import requests from flask import Flask, request, jsonify import warnings import re # הקוד הזה מסתיר את אזהרות ה-SSL הלא קריטיות שהופיעו קודם from requests.packages.urllib3.exceptions import InsecureRequestWarning warnings.simplefilter('ignore', InsecureRequestWarning) app = Flask(__name__) # נשמור את הצ'אט בסטייט (בזיכרון) לכל משתמש לפי מזהה ייחודי chat_sessions = {} @app.route('/app.py', methods=['GET']) def handle_gemini_request(): user_id = request.args.get('user_id') # מזהה ייחודי למשתמש action = request.args.get('action') # פעולה - אם זה 1 או 2 # אם אין מזהה משתמש, יצור אותו (שימוש ב-id רנדומלי במקרה הזה) if not user_id: user_id = str(hash(request.remote_addr)) # ייחודי לכל IP # אם המשתמש בחר 2, נתחיל שיחה חדשה (נמחק את כל ההיסטוריה של השיחה) if action == "2": chat_sessions[user_id] = [] # אתחול הצ'אט מחדש return "read=t-שיחה חדשה החלה. אתה יכול להתחיל לשאול. הצ'אט התחדש!." # אם לא נמצא משתמש בשיחה, התחילו שיחה חדשה if user_id not in chat_sessions: chat_sessions[user_id] = [] # קבלת הטקסט מהמשתמש txt = request.args.get('txt') if not txt or len(txt.strip()) < 2: return "read=t-אנא הקלד שאלה ברורה ומלאה.=txt,,,,,HebrewKeyboard," api_key = "פה יש להכניס API של ג'ימיני!" 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) # הוספת אפשרות למעבר לשיחה חדשה או המשך השיחה chat_sessions[user_id].append(generated_text) # שומר את התשובה שהתקבלה בצ'אט result += " תוכל להקליד 1 אם אתה רוצה להמשיך בשיחה או 2 אם אתה רוצה להתחיל שיחה חדשה." return f"id_list_message=t-{result}" if __name__ == '__main__': app.run(host='0.0.0.0', port=5001, debug=True)יש לשים לב בשורה 39 להכניס את ה API מג'ימיני משיגים מפה:
https://aistudio.google.com/api-keys
יש לשמור את הקובץ בשם app.py בתוך תיקית data
לאחר מכן יש לוודאות שפייתון מותקן במחשב שלכם!
עם לא מותקן יש להתקין מפה:
https://www.python.org/
יש גם לוודאות שמותקן ngrok עם לא מותקן יש להתקין מפה:
https://ngrok.com/
לאחר מכן יש לפתוך CMD בתיקיה ששמרנו את הקובץ "app.py"
ולהריץ:pip install requestsאחרי שזה יגמור יש להריץ:
python app.pyלאחר מכן יש לפתוח עוד CMD ולהריץ:
ngrok http 5001לאחר מכן אין לסגור את חלונות ה:CMD
לאחר מכן עם רוצים בינה מלאכותית שמקלידים לה (ללא בזבוז יחידות)
יש לשים בשלוחה את הקוד הבא:type=api api_link= פה יש לשים את כתובת שרת ה ngrok בסוף כתובת השרת יש להוסיף:/app.py לאחר מכן זה יעבודאך למי שרוצה בינה מלאכותית שמדברים איתה (עם בזבוז יחידות)
יכניס בשלוחה את הקוד הבא:type=api api_link=פה יש לשים את כתובת שרת ה-ngrok ואחרי כתובת השרת יש להוסיף:/app.py api_000=UserTranscription,yes,voice api_say_tts=no api_call_id_send=no api_phone_send=no api_did_send=no api_extension_send=no api_enter_id_send=no api_enter_id_name_send=no api_time_send=no api_wait_answer_music_on_hold=yes say_api_answer=yesיש ללכת אל חלון ה- CMD של שרת ה ngrok (האחרון שהרצנו)
שם כתוב כתובת השרת שלנו
(מי שלא מצליח להבין מה כתובת השרת שלו יעלה צילום מסך ואני יאמר לו)
בהצלחה -
הנושא סומן כשאלה N ngrok http 5001
-
הנושא סומן כנושא רגיל N ngrok http 5001