مرجع Rust API
يُنظَّم PRX-Memory كمساحة عمل Rust تتضمن سبع حزم. كل حزمة توفر واجهة برمجية مركّزة يمكن استخدامها بشكل مستقل أو تأليفها معاً.
نظرة عامة على الحزم
prx-memory-core
البدائيات الجوهرية للنطاق: التقييم والتطور وتمثيل إدخال الذاكرة.
[dependencies]
prx-memory-core = "0.1"الأنواع الرئيسية:
- هياكل إدخال الذاكرة مع النص والنطاق والوسوم والأهمية والبيانات الوصفية.
- بدائيات التقييم لترتيب الصلة.
- أنواع التطور لاختبار قبول التدريب/الاحتجاز.
prx-memory-embed
تجريد مزوّد التضمين والمحوّلات.
[dependencies]
prx-memory-embed = "0.1"يوفر سمة غير متزامنة تنفّذها جميع مزودي التضمين:
// Conceptual API (simplified)
#[async_trait]
pub trait EmbedProvider: Send + Sync {
async fn embed(&self, texts: &[&str]) -> Result<Vec<Vec<f32>>, EmbedError>;
}التطبيقات المدمجة:
OpenAiCompatibleProvider-- أي واجهة برمجة تضمين متوافقة مع OpenAIJinaProvider-- تضمينات Jina AIGeminiProvider-- تضمينات Google Gemini
prx-memory-rerank
تجريد مزوّد إعادة الترتيب والمحوّلات.
[dependencies]
prx-memory-rerank = "0.1"يوفر سمة غير متزامنة لإعادة الترتيب:
// Conceptual API (simplified)
#[async_trait]
pub trait RerankProvider: Send + Sync {
async fn rerank(
&self,
query: &str,
documents: &[&str],
) -> Result<Vec<RerankResult>, RerankError>;
}التطبيقات المدمجة:
JinaRerankerCohereRerankerPineconeReranker
prx-memory-ai
تجريد مزوّد موحد يؤلف التضمين وإعادة الترتيب.
[dependencies]
prx-memory-ai = "0.1"توفر هذه الحزمة نقطة دخول واحدة لإعداد مزودَي التضمين وإعادة الترتيب من متغيرات البيئة.
prx-memory-skill
حمولات مهارات الحوكمة المدمجة لتوزيع موارد MCP.
[dependencies]
prx-memory-skill = "0.1"توفر تعريفات مهارات ثابتة وقوالب حمولة قابلة للاكتشاف من خلال بروتوكول موارد MCP.
prx-memory-storage
محرك التخزين المستمر المحلي.
[dependencies]
prx-memory-storage = "0.1"
# With LanceDB support
[dependencies]
prx-memory-storage = { version = "0.1", features = ["lancedb-backend"] }يوفر تطبيقات سمة التخزين لـ:
- التخزين القائم على ملفات JSON
- SQLite مع أعمدة المتجهات
- LanceDB (اختياري، خلف علامة ميزة)
prx-memory-mcp
سطح خادم MCP الذي يجمع جميع الحزم الأخرى في خادم قابل للتشغيل.
[dependencies]
prx-memory-mcp = "0.1"عادةً لا تُستخدم هذه الحزمة كاعتمادية مكتبة -- إنها توفر ثنائي prx-memoryd.
معالجة الأخطاء
تستخدم جميع الحزم thiserror لتعدادات أخطاء مكتوبة. تتشعب الأخطاء باستخدام المعامل ? ولا تُحوَّل أبداً إلى حالات ذعر في كود الإنتاج.
// Example error pattern
use thiserror::Error;
#[derive(Error, Debug)]
pub enum EmbedError {
#[error("API request failed: {0}")]
Request(#[from] reqwest::Error),
#[error("API key not configured")]
MissingApiKey,
#[error("Unexpected response: {0}")]
Response(String),
}التزامن
- تستخدم mutex المتزامنة
parking_lot::Mutex(بدون تسمم). - تستخدم mutex غير المتزامنة
tokio::sync::Mutex. std::sync::Mutexمحظور في كود الإنتاج.- البيانات غير القابلة للتغيير المشتركة تستخدم
Arc<str>أوArc<T>.
الاعتماديات
جميع طلبات الشبكة تستخدم reqwest مع rustls-tls (لا اعتمادية على OpenSSL). تستخدم التسلسل serde وserde_json.
الخطوات التالية
- نماذج التضمين -- الإعداد الخاص بالمزوّد
- واجهات التخزين -- تطبيقات سمة التخزين
- مرجع الإعداد -- مرجع متغيرات البيئة