هيوستن هي أداة سطر أوامر بسيطة تستند إلى GPT تتيح لك إنشاء أوامر SHELL أو البرامج النصية من خلال إعطاء تعليمات لغة طبيعية بسيطة.
يعمل على Linux و Mac و Windows. يمكنك استخدامه في Bash أو PowerShell أو Zsh أو Python أو أي لغة أخرى أو لغة نصية أخرى.
cargo install --git https://github.com/npgrosser/Houston.git
الأمر الافتراضي للتفاعل مع هيوستن هو hu (قصير بالنسبة لهيوستن). يمكنك إعطاء هيوستن تعليمات باللغة الطبيعية.
على سبيل المثال:
hu run ubuntu container with interactive bashhu find all pdf files in my home directoryhu delete unused docker images and networkshu tell me a dad jokeلاستخدام هيوستن ، يجب تعيين متغير بيئة Openai_API_Key على مفتاح API Openai. يمكنك الحصول على واحدة في https://platform.openai.com. إذا كنت تفضل ذلك ، يمكنك أيضًا تحديد المفتاح في ملف التكوين الخاص بك ، راجع قسم التكوين لمزيد من المعلومات.
هيوستن لا يعرف أي شيء عن نظامك. لذلك ، لإعطاء هيوستن أفضل فرصة لاستكمال المهام ، يمكنك توفير معلومات السياق. قد يتضمن ذلك تفاصيل حول شجرة الملفات ، ومحتويات ملفات محددة ، وحزم مثبتة ، وسجل باش الخاص بك ، إلخ.
لهذا الغرض ، هناك بعض الميزات التي تساعدك على القيام بذلك.
ملف السياق هو ملف مع ملحق ".ctxt" الذي يحتوي على قائمة بالمعلومات باللغة الطبيعية.
يمكنك أيضًا إضافة معلومات تم إنشاؤها ديناميكيًا باستخدام متغيرات الأوامر .
يتم دائمًا توفير المعلومات التي تحددها في ملف ~/houston/default.ctxt دائمًا إلى هيوستن. هذا هو ملف السياق الذي ستستخدمه لإعلام هيوستن بتفضيلاتك ومتطلباتك الفردية. على سبيل المثال ، أي مدير الحزمة الذي تفضله ، ما هي لغتك المفضلة ، وما تحبه أن يتصل بك ، إلخ.
يجب كتابة محتوى ملف السياق كقائمة من نقاط الرصاص.
مثال:
- If I want you to install something, use brew if the package is avaiable there
- If the script gets more complex, use comments to explain what you are doing
- When printing to the console, use capital letters. I like it when you shout at me
ملفات السياق المسماة هي ملفات سياق يمكنك تمكينها على أساس كل شيء. إنها مفيدة لتوفير معلومات السياق الخاصة بمهمة معينة. مثل ملف السياق الافتراضي ، فهي موجودة في دليل ~/Houston . يمكنك تمكينهم باستخدام علامة -c .
hu <instruction> -c <context-file-name>
مثال:
~/Houston/Pretty-Output.ctxt
- when printing to the terminal, use colored output and fancy ASCII art
الاستخدام:
hu print hello world -c pretty-output
لكل تعليمات ، يمكنك تمكين ملفات سياق متعددة.
hu <instruction> -c <context-file-name-1> -c <context-file-name-2>
مثال:
hu tell me a joke -c pretty-output -c dark-humor
يمكن أن تكون ملفات السياق ملفات نصية عادية ، ولكن يمكن أن تحتوي أيضًا على متغيرات الأوامر . يمكنك الاستفادة منها باستخدام بناء الجملة ${cmd} . يتم تقييم متغيرات الأوامر هذه على كل تعليمات واستبدالها بإخراج الأمر.
فيما يلي مثال على ملف السياق باستخدام متغيرات الأوامر:
- The current working directory is ${pwd}.
- The current user is ${whoami}.
- The current time is ${date}.
عند معالجة هذا القالب ، سيبدو الناتج الناتج مشابهًا لهذا:
- The current working directory is /home/user/my-name/houston.
- The current user is my-name.
- The current time is 2020-10-10 12:00:00.
عند كتابة ملفات السياق الخاصة بك ، ضع في اعتبارك أنه سيتم إرسال جميع البيانات إلى OpenAI. لذلك ، يجب عليك فقط استخدام الأوامر التي لا تكشف عن معلومات حساسة.
عند استخدام سياق مسمى عبر علامة -C ، يمكنك أيضًا تمرير الوسائط. على سبيل المثال:
hu tell me a joke -c lang:german
يتم تمرير الوسائط إلى القالب ، حيث يمكنك الوصول إليه كما تفعل مع أي برنامج نصي Shell العادي. مثال:
~/Houston/Lang.Ctxt:
- When printing to the terminal, always use the ${echo $1} language.
ضع في اعتبارك أننا بحاجة إلى استخدام أمر ECHO هنا لأن متغيرات الأوامر يتم استبدالها بإخراج الأمر
إذا كنت ترغب في تمرير وسائط متعددة ، فأنت بحاجة فقط إلى التأكد من إضافة عروض أسعار حول مواصفات السياق .
hu tell me a joke -c "langs:german english french"
لاحظ أن المثال أعلاه يفترض أن Bash يتم استخدامه كقذيفة لتقييم متغيرات الأمر.
عند استخدام قذيفة مختلفة ، قد تحتاج إلى استخدام بناء جملة مختلف للوصول إلى الوسائط.
على سبيل المثال ، في PowerShell ، يمكنك استخدام متغير $ args. أيضا ، لن تحتاج إلى استخدام أمر صدى.
- When printing to the terminal, always use the ${$args[0]} language.
فيما يلي بعض الأمثلة الأخرى لملفات السياق المسماة لمنحك فكرة عن كيفية استخدامها.
ملف سياق يضيف حالة GIT الحالية كمعلومات سياق.
- The current git status is:
```
${git status}
```
ملف سياق يضيف حالة Docker الحالية كمعلومات سياق.
- The current docker status is:
```
${docker ps -a}
```
- The current docker images are:
```
${docker images}
```
ملف السياق الذي يضيف أوامر N (الافتراضي 10) من تاريخ Bash كمعلومات سياق.
- The last ${1:-10} commands I ran were:
```
${tail -n ${1:-10} ~/.bash_history | cut -d ';' -f 2-}
```
ملف سياق يضيف متغيرات البيئة الحالية كمعلومات سياق.
- The current environment variables are:
```
${env}
```
ملف سياق يضيف شجرة الملف الحالية كمعلومات سياق.
- The current file tree is:
```
${tree -L ${1:-3}}
```
إذا كنت تريد أن ترى ما الذي يتم تمريره بالفعل إلى واجهة برمجة التطبيقات ، فيمكنك استخدام علامة -v (مطول).
hu <instruction> -v
هذا مفيد بشكل خاص إذا كنت تريد معرفة كيفية تقييم ملفات السياق الخاصة بك.
انظر مثال config.yml للحصول على خيارات التكوين المتاحة. يتم إنشاء التكوين تلقائيًا عند تشغيل hu لأول مرة. سيكون إما في $XDG_CONFIG_HOME/houston/config.yml أو ~/.config/houston/config.yml .