gekro
GitHub LinkedIn
Workflow

السرعة النهائية: سطر الأوامر كطبقة تجريد للذكاء الاصطناعي

مدة القراءة: 7 د

هذه ترجمة آلية للنص الإنجليزي الأصلي. قد تضيع بعض الفروق الدقيقة، لذا تبقى النسخة الإنجليزية هي المرجع. اقرأ النص الأصلي بالإنجليزية

باختصار

لماذا تُعد الواجهات الرسومية عنق زجاجة في هندسة الذكاء الاصطناعي، وكيف تبني سير عمل عالي السرعة في سطر الأوامر باستخدام WSL2 وZsh.
الواجهة الرسومية كذبة صُممت للاكتشاف لا للسرعة. وفي تطوير الذكاء الاصطناعي، الطرفية هي الواجهة الوحيدة التي تواكب سرعة التفكير. يفصّل هذا المقال دوال Zsh وإعدادات WSL2 المحددة التي أستخدمها لتمرير مخرجات النظام مباشرة إلى النماذج اللغوية دون أن ألمس الفأرة أبدًا.

في مختبر ذكاء اصطناعي حديث، تتحدد إنتاجيتك بتكلفة التنقل بين السياقات. إذا كنت تنتقل باستمرار عبر alt-tab إلى متصفح للصق سجلات الأخطاء أو رسائل الالتزام، فأنت تنزف تركيزك. أشغّل كل شيء من نسخة WSL2 مخصصة بدرجة كبيرة، لأن الطرفية هي الواجهة الأصلية لـ”طبقة الذكاء”. وبتمرير نظام التشغيل مباشرة إلى نموذج لغوي، خفضت “عمل الحمقى” (التنسيق، وكتابة رسائل الالتزام، والبحث في السجلات) إلى ما يقارب الصفر.

لم يكن هذا التحول أيديولوجيًا. كانت بيئة التطوير (IDE) الخاصة بي تفشل مرارًا وتكرارًا مع أوامر PowerShell وBash، وكانت الطرفية تؤدي المهمة ببساطة. هذا كان كل التحوّل.

البنية

يتعامل سير عملي مع الصدفة بوصفها خط أنابيب بيانات قابلًا للتركيب. مخرجات أي أمر، سواء كان بناءً فاشلًا أو git diff أو استجابة curl، ليست سوى نص. والنص هو اللغة الأساسية للنماذج اللغوية.

المكوّنالأداة / الإعدادالمبرر
الصدفةZsh + Oh My Zshمنظومة إضافات وإكمال تلقائي متفوق بالتبويب.
الطرفيةWindows Terminalأفضل دعم لتعدد التبويبات والعرض بالـ GPU على Windows.
المُضاعِفTmuxجلسات دائمة عبر إعادة تشغيل WSL2.
الخطMesloLGS NFمطلوب لـ Powerlevel10k والأيقونات.
سطر أوامر الذكاء الاصطناعيfabric / ollamaأغلفة خفيفة لتمرير النص إلى “العقول”.

البناء

القوة الحقيقية تكمن في ملف .zshrc الخاص بك. لا أستخدم وكلاء معقدين للمهام البسيطة؛ بل أستخدم دوال صدفة تتحدث إلى GekroLLMClient الخاص بي.

1. التزامات Git مدعومة بالذكاء الاصطناعي

توقف عن كتابة “fix” كرسالة التزام. تُجهّز هذه الدالة تغييراتك، وترسل الفروقات إلى نسخة Llama 3 محلية، وتولّد رسالة التزام وفق المعيار المتعارف عليه.

# Generate AI commit message from staged changes
aic() {
  local diff=$(git diff --cached)
  if [ -z "$diff" ]; then
    echo "No staged changes found."
    return 1
  fi
  
  echo "Generating commit message..."
  local msg=$(echo "$diff" | ollama run llama3 "Generate a concise, one-line conventional commit message for this diff. No preamble.")
  
  git commit -m "$msg"
}

