Home تقنية إظهار HN: Mnemo – طبقة ذاكرة الذكاء الاصطناعي المحلية الأولى لأي ماجستير...

إظهار HN: Mnemo – طبقة ذاكرة الذكاء الاصطناعي المحلية الأولى لأي ماجستير في إدارة الأعمال (Rust، SQLite، petgraph) | itg-ar.com

4
0
إظهار HN: Mnemo – طبقة ذاكرة الذكاء الاصطناعي المحلية الأولى لأي ماجستير في إدارة الأعمال (Rust، SQLite، petgraph)
| itg-ar.com

إظهار HN: Mnemo – طبقة ذاكرة الذكاء الاصطناعي المحلية الأولى لأي ماجستير في إدارة الأعمال (Rust، SQLite، petgraph)

طبقة ذاكرة الذكاء الاصطناعي المحلية الأولى لأي ماجستير في القانون. الرسم البياني للمعرفة المستمرة، واستخراج الكيانات، والاسترجاع الدلالي – لا حاجة إلى السحابة. ينسى معظم طلاب LLM كل شيء بمجرد انتهاء المحادثة. ذاكري يصلح ذلك. mnemo هي خدمة جانبية تراقب كل محادثة تغذيها، وتستخرج الكيانات والعلاقات المسماة باستخدام LLM، وتبني رسمًا بيانيًا معرفيًا مستمرًا في SQLite، وتحقن السياق ذي الصلة مرة أخرى في المطالبات المستقبلية – تلقائيًا، في أقل من 50 مللي ثانية. إنه يعمل مع Ollama (محلي بالكامل ومجاني) أو OpenAI أو Anthropic أو أي واجهة برمجة تطبيقات متوافقة مع OpenAI. يتم شحنه كثنائي ثابت واحد مع عدم الاعتماد على السحابة. تطبيقك │ ▼ POST /inest ──► استخراج الكيان (LLM) ──► الرسم البياني للمعرفة (SQLite + petgraph) │ POST / استرجاع ◄── التسجيل + التصنيف ◄── اجتياز الرسم البياني + البحث عن النص الكامل │ ▼ context_prompt ──► إدخال في LLM الخاص بك يطالبك بنشر نص أولي إلى / استيعاب (دورة محادثة، مستند، ملاحظة). يرسله Mnemo إلى LLM الذي تم تكوينه ويستخرج الكيانات (الأشخاص والأدوات والأماكن والمفاهيم) والعلاقات بينهم. يتم إلغاء تكرار الكيانات حسب الاسم + النوع، ويتم دمج الأسماء المستعارة، ويتم كتابة كل شيء في SQLite. يتم تحديث الرسم البياني الموجود في الذاكرة ذريًا. في POST /retrieve، يقوم mnemo بتشغيل خط أنابيب مكون من 6 مراحل: البحث عن أجزاء النص الكامل ← البحث عن اسم الكيان ← توسيع الرسم البياني (BFS عبر الرسم البياني المعرفي) ← مرشح العلاقة ← النتيجة + الرتبة ← تجميع سلسلة context_prompt. يمكنك إدخال context_prompt في موجه نظام LLM الخاص بك. منتهي. المسار أ – Docker + Ollama (مجاني بالكامل، موصى به) git clone https://github.com/zaydmulani09/mnemo cd mnemo docker compose up -d # اسحب نموذج llama3 في المرة الأولى (حوالي 4 جيجابايت) docker exec mnemo-ollama ollama pull llama3 # التحقق من أن كل شيء سليم http://localhost:8080/health المسار B – ثنائي (Ollama أو OpenAI تعمل بشكل منفصل) تثبيت البضائع – صناديق المسار/mnemo-api # مع تصدير Ollama MNEMO_LLM_BASE_URL=http://localhost:11434/v1 mnemo-api # مع تصدير OpenAI MNEMO_LLM_BASE_URL=https://api.openai.com/v1export MNEMO_LLM_API_KEY=sk-…export MNEMO_LLM_MODEL=gpt-4o-mini Export MNEMO_LLM_PROVIDER=openai mnemo-api from mnemo import MnemoClient client = MnemoClient() # server at http://localhost:8080 # قم بتخزين ذاكرة client.ingest(“أنا أقوم بإنشاء قاعدة بيانات متجهة الصدأ تسمى vecdb”) # احصل على سياق للحقن في موجه LLM التالي print(client.get_context(“what هل أعمل على ذلك؟”)) تقبل جميع نقاط النهاية التطبيق/json وتعيده. عنوان URL الأساسي: http://localhost:8080. وصف مسار الطريقة طلب استجابة الجسم GET /health Server + DB + LLM الحالة – HealthResponse POST /ingest نص المتجر، استخراج الكيانات IngestRequest IngestResponse POST / استرجاع استرداد سياق الذاكرة المصنفة RetrievalQuery RetrievalResult GET /entities قائمة الكيانات (مرقّمة صفحات) ?limit&offset Entity() GET /entities/:id احصل على الكيان بواسطة UUID – الكيان DELETE /entities/:id حذف الكيان (التتالي) – {“deleted”:true} الحصول على /entities/:id/neighbors معرفة جيران الرسم البياني؟ العمق (بحد أقصى 5) GraphNode() الحصول على /chunks قائمة قطع الذاكرة (مرقّمة صفحات) ?limit&offset&session_id MemoryChunk() الحصول على /chunks/:id الحصول على قطعة بواسطة UUID – MemoryChunk DELETE /chunks/:id حذف القطع — {“deleted”:true} POST /search كيانات البحث عن النص الكامل + القطع {“query”، “limit”} {“entities”، “chunks”} DELETE /wipe حذف كل الذاكرة (لا يمكن الرجوع عنها) الرأس: X-Confirm-Wipe: true {“wiped”:true} الحصول على /stats Entity/chunk/graph counts + uptime – StatsResponse أنواع الطلبات/الاستجابة الرئيسية: وثائق نقطة النهاية الكاملة مع أمثلة الضفيرة: docs/api.md المتغير الوصف الافتراضي MNEMO_DB_PATH mnemo.db مسار ملف قاعدة بيانات SQLite MNEMO_PORT 8080 منفذ خادم API MNEMO_LLM_BASE_URL http://localhost:11434/v1 عنوان URL الأساسي لـ LLM المتوافق مع OpenAI MNEMO_LLM_MODEL llama3 اسم النموذج لاستخراج الكيان MNEMO_LLM_API_KEY مفتاح ollama API (أي قيمة تعمل مع Ollama) MNEMO_LLM_PROVIDER ollama نوع الموفر: ollama، openai، anthropic، custom Pass –config path/to/config.toml to mnemo-api. راجع mnemo.example.toml: db_path = “mnemo.db” port = 8080 (llm) Provider = “ollama” base_url = “http://localhost:11434/v1” model = “llama3” api_key = “ollama” timeout_secs = 30 max_retries = 3 max_tokens = 2048 درجة الحرارة = 0.1 بيئة المتغيرات لها الأسبقية على قيم TOML. تم الإبلاغ عن مصدر التكوين النشط في GET /health → config_source. التثبيت: تثبيت البضائع –صناديق المسار/mnemo-cli الاستخدام: # تخزين ذاكرة mnemo استيعاب “أنا أستخدم Neovim وأفضل الوضع المظلم” # استرداد السياق ذي الصلة بحث mnemo “ما المحرر الذي أستخدمه؟” # قائمة بجميع الكيانات المستخرجة كيانات mnemo # إظهار تفاصيل الكيان + كيان الرسم البياني المجاور لكيان mnemo –neighbors # قائمة قطع الذاكرة قطع mnemo # صحة الخادم mnemo health # إحصائيات الذاكرة mnemo stats # حذف كل شيء (مطالبات للتأكيد) مسح mnemo # تخطي تأكيد المطالبة بمسح mnemo –نعم # أشر إلى خادم غير افتراضي mnemo –server http://192.168.1.10:8080 stats التثبيت: راجع sdk/python/README.md للحصول على واجهة برمجة التطبيقات الكاملة مرجع. مثال غير متزامن: استيراد asyncio من mnemo استيراد AsyncMnemoClient async def main(): async مع AsyncMnemoClient() كعميل: انتظار العميل.ingest( “أليس مهندس رئيسي في Stripe يعمل على البنية التحتية للدفع.”, session_id=”session-001″, ) context = انتظار client.get_context( “ما الذي تعمل عليه Alice؟”, session_id=”session-001″, ) print(context) asyncio.run(main()) مثال عمل مستقل: أمثلة/basic_usage.py أربعة صناديق صدأ متصلة معًا: نوع الصندوق، الدور mnemo-core lib، استخراج الكيان، عمليات الرسم البياني، محرك الاسترجاع، طبقة قاعدة بيانات mnemo-api bin Axum REST API — طبقة معالج رقيقة فوق أداة mnemo-cli bin CLI ذات النواة الأساسية باستخدام حظر reqwest مقابل معايير الأداء الخاصة بصندوق mnemo-bench الخاص بواجهة برمجة التطبيقات (12) suites) وثائق البنية الكاملة: docs/architecture.md تم قياسها على Apple M2، ووضع SQLite WAL، ورسم بياني في الذاكرة. تصحيح أرقام البناء – إصدار الإصدار (-release) أسرع بمقدار 3 إلى 5 مرات. إدراج كيان متوسط زمن الوصول للعملية (SQLite) ~0.12 مللي ثانية ~8,300 عملية/ثانية البحث عن الكيان حسب المعرف ~0.08 مللي ثانية ~12,500 عملية/ثانية إدراج قطعة ~0.14 مللي ثانية ~7,100 عملية/ثانية البحث عن مجموعة النص الكامل ~0.28 مللي ثانية ~3,500 عملية/ثانية جار الرسم البياني (العمق = 1) ~0.21 مللي ثانية ~4,700 عملية/ثانية جار الرسم البياني (العمق = 2) ~0.89 مللي ثانية ~1100 عملية/ثانية خط أنابيب استرجاع كامل ~4.2 مللي ثانية ~238 عملية/ثانية تشغيل البضائع -p mnemo-bench لقياس الأداء على أجهزتك. اختبار الشحن –مساحة العمل # تشغيل جميع الاختبارات الـ 122، إجراء التغطية # تقرير تغطية HTML (يتطلب البضائع llvm-cov) عمل ملخص التغطية # ملخص لـ stdout cd sdk/python && اختبارات pytest/ -v Cargo run -p mnemo-bench # جميع المعايير الـ 12 Cargo run -p mnemo-bench — –filter graph # معايير الرسم البياني فقط البضائع run -p mnemo-bench — –json out.json # حفظ النتائج في JSON عدد الاختبارات الحالية: 122 اختبار الصدأ · 21 اختبار بايثون · 12 معيارًا مرحبًا به. يرجى تشغيل make fmt && make lint قبل الإرسال. افتح مشكلة أولاً لإجراء تغييرات كبيرة. راجع CONTRIBUTING.md للحصول على تعليمات الإعداد الكاملة ودليل نمط التعليمات البرمجية وكيفية إضافة موفر LLM جديد. معهد ماساتشوستس للتكنولوجيا – انظر الترخيص


تم النشر: 2026-06-03 21:32:00

مصدر: github.com