JibayAi commited on
Commit
549cac6
·
verified ·
1 Parent(s): 49c38e0

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +89 -0
  2. index.php +203 -0
  3. tokenizer.json +11 -0
README.md ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 🤖 Jibay 1 - هوش مصنوعی دو زبانه
2
+
3
+ ---
4
+
5
+ ## 🇫🇷 فارسی
6
+
7
+ اسم پروژه: جیبای ۱
8
+ سازنده: تیم جیبای با رهبری پارسا کاظمی
9
+ حجم داده: ۷۰ مگابایت
10
+ زبان‌ها: فارسی و انگلیسی
11
+ نوع مدل: سوال و پاسخ (Question-Answer)
12
+
13
+ ### 🌟 توضیحات
14
+
15
+ جیبای ۱ یک هوش مصنوعی پیشرفته است که با هدف کمک به کاربران در یافتن پاسخ‌ها، ارائه اطلاعات مفید، و تعامل طبیعی ساخته شده است. این مدل بر پایه‌ی ۷۰ مگابایت داده آموزشی طراحی شده و توانایی پاسخ به سوالات فارسی و انگلیسی را دارد.
16
+
17
+ با جیبای ۱ می‌توانید:
18
+ - 🧠 دریافت پاسخ‌های سریع و دقیق به سوالات عمومی و تخصصی
19
+ - 📚 دسترسی به اطلاعات علمی، تاریخی، فرهنگی و فنی
20
+ - ✍️ کمک در نوشتن متن، مقاله، و ترجمه
21
+ - 💬 تعامل طبیعی با تکه‌کلام‌ها و پاسخ‌های دوستانه
22
+
23
+ ### 💡 ویژگی‌ها
24
+
25
+ - دو زبانه: فارسی 🇮🇷 و انگلیسی 🇺🇸
26
+ - پشتیبانی از سوالات متنوع در زمینه‌های علمی، آموزشی و عمومی
27
+ - پاسخ‌دهی هوشمند با شباهت بالا به سوال کاربران
28
+ - اضافه شدن تکه‌کلام‌های طبیعی برای تجربه‌ی تعاملی بهتر
29
+
30
+ ### 🚀 نحوه استفاده
31
+
32
+ 1. فایل‌های مدل (`model-jibay1-0001.json` تا `model-jibay1-0008.json`) را بارگذاری کنید.
33
+ 2. از طریق API یا رابط کاربری، سوال خود را ارسال کنید.
34
+ 3. پاسخ هوش مصنوعی جیبای ۱ را دریافت و از آن استفاده کنید.
35
+
36
+ ### 📌 نکات مهم
37
+
38
+ - داده‌های مدل عمومی هستند و شامل اطلاعات آموزشی و نمونه‌ای می‌باشند.
39
+ - حجم داده ۷۰ مگابایت است و برای استفاده‌ی سبک و کاربردی طراحی شده است.
40
+ - همواره برای تصمیمات مهم، به منابع رسمی مراجعه کنید.
41
+
42
+ ---
43
+
44
+ ## 🇬🇧 English
45
+
46
+ Project Name: Jibay 1
47
+ Developer: Team Jibay led by Parsa Kazemi
48
+ Data Size: 70 MB
49
+ Languages: Persian & English
50
+ Model Type: Question & Answer (QA)
51
+
52
+ ### 🌟 Description
53
+
54
+ Jibay 1 is an advanced AI designed to assist users in finding answers, providing useful information, and enabling natural interaction. The model is trained on 70 MB of educational data and can respond to questions in both Persian and English.
55
+
56
+ With Jibay 1, you can:
57
+ - 🧠 Get fast and accurate answers to general and specialized questions
58
+ - 📚 Access scientific, historical, cultural, and technical knowledge
59
+ - ✍️ Receive help in writing text, articles, and translations
60
+ - 💬 Interact naturally with friendly greetings and conversational phrases
61
+
62
+ ### 💡 Features
63
+
64
+ - Bilingual: Persian 🇮🇷 & English 🇺🇸
65
+ - Supports diverse questions across educational, scientific, and general domains
66
+ - Smart responses with high similarity to user questions
67
+ - Natural conversational phrases for a more interactive experience
68
+
69
+ ### 🚀 How to Use
70
+
71
+ 1. Load the model files (`model-jibay1-0001.json` to `model-jibay1-0008.json`).
72
+ 2. Send your question via API or user interface.
73
+ 3. Receive AI-generated answers from Jibay 1.
74
+
75
+ ### 📌 Important Notes
76
+
77
+ - Model data is public and educational in nature.
78
+ - Data size is 70 MB, designed for lightweight and practical use.
79
+ - Always consult official sources for critical decisions.
80
+
81
+ ---
82
+
83
+ ### 🔗 Contact & Support
84
+
85
+ - Team Jibay: Dedicated to AI research and development
86
+ - Lead: Parsa Kazemi
87
+ - Website: http://jibay.ir
88
+
89
+ 🌟 Enjoy exploring AI with Jibay 1! 🚀
index.php ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ header('Content-Type: application/json; charset=utf-8');
3
+
4
+ // ========== دریافت ورودی ==========
5
+ $text = isset($_GET['text']) ? trim($_GET['text']) : '';
6
+ if ($text === '') {
7
+ echo json_encode(["error" => "پارامتر text ارسال نشده است."], JSON_UNESCAPED_UNICODE);
8
+ exit;
9
+ }
10
+
11
+ // ========== خواندن فایل توکنیزر ==========
12
+ $tokenizerPath = 'tokenizer.json';
13
+ if (!file_exists($tokenizerPath)) {
14
+ echo json_encode(["error" => "فایل tokenizer.json یافت نشد."], JSON_UNESCAPED_UNICODE);
15
+ exit;
16
+ }
17
+
18
+ $tokenizer = json_decode(file_get_contents($tokenizerPath), true);
19
+ if (!$tokenizer) {
20
+ echo json_encode(["error" => "خطا در خواندن tokenizer.json."], JSON_UNESCAPED_UNICODE);
21
+ exit;
22
+ }
23
+
24
+ // ادغام همه‌ی کاراکترها از letters و additional_characters
25
+ $allChars = $tokenizer['letters'] ?? [];
26
+ if (isset($tokenizer['additional_characters'])) {
27
+ foreach ($tokenizer['additional_characters'] as $set) {
28
+ if (is_array($set)) {
29
+ $allChars = array_merge($allChars, $set);
30
+ }
31
+ }
32
+ }
33
+
34
+ // ========== بررسی وجود حداقل یکی از کاراکترهای معتبر ==========
35
+ $valid = false;
36
+ foreach ($allChars as $ch) {
37
+ if (mb_strpos($text, $ch) !== false) {
38
+ $valid = true;
39
+ break;
40
+ }
41
+ }
42
+
43
+ if (!$valid) {
44
+ echo json_encode(["error" => "متن شامل هیچ‌کدام از حروف یا کاراکترهای معتبر نیست."], JSON_UNESCAPED_UNICODE);
45
+ exit;
46
+ }
47
+
48
+ // ========== مدل‌ها ==========
49
+ $models = [];
50
+ for ($i = 1; $i <= 8; $i++) {
51
+ $pathJson = "model-jibay1-000{$i}.json";
52
+ $pathJsonl = "model-jibay1-000{$i}.jsonl";
53
+ if (file_exists($pathJson)) $models[] = $pathJson;
54
+ elseif (file_exists($pathJsonl)) $models[] = $pathJsonl;
55
+ }
56
+
57
+ if (empty($models)) {
58
+ echo json_encode(["error" => "هیچ فایل مدلی یافت نشد."], JSON_UNESCAPED_UNICODE);
59
+ exit;
60
+ }
61
+
62
+ // ========== تابع شباهت ==========
63
+ function similarity($a, $b) {
64
+ similar_text($a, $b, $percent);
65
+ return $percent;
66
+ }
67
+
68
+ // ========== تکه‌کلام‌های تصادفی ==========
69
+ $greetings = [
70
+ "عزیزم", "داداش", "جواب شما", "رفیق", "گل من", "دوست خوبم", "عزیز دلم", "کاربر محترم",
71
+ "همراه گرامی", "برادر من", "خواهر گلم", "جناب", "سرورم", "گل پسر", "ملکه من", "عزیز دل",
72
+ "رفیق باصفا", "همدل من", "یار قدیمی", "دوست نازنین", "گل بابا", "عزیز جان", "پهلوان", "باهوش",
73
+ "استاد", "باهوش من", "همکار خوبم", "دوست داشتنی", "باهوش", "بزرگوار", "هم‌راه عزیزم",
74
+ "قهرمان", "باهوشی", "گل خوش‌اخلاق", "باهوشی خاص", "رفیق باهوش", "نابغه", "باهوشی تو",
75
+ "دوست گل", "باهوش کوچولو", "باهوش ناز", "باهوش منی", "باهوشی خاص", "باهوش مهربون", "باهوش واقعی",
76
+ "باهوش خفن", "باهوش خاص", "باهوش حرفه‌ای", "باهوش طلایی", "باهوش ترین", "باهوش عزیزم",
77
+ "باهوش فوق‌العاده", "باهوش دوست‌داشتنی", "باهوش گل", "باهوش نابغه", "باهوش مهربان",
78
+ "باهوش شگفت‌انگیز", "باهوش افسانه‌ای", "باهوش دلبر", "باهوش قشنگ", "باهوش خاصم", "باهوش بانمک",
79
+ "باهوش باحال", "باهوش عالی", "باهوش بی‌نظیر", "باهوش خوش‌فکر", "باهوش تیزبین", "باهوش نازنین",
80
+ "باهوش قوی", "باهوش متمدن", "باهوش فهیم", "باهوش منطقی", "باهوش حرفه‌ای", "باهوش معرکه",
81
+ "باهوش گل من", "باهوش دلپذیر", "باهوش بامرام", "باهوش باصفا", "باهوش درجه یک", "باهوش کاربلد",
82
+ "باهوش محترم", "باهوش بانمک", "باهوش شیرین", "باهوش جان", "باهوش خاصی", "باهوش دلبند",
83
+ "باهوش قشنگ", "باهوش قوی‌دل", "باهوش مودب", "باهوش اهل دل", "باهوش حرفه‌ای من"
84
+ ];
85
+
86
+ $farewells = [
87
+ "اگر سوالی بود بپرس 😊", "در خدمتت هستم 🌹", "سوالی بود بپرس عزیزم 🙌", "درخدمتم همیشه ❤️",
88
+ "آماده سوال بعدی‌ام 😉", "اگه کمک دیگه‌ای خواستی بگو 🌷", "بازم سوال داشتی من اینجام 😎",
89
+ "اگه چیزی مبهم بود بپرس 😌", "با افتخار در خدمتتم 💪", "بازم بپرس رفیق 🧠",
90
+ "منتظر سوال بعدی‌ات هستم 📘", "اگه جواب کافی نبود، بگو 👂", "همیشه آماده‌ام 🔥",
91
+ "در خدمت دانشجوی عزیزم 🎓", "دوست خوبم، باز هم بپرس 🤝", "هر وقت خواستی بپرس 💬",
92
+ "من آماده‌ام 🌈", "بازم بپرس 🌟", "کمک می‌خوای؟ من هستم 🧩", "سوالاتت عالی‌ان 💎",
93
+ "در خدمت هوش ایرانی 🇮🇷", "بازم بیا سر بزن 😊", "تا سوال بعدی 👋", "همیشه اینجام برای کمک 💡",
94
+ "با لذت جواب میدم 🌸", "سوال بعدی لطفاً 😄", "اگه خواستی ادامه بده 🚀",
95
+ "در خدمت علم 💫", "به امید دیدار دوباره 📚", "منتظر سوال بعدی 🌼",
96
+ "در خدمت شما 🌹", "پرسش‌هات باعث رشد میشه 🌱", "ادامه بده، خوب پیش میری 💪",
97
+ "بازم بنویس 🌻", "درخدمت شما هستم 🙏", "پرسش عالی بود 👏", "سوال بعدی آماده‌ست 🔔",
98
+ "در خدمت یادگیری تو 📖", "باز هم بپرس تا یاد بگیریم 🌟", "عالی پرسیدی 🌸",
99
+ "درخدمت تو همیشه ❤️", "بازم بپرس استاد 👨‍🏫", "با کمال میل پاسخ میدم 😍",
100
+ "همیشه آماده پاسخ دادن 🌙", "در خدمت اهل دانایی 💎", "ادامه بده تا قوی‌تر شی 💪",
101
+ "بازم سوال کن عزیز 🌼", "در خدمت عشق به دانش ❤️", "هر لحظه آماده کمکم 🌟"
102
+ ];
103
+
104
+ // ========== جستجو ==========
105
+ $bestMatch = null;
106
+ $bestScore = 0;
107
+
108
+ foreach ($models as $file) {
109
+ $ext = pathinfo($file, PATHINFO_EXTENSION);
110
+ $content = file_get_contents($file);
111
+ if (!$content) continue;
112
+
113
+ if ($ext === 'jsonl') {
114
+ $lines = explode("\n", trim($content));
115
+ foreach ($lines as $line) {
116
+ $data = json_decode($line, true);
117
+ if (!$data) continue;
118
+ $q = $data['question'] ?? $data['user'] ?? '';
119
+ $a = $data['answer'] ?? $data['assistant'] ?? '';
120
+ if (is_array($a)) $a = implode(' | ', $a);
121
+
122
+ $score = similarity($text, $q);
123
+ if ($score > $bestScore && $score >= 80) {
124
+ $bestScore = $score;
125
+ $bestMatch = ["question" => $q, "answer" => $a];
126
+ }
127
+ }
128
+ } else {
129
+ $json = json_decode($content, true);
130
+ if (!$json) continue;
131
+
132
+ // مدل 8
133
+ if (isset($json[0]['user'])) {
134
+ foreach ($json as $item) {
135
+ $q = $item['user'] ?? '';
136
+ $a = $item['assistant'] ?? '';
137
+ $score = similarity($text, $q);
138
+ if ($score > $bestScore && $score >= 80) {
139
+ $bestScore = $score;
140
+ $bestMatch = ["question" => $q, "answer" => $a];
141
+ }
142
+ }
143
+ }
144
+ // مدل 6-7
145
+ elseif (isset($json['data'][0]['paragraphs'][0]['qas'])) {
146
+ foreach ($json['data'] as $block) {
147
+ foreach ($block['paragraphs'] as $p) {
148
+ foreach ($p['qas'] as $qa) {
149
+ $q = $qa['question'] ?? '';
150
+ $answers = [];
151
+ foreach ($qa['answers'] ?? [] as $ans) {
152
+ if (isset($ans['text'])) $answers[] = $ans['text'];
153
+ }
154
+ $a = implode(' | ', $answers);
155
+ $score = similarity($text, $q);
156
+ if ($score > $bestScore && $score >= 80) {
157
+ $bestScore = $score;
158
+ $bestMatch = ["question" => $q, "answer" => $a];
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ // مدل 5-4
165
+ elseif (isset($json['data'][0]['questions'])) {
166
+ foreach ($json['data'] as $block) {
167
+ foreach ($block['questions'] as $qitem) {
168
+ $q = $qitem['input_text'] ?? '';
169
+ $matchAnswer = '';
170
+ foreach ($block['answers'] as $ans) {
171
+ if (($ans['turn_id'] ?? null) === ($qitem['turn_id'] ?? null)) {
172
+ $matchAnswer = $ans['input_text'] ?? ($ans['span_text'] ?? '');
173
+ break;
174
+ }
175
+ }
176
+ $score = similarity($text, $q);
177
+ if ($score > $bestScore && $score >= 80) {
178
+ $bestScore = $score;
179
+ $bestMatch = ["question" => $q, "answer" => $matchAnswer];
180
+ }
181
+ }
182
+ }
183
+ }
184
+ }
185
+ }
186
+
187
+ // ========== خروجی ==========
188
+ if ($bestMatch) {
189
+ $greet = $greetings[array_rand($greetings)];
190
+ $farewell = $farewells[array_rand($farewells)];
191
+ $finalAnswer = trim("{$greet}، {$bestMatch['answer']} {$farewell}");
192
+
193
+ echo json_encode([
194
+ [
195
+ "thinking" => "Well, the user said '{$text}'. I should try to review, collect, analyze and present the best information to the user, the best answer is ('{$finalAnswer}').",
196
+ "question" => $bestMatch['question'],
197
+ "answer" => $finalAnswer
198
+ ]
199
+ ], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
200
+ } else {
201
+ echo json_encode(["message" => "هیچ پاسخ مناسبی یافت نشد."], JSON_UNESCAPED_UNICODE);
202
+ }
203
+ ?>
tokenizer.json ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "letters": ["ا","ب","پ","ت","ث","ج","چ","ح","خ","د","ذ","ر","ز","ژ","س","ش","ص","ض","ط","ظ","ع","غ","ف","ق","ک","گ","ل","م","ن","و","ه","ی"],
3
+ "additional_characters": {
4
+ "arabic_letters": ["ء","آ","أ","إ","ة","ؤ","ئ"],
5
+ "english_letters": ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],
6
+ "persian_numbers": ["۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"],
7
+ "arabic_numbers": ["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"],
8
+ "english_numbers": ["0","1","2","3","4","5","6","7","8","9"],
9
+ "punctuation_marks": [".",",",";",":","!","?","-","_","(",")","[","]","{","}","'","\"","/","\\","|","@","#","$","%","^","&","*","+","=","<",">","~","`"]
10
+ }
11
+ }