![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
שיחות חכמות עם גדולי האומה.
IsraelGPT הוא פרויקט חדשני המשלב את היכולות המתקדמות של מודל השפה Gemini של גוגל עם העושר והעומק של המחשבה היהודית וההיסטוריה הישראלית. האפליקציה מאפשרת למשתמשים לנהל שיחות חכמות, מרתקות ומעוררות השראה עם דמויות מפתח מההיסטוריה שלנו - מאבות האומה ונביאים, דרך תנאים ואמוראים, ועד להוגים ומנהיגים ציוניים מהעת החדשה.
הפרויקט נבנה באמצעות React, TypeScript ו-Tailwind CSS, ומציע חווית משתמש מודרנית, אינטראקטיבית ונגישה במלואה בעברית.
- 🗣️ שיחה עם דמויות היסטוריות: בחר דמות מהרשימה ונהל איתה שיחה אישית. כל דמות מוגדרת עם "הנחיות אופי" (System Instructions) ייחודיות המשקפות את סגנונה, תפיסת עולמה ותקופתה.
- 🏛️ בית מדרש (דיון רב-משתתפים): בחר עד 4 דמויות, הצג נושא לדיון, וצפה בהן מנהלות דיון ער ומעמיק ביניהן, מתווכחות, מביאות מקורות ומגיעות לתובנות משותפות.
- 📅 לוח שנה עברי וזמנים: הצגת תאריך עברי עדכני, פרשת השבוע ודף יומי.
- 📜 פרשת השבוע: לימוד מעמיק על הפרשה הנוכחית עם דמויות היסטוריות.
- 📖 דף יומי: מעקב אחר הלימוד היומי והצטרפות ללימוד עם החכמים.
- 📚 מקורות מדויקים: הדמויות הונחו להשתדל ולספק מראה מקום מדויק (פסוק, גמרא, שו"ע) לציטוטים ורעיונות שהן מעלות.
- 📂 ניהול היסטוריית שיחות: כל השיחות נשמרות בדפדפן. ניתן לחפש שיחות קודמות לפי מילות מפתח ולמחוק שיחות ישנות.
- 👤 יצירת דמויות מותאמות אישית: הוסף דמויות משלך על ידי הגדרת שם, תיאור, אייקון, הנחיות אופי ומשפט פתיחה.
- 🎤 תמיכה קולית:
- זיהוי דיבור (Voice-to-Text): דבר אל האפליקציה במקום להקליד.
- הקראת טקסט (Text-to-Speech): האזן לתשובות הדמויות בקול.
- 🖼️ יצירת תמונות: בקש מהדמויות לצייר עבורך תמונות, והן ישתמשו במודל יצירת התמונות של Gemini כדי להגשים את בקשתך.
- 📤 שיתוף והורדה: שתף הודעות בודדות כתמונה מעוצבת, או הורד שיחות שלמות כמסמכי Markdown.
- 🎨 עיצוב מודרני: ממשק משתמש נקי ומזמין, עם תמיכה מלאה במצב כהה (Dark Mode) ורקע אינטראקטיבי.
- Frontend: React, TypeScript, Vite
- Styling: Tailwind CSS
- AI Model: Google Gemini API (
@google/genai) - Animations: Motion (from
motion/react) - Icons: Lucide React
- Markdown Rendering:
react-markdown - Image Generation:
html-to-image
להלן סקירה של מבנה התיקיות והקבצים המרכזיים בפרויקט:
/src ├── components/ │ ├── PrivacyPolicy.tsx │ ├── TermsOfUse.tsx │ ├── ParashatHashavua.tsx │ └── DafYomi.tsx ├── characters/ │ ├── index.ts │ ├── types.ts │ └── (כל קבצי הדמויות, למשל: abraham.ts, david.ts, ...) ├── App.tsx ├── main.tsx └── index.css /public └── changelog.md /README.md זהו הקובץ המרכזי של האפליקציה. הוא מכיל את הלוגיקה הראשית, ניהול המצב (State), ורינדור כל הרכיבים.
חלקים עיקריים בקובץ:
-
Interfaces (ממשקים):
Message: מגדיר את מבנה ההודעה בצ'אט (id, role, text, sageId, וכו').ChatSession: מגדיר את מבנה סשן שיחה בהיסטוריה.
-
State Management (ניהול מצב):
useStateמשמש לניהול כל המצבים של האפליקציה:isDarkMode,isSidebarOpen,messages,sessions,activeSages,isLoadingועוד.
-
Core Functions (פונקציות ליבה):
handleSend: הפונקציה המרכזית שמטפלת בשליחת הודעה. היא בונה את הפרומפט (Prompt) המתאים ל-Gemini בהתבסס על מצב האפליקציה (צ'אט רגיל או "חברותא"), שולחת את הבקשה ל-API, ומטפלת בתשובה המתקבלת ב-Streaming.saveSession/loadSession: פונקציות לניהול שמירה וטעינה של שיחות מה-LocalStorage.startNewChat: מאתחל שיחה חדשה.
-
Component Rendering (רינדור רכיבים):
- הקובץ מרנדר את כל חלקי הממשק: סרגל צד, חלון צ'אט ראשי, אזור קלט, ומודלים (חלונות קופצים) שונים.
תיקייה זו היא הלב של תוכן האפליקציה ומכילה את כל המידע על הדמויות.
-
/src/characters/types.ts: מגדיר את ה-Interface שלCharacter.export interface Character { id: string; name: string; description: string; icon: string; systemInstruction: string; greeting: string; era?: string; }
-
קבצי דמויות (למשל,
/src/characters/david.ts): כל קובץ מייצא אובייקטCharacterעם ההגדרות הייחודיות של אותה דמות.import { Character } from './types'; export const david: Character = { id: 'david', name: 'דוד המלך', description: 'נעים זמירות ישראל, מלכות ותשובה', icon: '👑', systemInstruction: 'אתה דוד המלך. ענה מתוך שירה, רגש עמוק...', greeting: 'מזמור לדוד! אשמח לנגן על מיתרי ליבך...', era: 'נביאים ומנהיגים' };
-
/src/characters/index.ts: קובץ זה מייבא את כל הדמויות הבודדות ומייצא אותן במערך אחד (characters) לשימוש קל ומרכזי בקומפוננטתApp.
תיקייה זו מכילה רכיבי React משותפים הניתנים לשימוש חוזר.
TermsOfUse.tsxו-PrivacyPolicy.tsx: רכיבים פשוטים המציגים את תנאי השימוש ומדיניות הפרטיות בחלון מודאלי.
- v0.9.0: "סידור קול הרבים" - הוספת עמוד נפרד לסידור "קול הרבים - תפילת האחדות", וניהול משתמשים מתקדם.
- v0.8.9: אימות משתמשים (Firebase Auth) ושיפור איכות הקול (TTS).
- v0.8.8: לוח שנה עברי, פרשת השבוע ודף יומי.
- v0.8.7: פיצ'ר "בית מדרש" (דיון של עד 4 דמויות בו-זמנית).
- v0.8.2: חיפוש ומחיקה בהיסטוריית השיחות.
- v0.8.1: שדרוג המודל להבאת מקורות מדויקים.
- v0.8.0: פיצ'ר "חברותא" (דיאלוג בין שתי דמויות).
- v0.7.x: הוספת דמויות חדשות רבות.
- v0.7.0: הוספת Streaming, יצירת תמונות וייצוא מתקדם.
- v0.6.0: הוספת תמיכה קולית (VTT/TTS) ושיתוף/הורדת שיחות.
- v0.5.0: הוספת היסטוריית שיחות, יצירת דמויות אישיות ומצב כהה.
- v0.4.2: שדרוג הסידור לחלון מודל במסך מלא.
- v0.4.1: עדכון תפילות ללשון רבים והוספת הסברים.
- v0.4.0: חיבור ראשוני ל-Gemini API והרחבת מאגר הדמויות.
- v0.3.0: עיצוב מחדש של הממשק ותמיכה מלאה בעברית.
-
שכפל את המאגר (Repository):
git clone https://github.com/AnLoMinus/IsraelGPT cd IsraelGPT -
התקן תלויות:
npm install
-
הגדר מפתח API:
- צור קובץ
.envבתיקיית השורש. - הוסף את מפתח ה-API של Gemini לקובץ:
GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
- צור קובץ
-
הפעל את שרת הפיתוח:
npm run dev
הפרויקט נמצא בפיתוח מתמיד. רעיונות, הצעות ודיווחים על באגים יתקבלו בברכה. ניתן לפתוח Issue או Pull Request במאגר ה-GitHub של הפרויקט.
תודה על השימוש ב-IsraelGPT!









