מדריך מפורט ליצירת בינה מלאכותית טלפונית על שרת 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 (האחרון שהרצנו)
שם כתוב כתובת השרת שלנו
(מי שלא מצליח להבין מה כתובת השרת שלו יעלה צילום מסך ואני יאמר לו)
בהצלחה