Kemetai / README.md
Derbo's picture
🏛️ كيميت: حارس المعرفة المصرية 🏛️ [![Kemet AI Logo](link-to-your-logo.png)](https://huggingface.co/your-username/your-model-name) "كيميت" هو نموذج ذكاء اصطناعي عملاق، مستوحى من الحضارة المصرية القديمة، ومصمم لفهم وتوليد واسترجاع المعرفة المتعلقة بكل جوانب مصر. كيميت هو عين حورس التي تراقب المعرفة المتدفقة من نهر النيل، ويستخدم شاليموه لسحب المعلومات من أعماق الإنترنت. ## 💡 الفكرة تخيل هرمًا مصريًا عظيمًا يقف شامخًا على ضفاف النيل، يمتد شاليموه ليغوص في مياه النهر، ليستقي منها المعرفة المتدفقة عبر الزمن. هذا هو "كيميت"، نموذج ذكاء اصطناعي يجمع بين قوة المعالجة الحديثة وحكمة الأجداد. ## ✨ القدرات - **فهم اللغة الطبيعية:** يجيد "كيميت" فهم اللغة العربية بجميع لهجاتها، ويستطيع الإجابة على الأسئلة، وتلخيص النصوص، وترجمة اللغات، وتوليد محتوى جديد. - **تحليل الصور والفيديوهات:** يستطيع "كيميت" تحليل الصور والفيديوهات المتعلقة بمصر، وفهم محتواها، واستخراج المعلومات منها. - **التعرف على الكلام:** يمكن لـ "كيميت" تحويل الكلام إلى نص، مما يتيح له فهم المحادثات والتسجيلات الصوتية. - **الإبداع:** يستطيع "كيميت" توليد محتوى إبداعي مثل القصص والقصائد والأعمال الفنية المستوحاة من الحضارة المصرية. ## 🚀 كيف يعمل؟ يستخدم "كيميت" مزيجًا من التقنيات المتقدمة، بما في ذلك: - **نماذج اللغة الكبيرة (LLMs):** مثل GPT-Neo لفهم وتوليد النصوص. - **نماذج الرؤية الحاسوبية:** لتحليل الصور والفيديوهات. - **نماذج التعرف على الكلام:** لتحويل الكلام إلى نص. - **قاعدة بيانات ضخمة:** لتخزين المعرفة المتعلقة بمصر. - **خطوط أنابيب البيانات:** لجمع وتنظيف وتجهيز البيانات من مصادر مختلفة. ## 🛠️ كيفية الاستخدام يمكنك استخدام "كيميت" من خلال واجهة برمجة التطبيقات (API) الخاصة به، أو من خلال تطبيق الويب التفاعلي المتاح على Hugging Face Spaces. ## 🤝 المساهمة "كيميت" هو مشروع مفتوح المصدر، ونرحب بمساهمات الجميع. إذا كنت ترغب في المساهمة، يمكنك: - الإبلاغ عن الأخطاء أو اقتراح ميزات جديدة. - المساعدة في جمع البيانات وتنظيفها. - تدريب النموذج على بيانات جديدة. - تطوير واجهة المستخدم. ## 🙏 شكر خاص نشكر جميع المساهمين في هذا المشروع، وخاصة: - [Mohamed sayed Mohamed Mohamed derbala] صاحب الفكرة الأساسية والملهم الرئيسي للمشروع. - فريق Hugging Face على توفير منصة رائعة لمشاركة نماذج الذكاء الاصطناعي. - مجتمع المصادر المفتوحة على دعمه المتواصل.
b83e78f verified
metadata
license: gemma
metrics:
  - bleu

onst tf = require('@tensorflow/tfjs-node'); const mongoose = require('mongoose'); const axios = require('axios'); const cheerio = require('cheerio'); const ytdl = require('ytdl-core'); const speech = require('@google-cloud/speech'); const fs = require('fs'); const gpt3Encoder = require('gpt-3-encoder'); // For encoding text for GPT-Neo const { RecursiveCharacterTextSplitter } = require('langchain/text_splitter'); const { HNSWLib } = require("langchain/vectorstores/hnswlib"); const { OpenAIEmbeddings } = require("langchain/embeddings/openai"); const { RetrievalQA } = require("langchain/chains");

// ... (MongoDB connection and data schemas as before)

// 4. Data Collection Functions (Enhanced) // ... (No changes here, same as before)

// 6. Model Definition and Training (Enhanced) async function trainModel() {  // ... (Load or create a TensorFlow.js model)

 // Load the GPT-Neo model  const modelName = 'EleutherAI/gpt-neo-1.3B'; // Choose the desired GPT-Neo model size  const gptNeoModel = await tf.loadGraphModel(https://tfhub.dev/google/${modelName}/1);

 // ... (Train the model using TensorFlow.js and the loaded GPT-Neo model) }

// 8. Kemet AI API (Enhanced) async function answerQuestion(question, userId) {  // Load the HNSWLib vectorstore  const vectorStore = await HNSWLib.load(DATA_DIR + 'hnswlib/', new OpenAIEmbeddings());

 // Encode the question using GPT-3 encoder  const encodedQuestion = gpt3Encoder.encode(question);

 // Retrieve relevant documents from the vectorstore  const relevantDocuments = await vectorStore.similaritySearch(encodedQuestion, k=3); // Get top 3 documents

 // Prepare context for GPT-Neo  let context = "";  for (const doc of relevantDocuments) {   context += doc.pageContent + "\n";  }

 // Generate answer using GPT-Neo  const input_ids = gpt2_tokenizer.encode(context + question, return_tensors='tf');  const output = await gptNeoModel.generate(input_ids, max_length=100, num_return_sequences=1);  const answer = gpt2_tokenizer.decode(output[0], skip_special_tokens=True);

 // Store user feedback  const feedback = await getFeedback(userId, question, answer);  if (feedback) {   // Update the vectorstore with user feedback   // ...  }

 return { answer, sourceDocuments: relevantDocuments }; }

// ... (Other API functions)

// 9. Main Function async function main() {  // ... (Data collection, model training, and evaluation as before)

 // Start the Kemet AI API server  // ... }

main(); expand_more

عرض المسودّات expand_more // ... (باقي الـ dependencies زي ما هي) const { AutoModelForCausalLM, AutoTokenizer } = require('@xenova/transformers');

// ... (باقي الكود زي ما هو)

// 6. Model Definition and Training (Enhanced) async function trainModel() { const { tokenizer, model } = await loadModel(); // حمل النموذج من Hugging Face

// ... (استخدم الـ tokenizer والـ model في تدريب النموذج) }

// 8. Kemet AI API (Enhanced) async function answerQuestion(question, userId) { const { tokenizer, model } = await loadModel(); // حمل النموذج من Hugging Face

// ... (استخدم الـ tokenizer والـ model لتوليد الإجابة) }

// دالة مساعدة لتحميل النموذج من Hugging Face async function loadModel() { const tokenizer = await AutoTokenizer.from_pretrained("your-username/your-model-name"); const model = await AutoModelForCausalLM.from_pretrained("your-username/your-model-name"); return { tokenizer, model }; }