أنشئ عالمًا حيث يمكن للجميع المساهمة في الذكاء العام الاصطناعي، بدءًا من البيانات.
Oxen في جوهرها عبارة عن مكتبة للتحكم في إصدار البيانات، مكتوبة بلغة Rust. أهدافها هي أن تكون سريعة وموثوقة وسهلة الاستخدام. لقد تم تصميمه ليتم استخدامه بعدة طرق، بدءًا من أداة سطر الأوامر البسيطة، إلى خادم بعيد للمزامنة معه، وحتى التكامل مع الأنظمة البيئية الأخرى مثل python.
يمكن العثور على الوثائق الخاصة بسلسلة أدوات Oxen.ai هنا.
transformers
datasets
الثيران مكتوبة بحتة في الصدأ؟. يجب عليك تثبيت سلسلة أدوات Rust مع الصدأ: https://www.rust-lang.org/tools/install.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
إذا كنت مطورًا وتريد معرفة المزيد حول إضافة التعليمات البرمجية أو البنية الشاملة، فابدأ هنا. بخلاف ذلك، ستتبع ذلك بداية سريعة للتأكد من أن كل شيء يعمل.
cargo build
إذا كنت تستخدم جهاز Intel Mac، فقد تحتاج إلى إنشاء ما يلي
$ rustup target install x86_64-apple-darwin
$ cargo build --target x86_64-apple-darwin
إذا كنت تستخدم نظام التشغيل Windows، فقد تحتاج إلى إضافة الدلائل التالية إلى متغير البيئة "INCLUDE".
"C:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsMSVC14.29.30133include"
"C:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsMSVC14.29.27023include"
"C:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsLlvmlibclang12.0.0include"
هذه أمثلة للمسارات وستختلف بين الأجهزة. إذا قمت بتثبيت "أدوات C++ Clang لنظام التشغيل Windows" من خلال Microsoft Visual Studio Build Tools، فيمكن تحديد موقع الدلائل من تثبيت Visual Studio ضمن "BuildToolsVCTools"
يمكنك استخدام رابط القالب لتسريع عمليات البناء (يتم بيع إصدار macOS المرخص من معهد ماساتشوستس للتكنولوجيا).
استخدم الإرشادات التالية لتثبيت البضائع المباعة وتكوينها لاستخدامها في بناء الثيران:
git clone --depth=1 --single-branch https://github.com/bluewhalesystems/sold.git
mkdir sold/build
cd sold/build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=c++ ..
cmake --build . -j $(nproc)
sudo cmake --install .
ثم قم بإنشاء .cargo/config.toml
في جذر Oxen repo الخاص بك بالمحتوى التالي:
[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "link-arg=-fuse-ld=/usr/local/bin/ld64.mold"]
[target.x86_64-apple-darwin]
rustflags = ["-C", "link-arg=-fuse-ld=/usr/local/bin/ld64.mold"]
بالنسبة لنظام التشغيل macOS المزود بـ Apple Silicon ، يمكنك استخدام رابط lld.
brew install llvm
ثم قم بإنشاء .cargo/config.toml
في جذر Oxen repo الخاص بك بما يلي:
[target.aarch64-apple-darwin]
rustflags = [ "-C", "link-arg=-fuse-ld=/opt/homebrew/opt/llvm/bin/ld64.lld", ]
لتشغيل Oxen من سطر الأوامر، أضف دليل Oxen/target/debug
إلى متغير البيئة "PATH"
export PATH="$PATH:/path/to/Oxen/target/debug"
على نظام التشغيل Windows، يمكنك استخدام
$env:PATH += ";/path/to/Oxen/target/debug"
قم بتهيئة مستودع جديد أو استنساخ مستودع موجود
oxen init
oxen clone https://hub.oxen.ai/namespace/repository
سيؤدي هذا إلى إنشاء .oxen
dir في دليلك الحالي ويسمح لك بتشغيل أوامر Oxen CLI
oxen status
oxen add images/
oxen commit -m "added images"
oxen push origin main
لتشغيل خادم Oxen محلي، قم بإنشاء ملف تكوين ورمز مميز لمصادقة المستخدم
./target/debug/oxen-server add-user --email [email protected] --name Ox --output user_config.toml
انسخ التكوين إلى المواقع الافتراضية
mkdir ~/.oxen
mv user_config.toml ~/.oxen/user_config.toml
cp ~/.oxen/user_config.toml data/test/config/user_config.toml
قم بتعيين المكان الذي تريد مزامنة البيانات إليه. دليل المزامنة الافتراضي هو ./data/
لتغييره قم بتعيين متغير البيئة SYNC_DIR على المسار.
export SYNC_DIR=/path/to/sync/dir
يمكنك أيضًا إنشاء ملف .env.local في الدليل /src/server والذي يمكن أن يحتوي على متغير SYNC_DIR لتجنب تعيينه في كل مرة تقوم فيها بتشغيل الخادم.
قم بتشغيل الخادم
./target/debug/oxen-server start
لتشغيل الخادم مع إعادة التحميل المباشر، قم أولاً بتثبيت ميزة مراقبة البضائع
cargo install cargo-watch
في نظام التشغيل Windows، قد تحتاج إلى استخدام cargo-watch --locked
cargo install cargo-watch --locked
ثم قم بتشغيل الخادم مثل هذا
cargo watch -- cargo run --bin oxen-server start
إذا قمت بتثبيت Nix، فيمكنك استخدام الشريحة لإنشاء الخادم وتشغيله. سيؤدي هذا تلقائيًا إلى تثبيت وتكوين تبعيات سلسلة أدوات البناء المطلوبة لنظامي التشغيل Linux وmacOS.
nix build .#oxen-server
nix build .#oxen-cli
nix build .#liboxen
nix run .#oxen-server -- start
nix run .#oxen-cli -- init
للتطوير باستخدام سلسلة أدوات الصدأ القياسية في Nix dev Shell:
nix develop -c $SHELL
cargo build
cargo run --bin oxen-server start
cargo run --bin oxen start
توفر الشريحة أيضًا انحرافات لإنشاء صور OCI (Docker) مع الحد الأدنى من التبعيات المطلوبة لإنشاء وتشغيل oxen
& oxen-server
.
nix build .#oci-oxen-server
nix build .#oci-oxen-cli
سيؤدي هذا إلى تصدير صورة OCI ويمكن تحميلها بما يلي:
docker load -i result
تأكد من تكوين المستخدم الخاص بك وأن الخادم يعمل على المنفذ والمضيف الافتراضيين، وذلك باتباع خطوات الإعداد التالية:
# Configure a user
mkdir ./data/test/runs
./target/debug/oxen-server add-user --email [email protected] --name Ox --output user_config.toml
cp user_config.toml data/test/config/user_config.toml
# Start the oxen-server
./target/debug/oxen-server start
ملحوظة: تفتح الاختبارات الكثير من مقابض الملفات، لذا حدد عدد سلاسل الاختبار في حالة تشغيل كل شيء.
يمكنك أيضًا زيادة عدد الملفات المفتوحة التي يسمح بها نظامك قبل إجراء الاختبارات:
ulimit -n 10240
cargo test -- --test-threads=$(nproc)
يمكن أن يكون أسرع (من حيث التجميع ووقت التشغيل) لإجراء اختبار محدد. لإجراء اختبار مكتبة محدد:
cargo test --lib test_get_metadata_text_readme
لإجراء اختبار تكامل محدد
cargo test --test test_rm test_rm_directory_restore_directory
للتشغيل مع جميع مخرجات التصحيح وإجراء اختبار محدد
env RUST_LOG=warn,liboxen=debug,integration_test=debug cargo test -- --nocapture test_command_push_clone_pull_push
لتعيين مضيف اختبار مختلف، يمكنك تعيين متغير البيئة OXEN_TEST_HOST
env OXEN_TEST_HOST=0.0.0.0:4000 cargo test
تتمتع المستودعات البعيدة بنفس البنية الداخلية للمستودعات المحلية، مع الإشارة إلى أن جميع البيانات موجودة في .oxen dir وليست مكررة في "مساحة عمل محلية".
إعدادات الخادم الافتراضية هي المضيف المحلي 3000
set SERVER 0.0.0.0:3000
يمكنك الحصول على رمز المصادقة الخاص بك من ملف التكوين أعلاه (~/.oxen/user_config.toml)
set TOKEN <YOUR_TOKEN>
curl -H "Authorization: Bearer $TOKEN" "http://$SERVER/api/repos"
curl -H "Authorization: Bearer $TOKEN" -X POST -d '{"name": "MyRepo"}' "http://$SERVER/api/repos"
قم بإنشاء صورة عامل الإرساء
docker build -t oxen/server:0.6.0 .
قم بتشغيل حاوية على المنفذ 3000 باستخدام نظام ملفات محلي مثبت من /var/oxen/data على المضيف إلى /var/oxen/data في الحاوية.
docker run -d -v /var/oxen/data:/var/oxen/data -p 3000:3001 --name oxen oxen/server:0.6.0
أو استخدم عامل الإرساء يؤلف
docker-compose up -d reverse-proxy
docker-compose up -d --scale oxen=4 --no-recreate