2. أنبوب الشرح

في كل مرة يفشل فيها أمر، أمرّره إلى الأنبوب. لا مزيد من البحث في جوجل عن رموز أخطاء C++ الغامضة.

# Pipe any output to LLM for instant explanation
alias explain="ollama run llama3 'Explain this error output and suggest a fix concisely:'"

# Usage:
# npm run build | explain

3. ملاحظة إعداد WSL2

لتجعل هذا يبدو كتجربة Linux أصلية على Windows، عليك إصلاح غرائب المسارات والخطوط.

مقتطف من settings.json في Windows Terminal:

{
    "guid": "{57605e5d-1f0f-5602-9ae4-0466a014995f}",
    "name": "Ubuntu-22.04",
    "source": "Windows.Terminal.Wsl",
    "font": {
        "face": "MesloLGS NF",
        "size": 12
    },
    "startingDirectory": "//wsl$/Ubuntu-22.04/home/rohit"
}

نصيحة: استخدم دائمًا صيغة المسار //wsl$/ في تطبيقات Windows لتجنب عقوبة الأداء الناتجة عن NTFS/9P.

المفاضلات

كلفني إعداد هذا ساعات لم أحسب لها حسابًا. كنت أحاول أن أجعل نموذجًا يرشدني خلال إعداد WSL2 وZsh، فدار بي في حلقات (كان الجيل الثاني من Gemini): يعطيني أمرًا بثقة تامة، ويراني ألصقه، ويراه يفشل، ثم يعطيني آخر. وصلت إلى الحل بقراءة التوثيق الفعلي، كأننا في 2015. إذا كنت تقوم بهذا الإعداد، فخصص له عصرًا كاملًا وتجاهل الطريق المختصر.

أكبر خطأ أراه يرتكبه المهندسون هو تضخم الأسماء المستعارة. كان لدي ذات مرة أكثر من 200 اسم مستعار، وكنت أقضي وقتًا في تذكّر الاختصار أطول مما كنت سأقضيه في كتابة الأمر. ومنذ ذلك الحين قلّصتها إلى “الخمسة عالية التكرار”: aic (التزام بالذكاء الاصطناعي)، وgup (Docker Compose Up)، وld (تفريغ السجل)، وpf (تنسيق Python)، وexplain.

حقيقة تشغيلية: تمرير السجلات الحساسة إلى نموذج لغوي سحابي ثغرة أمنية تنتظر أن تقع. تعلمت ذلك حين أرسلت بالخطأ ملف .env إنتاجيًا يحتوي على بيانات اعتماد بنص صريح إلى مزوّد سحابي، لأنه علق في أمر grep مررته إلى اسم مستعار “explain”. استخدم دائمًا نسخة Ollama محلية لتمرير مخرجات الصدفة لتبقى متغيرات بيئتك على جهازك.

نقطة أخيرة، وهي تُفرغ العنوان من بعض هوائه. أستخدم الاثنين الآن. فازت الطرفية بالمهام التي تجيدها، واحتفظت الواجهة الرسومية بما تجيده، وفي مكان ما على الطريق توقفت عن حساب النقاط. إذا جئت تبحث عن قصة تحوّل بنهاية نظيفة، فهذه هي النسخة الصادقة.

إلى أين يتجه هذا

أبني حاليًا جسرًا من الطرفية إلى الإجراء. وبدلًا من الاكتفاء بشرح الخطأ، ستقترح دالة الصدفة أمر sed أو patch، وسأتمكن من الضغط على Y لتطبيق الإصلاح مباشرة. الطرفية لا تصبح قديمة؛ إنها تتحول إلى قمرة القيادة لكل وكيل نبنيه.

Rohit Burani

بقلم

Rohit Burani

مهندس ذكاء اصطناعي يبني أنظمة محلية أولًا وبنية تحتية مستضافة ذاتيًا وأدوات مستقلة من المختبر.