يُحدث OpenHands ثورة في عالم البرمجة! فهو يُمكن من إدارة البرمجة بالكامل بواسطة الذكاء الاصطناعي، من التخطيط وكتابة الأكواد إلى تنفيذ الأوامر وتصفح الويب واستدعاء الـ APIs والبحث عن حلول في StackOverflow. إنه "مهندس برمجيات" متكامل.
- تفعيل ميزات Windows المطلوبة:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
: يُفعّل WSL. -
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
: يُفعّل منصة الآلة الافتراضية. -
إعادة تشغيل الجهاز
-
تثبيت WSL2 Linux kernel: (رابط التحميل)
-
تعيين WSL2 كإصدار افتراضي:
wsl --set-default-version 2
-
wsl --set-default-version 2
: يُعيّن الإصدار 2 من WSL كافتراضي. -
تثبيت توزيعة Linux (Ubuntu): (من خلال Microsoft Store)
-
التحقق من التثبيت:
wsl --version
wsl --list --verbose
-
wsl --version
: يعرض إصدار WSL. -
wsl --list --verbose
: يعرض التوزيعات المثبتة ومعلومات عنها. -
إعداد Ubuntu: (إنشاء اسم مستخدم وكلمة مرور)
التحقق من التكامل:
docker --version
docker ps
docker --version
: يعرض إصدار Docker.docker ps
: يعرض الحاويات المشغلة.
- تحميل صورة OpenHands:
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.14-nikolaik
-
يقوم هذا الأمر بتحميل أحدث صورة Docker لـ OpenHands (0.14-nikolaik).
-
إنشاء مجلد للمشروع (مثال:
D:\Hello World
) -
تحديد متغير بيئة لمسار المجلد في Ubuntu WSL:
export WORKSPACE_BASE="/mnt/d/Hello World"
-
export WORKSPACE_BASE="/mnt/d/Hello World"
: يُحدد مسار مجلد المشروع داخل WSL. تأكد من تغيير المسار إلى المسار الصحيح لمجلد مشروعك. -
تشغيل OpenHands:
docker run -it --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.14-nikolaik \
-e SANDBOX_USER_ID=$(id -u) \
-e WORKSPACE_MOUNT_PATH="$WORKSPACE_BASE" \
-v "$WORKSPACE_BASE:/opt/workspace_base:rw" \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 3000:3000 \
-p 5000:5000 \
-e LOG_ALL_EVENTS=true \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.14
-
-e SANDBOX_USER_ID=$(id -u)
: يضبط مُعرّف المستخدم داخل الحاوية ليتطابق مع مُعرّف المستخدم على النظام المضيف، وهذا مهم للسماح بالوصول إلى الملفات بشكل صحيح. -
-e WORKSPACE_MOUNT_PATH="$WORKSPACE_BASE"
: يُحدد مسار المجلد المُشترك داخل الحاوية. -
-v "$WORKSPACE_BASE:/opt/workspace_base:rw"
: يربط مجلد المشروع على النظام المضيف ($WORKSPACE_BASE
) بمجلد/opt/workspace_base
داخل الحاوية مع صلاحيات القراءة والكتابة (rw
). -
-v /var/run/docker.sock:/var/run/docker.sock
: يربط Docker socket للسماح للحاوية بالوصول إلى Docker daemon على النظام المضيف. -
-p 3000:3000
: يعيّن المنفذ 3000 للحاوية إلى المنفذ 3000 على النظام المضيف. -
-p 5000:5000
: يعيّن المنفذ 5000 للحاوية إلى المنفذ 5000 على النظام المضيف (تمت إضافته). -
--add-host host.docker.internal:host-gateway
: يُضيف مُدخل host للوصول إلى النظام المضيف من داخل الحاوية. -
--name openhands-app
: يُسمّي الحاوية بـopenhands-app
. -
فتح OpenHands في المتصفح:
http://127.0.0.1:3000/
docker exec -it openhands-app bash -c "cd '/opt/workspace_base' && bash"
docker exec -it openhands-app bash -c "cd '/opt/workspace_base' && bash"
: يسمح بالدخول إلى حاوية OpenHands وتنفيذ الأوامر داخلها. يُغير المسار إلى/opt/workspace_base
الذي يُمثل مجلد مشروعك داخل الحاوية. يمكنك بعدها تشغيل الأوامر اللازمة مثلpython3 app.py
.
لا تنسَ الاشتراك في القناة وتفعيل جرس التنبيهات! ❤️
مرحبًا بكم في OpenHands (المعروف سابقًا باسم OpenDevin)، وهي منصة لعوامل تطوير البرمجيات مدعومة بالذكاء الاصطناعي.
يمكن لعوامل OpenHands القيام بأي شيء يمكن لمطور بشري القيام به: تعديل التعليمات البرمجية، وتشغيل الأوامر، وتصفح الويب، واستدعاء واجهات برمجة التطبيقات، وحتى نسخ مقاطع التعليمات البرمجية من StackOverflow.
تعرف على المزيد على docs.all-hands.dev، أو انتقل إلى البدء السريع.
أسهل طريقة لتشغيل OpenHands هي باستخدام Docker. راجع دليل التثبيت لمعرفة متطلبات النظام ومزيد من المعلومات.
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.14-nikolaik
docker run -it --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.14-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.14
ستجد OpenHands قيد التشغيل على http://localhost:3000!
أخيرًا، ستحتاج إلى موفر نموذج ومفتاح API.
يعمل Anthropic's Claude 3.5 Sonnet (anthropic/claude-3-5-sonnet-20241022
) بشكل أفضل، ولكن لديك العديد من الخيارات.
يمكنك أيضًا ربط OpenHands بنظام الملفات المحلي، وتشغيل OpenHands في وضع بدون رأس قابل للبرمجة، والتفاعل معه عبر واجهة سطر أوامر سهلة، أو تشغيله على المشكلات الموسومة باستخدام إجراء github.
تفضل بزيارة التثبيت لمزيد من المعلومات وتعليمات الإعداد.
إذا كنت ترغب في تعديل التعليمات البرمجية المصدر لـ OpenHands، فراجع Development.md.
هل تواجه مشكلات؟ يمكن أن يساعدك دليل استكشاف الأخطاء وإصلاحها.
لمعرفة المزيد عن المشروع، وللحصول على نصائح حول استخدام OpenHands، راجع التوثيق.
ستجد هناك موارد حول كيفية استخدام مختلف موفري نماذج اللغات الكبيرة، وموارد استكشاف الأخطاء وإصلاحها، وخيارات التكوين المتقدمة.
OpenHands هو مشروع قائم على المجتمع، ونرحب بمساهمات الجميع. سواء كنت مطورًا أو باحثًا أو متحمسًا ببساطة لتطوير مجال هندسة البرمجيات بالذكاء الاصطناعي، فهناك العديد من الطرق للمشاركة:
- مساهمات التعليمات البرمجية: ساعدنا في تطوير عوامل جديدة، أو وظائف أساسية، أو واجهة المستخدم الأمامية والواجهات الأخرى، أو حلول وضع الحماية.
- البحث والتقييم: ساهم في فهمنا لنماذج اللغات الكبيرة في هندسة البرمجيات، وشارك في تقييم النماذج، أو اقترح تحسينات.
- الملاحظات والاختبار: استخدم مجموعة أدوات OpenHands، وأبلغ عن الأخطاء، واقترح ميزات، أو قدم ملاحظات حول سهولة الاستخدام.
للحصول على التفاصيل، يرجى مراجعة CONTRIBUTING.md.
سواء كنت مطورًا أو باحثًا أو متحمسًا ببساطة لـ OpenHands، يسعدنا انضمامك إلى مجتمعنا. لنجعل هندسة البرمجيات أفضل معًا!
- مساحة عمل Slack - هنا نتحدث عن البحث والهندسة المعمارية والتطوير المستقبلي.
- خادم Discord - هذا خادم يديره المجتمع للمناقشة العامة والأسئلة والملاحظات.
موزع بموجب ترخيص MIT. راجع LICENSE
لمزيد من المعلومات.
تم بناء OpenHands بواسطة عدد كبير من المساهمين، ويتم تقدير كل مساهمة بشكل كبير! كما أننا نبني على مشاريع مفتوحة المصدر أخرى، ونحن ممتنون للغاية لعملهم.
للحصول على قائمة بمشاريع المصادر المفتوحة والتراخيص المستخدمة في OpenHands، يرجى مراجعة ملف CREDITS.md.
@misc{openhands,
title={{OpenHands: منصة مفتوحة لمطوري برامج الذكاء الاصطناعي كعوامل عامة}},
author={Xingyao Wang and Boxuan Li and Yufan Song and Frank F. Xu and Xiangru Tang and Mingchen Zhuge and Jiayi Pan and Yueqi Song and Bowen Li and Jaskirat Singh and Hoang H. Tran and Fuqiang Li and Ren Ma and Mingzhang Zheng and Bill Qian and Yanjun Shao and Niklas Muennighoff and Yizhe Zhang and Binyuan Hui and Junyang Lin and Robert Brennan and Hao Peng and Heng Ji and Graham Neubig},
year={2024},
eprint={2407.16741},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2407.16741},
}