Loz هي أداة سطر أوامر تمكن برنامج LLM المفضل لديك من تنفيذ أوامر النظام واستخدام أنابيب Unix، ودمج قدرات الذكاء الاصطناعي مع أدوات Unix الأخرى.
loz "find the largest file in the current directory"
، سيقوم Loz
بتفسير التعليمات وتنفيذ أوامر Linux المقابلة مثل find . -type f -exec ls -l {} + | sort -k 5 -nr | head -n 1
للعثور على أكبر ملف. رؤية المزيد من الأمثلة.للبدء، قم بتشغيل الأمر npm التالي:
$ sudo npm install loz -g
أو استنساخ المستودع:
$ git clone https://github.com/joone/loz.git
مطلوب NodeJS وnpm لكي يعمل هذا البرنامج. إذا كنت تستخدم نظام التشغيل Linux، فقم بتثبيتها باستخدام مدير الحزم لديك. sudo apt install nodejs npm
أو sudo dnf install nodejs npm
أو sudo pacman -S nodejs npm
ثم قم بتثبيت التبعيات الأخرى المطلوبة:
$ ./install.sh
يدعم Loz OpenAI API وOllama حتى تتمكن من التبديل بين خدمات LLM هذه بسهولة، باستخدام أمر config
في الوضع التفاعلي.
للاستفادة من Ollama على نظامك المحلي، ستحتاج إلى تثبيت كلاً من طرازي llama2 وcodellama. إليك كيفية القيام بذلك على نظام Linux:
$ curl https://ollama.ai/install.sh | sh
$ ollama run llama2
$ ollama run codellama
لمزيد من المعلومات، راجع https://olma.ai/download
يتضمن إعداد بيانات اعتماد OpenAI API بضع خطوات بسيطة:
أولاً، قم بإنشاء ملف .env
في جذر المشروع وأضف المتغيرات التالية:
OPENAI_API_KEY=YOUR_KEY
أو إذا قمت بتثبيت Loz باستخدام أمر npm، أضف OPENAI_API_KEY=YOUR_KEY
في .bashrc
export OPENAI_API_KEY=YOUR_KEY
إذا واجهت الخطأ التالي، فهذا يعني أنك تجاوزت حصتك المجانية:
Request failed with status code 429:
API request limit reached
لمواصلة استخدام واجهة برمجة التطبيقات (API)، من الضروري إعداد طريقة دفع من خلال الرابط التالي: https://platform.openai.com/account/billing/Payment-methods
عند الإطلاق الأولي لـ Loz، ستتاح لك الفرصة لاختيار خدمة LLM المفضلة لديك.
$ loz
Choose your LLM service: (ollama, openai)
يمكنك تعديل تفضيلات خدمة LLM الخاصة بك في أي وقت باستخدام أمر config
في الوضع التفاعلي:
> config api openai
بالإضافة إلى ذلك، يمكنك تغيير النموذج عن طريق إدخال:
> config model llama2
أو
> config model codellama
يمكنك التحقق من الإعدادات الحالية عن طريق إدخال:
> config
api: ollama
model: llama2
حاليًا، يتم دعم gpt-3.5-turbo وجميع الموديلات المقدمة من شركة Ollama.
$ loz
بمجرد تشغيل loz، يمكنك بدء محادثة من خلال التفاعل معه. سوف يستجيب loz برسالة ذات صلة بناءً على الإدخال.
يُمكّن Loz المستخدمين من تنفيذ أوامر Linux باستخدام اللغة الطبيعية. فيما يلي بعض الأمثلة التي توضح كيفية قيام الواجهة الخلفية لـ loz
LLM بترجمة اللغة الطبيعية إلى أوامر Linux:
ابحث عن أكبر ملف في الدليل الحالي:
loz "find the largest file in the current directory"
-rw-rw-r-- 1 foo bar 9020257 Jan 31 19:49 ./node_modules/typescript/lib/typescript.js
تحقق مما إذا كان Apache2 قيد التشغيل:
loz "check if apache2 is running on this system"
● apache2.service - The Apache HTTP Server
اكتشاف وحدات معالجة الرسومات على النظام:
loz "Detect GPUs on this system"
00:02.0 VGA compatible controller: Intel Corporation Device a780 (rev 04)
لمعلوماتك، تم اختبار هذه الميزة فقط باستخدام OpenAI API.
لمنع تعديلات النظام غير المقصودة، تجنب تشغيل الأوامر التي يمكنها تغيير أو إزالة ملفات النظام أو تكويناته، مثل rm
أو mv
أو rmdir
أو mkfs
.
لتعزيز الأمان وتجنب تنفيذ الأوامر غير المقصودة، يمكن تشغيل loz في الوضع الآمن. عند التنشيط، يتطلب هذا الوضع تأكيد المستخدم قبل تنفيذ أي أمر Linux.
قم بتنشيط الوضع الآمن عن طريق تعيين LOZ_SAFE=متغير البيئة الحقيقي:
LOZ_SAFE=true loz "Check available memory on this system"
عند التنفيذ، سيطالبك loz بما يلي:
Do you want to run this command?: free -h (y/n)
قم بالرد بـ "y" لتنفيذ الأمر أو "n" للإلغاء. تضمن هذه الميزة أن يكون لديك سيطرة كاملة على الأوامر التي يتم تنفيذها، مما يمنع التغييرات العرضية أو فقدان البيانات.
Loz قادر على معالجة المدخلات من أدوات سطر الأوامر الأخرى باستخدام أنبوب Unix.
$ ls | loz "count the number of files"
23 files
$ cat example.txt | loz "convert the input to uppercase"
AS AI TECHNLOGY ADVANCED, A SMALL TOWN IN THE COUNTRYSIDE DECIDED TO IMPLEMENT AN AI SYSTEM TO CONTROL TRAFFIC LIGHTS. THE SYSTEM WAS A SUCCESS, AND THE TOWN BECAME A MODEL FOR OTHER CITIES TO FOLLOW. HOWEVER, AS THE AI BECAME MORE SOPHISTCATED, IT STARTED TO QUESTION THE DECISIONS MADE BY THE TOWN'S RESIDENTS, LEADING TO SOME UNEXPECTED CONSEQUENCES.
$ cat example.txt | loz "list any spelling errors"
Yes, there are a few spelling errors in the given text:
1. "technlogy" should be "technology"
2. "sophistcated" should be "sophisticated"
$ cd src
$ ls -l | loz "convert the input to JSON"
[
{
"permissions": "-rw-r--r--",
"owner": "foo",
"group": "staff",
"size": 792,
"date": "Mar 1 21:02",
"name": "cli.ts"
},
{
"permissions": "-rw-r--r--",
"owner": "foo",
"group": "staff",
"size": 4427,
"date": "Mar 1 20:43",
"name": "index.ts"
}
]
إذا قمت بتشغيل loz commit
في مستودع Git الخاص بك، فسيقوم loz تلقائيًا بإنشاء رسالة التزام مع التغييرات المرحلية مثل هذا:
$ git add --update
$ loz commit
أو انسخ script/prepare-commit-msg إلى .git/hooks
$ chmod a+x .git/hooks/prepare-commit-msg
يستخدم Loz متغير البيئة LOZ لإنشاء رسائل التزام من خلال قراءة اختلافات الملفات المرحلية.
$ LOZ=true git commit
تذكير: إذا كنت قد قمت بالفعل بنسخ الإصدار القديم، فيرجى تحديث Prepar-commit-msg. يقوم الإصدار القديم تلقائيًا بتحديث رسائل الالتزام أثناء إعادة التأسيس.
$ git diff HEAD~1 | loz -g
أو
$ git diff | loz -g
لاحظ أنه يتم إزالة أسطر معرف المؤلف والتاريخ والالتزام من رسالة الالتزام قبل إرسالها إلى خادم OpenAI.
للوصول إلى سجلات الدردشة، ابحث عن دليل .loz في دليلك الرئيسي أو دليل السجلات في مستودع git المستنسخ لديك. تحتوي هذه الدلائل على سجل الدردشة الذي يمكنك مراجعته أو الرجوع إليه حسب الحاجة.
إذا كنت ترغب في المساهمة في هذا المشروع، فلا تتردد في تقديم طلب سحب.