
تم اختباره وتوافقه مع Openai Chatgpt ، و Azure Openai Service ، و Perplexity AI و Llama!
يوفر ChatGPT CLI واجهة سطر أوامر قوية للتفاعل السلس مع طرز ChatGPT عبر Openai و Azure ، ويتميز بقدرات البث وخيارات التكوين الواسعة.

context-window .-l أو --list-models .--list-threads .config.yaml ، ومتغيرات البيئة. لإجراء تعديلات سريعة ، يتم توفير علامات مختلفة- --set-<value> . للتحقق من إعداداتك الحالية ، استخدم علامة --config أو -c . نحن متحمسون لتقديم الدعم للملفات المطالبة مع --prompt -الظهر في الإصدار 1.7.1 ! تتيح لك هذه الميزة توفير سياق غني ومفصل لمحادثاتك مباشرة من ملف.
--prompt يتيح لك علامة --prompt تحديد ملف يحتوي على السياق الأولي أو الإرشادات لمحادثة ChatGpt الخاصة بك. يعد هذا مفيدًا بشكل خاص عندما يكون لديك تعليمات أو سياق مفصل تريد إعادة استخدامه عبر محادثات مختلفة.
لاستخدام العلم --prompt ، تمرير مسار الملف المطري على هذا النحو:
chatgpt --prompt path/to/your/prompt.md " Use a pipe or provide a query here " سيتم قراءة محتويات prompt.md واستخدامها كسياق أولي للمحادثة ، في حين أن الاستعلام الذي تقدمه مباشرة سيكون بمثابة سؤال أو مهمة محددة تريد معالجتها.
إليك مثال ممتع حيث يمكنك استخدام إخراج أمر git diff كموجه:
git diff | chatgpt --prompt ../prompts/write_pull-request.md في هذا المثال ، يتم استخدام المحتوى من ملف موجه write_pull-request.md لتوجيه استجابة النموذج استنادًا إلى بيانات Diff من git diff .
لمجموعة متنوعة من المطالبات الجاهزة للاستخدام ، تحقق من مستودع المطالبات الرائعة هذا. هذه يمكن أن تكون بمثابة نقاط انطلاق رائعة أو مصدر إلهام لمطالباتك المخصصة!
يمكنك تثبيت chatgpt-cli باستخدام homebrew:
brew tap kardolus/chatgpt-cli && brew install chatgpt-cliللتثبيت السريع والسهل دون تجميع ، يمكنك تنزيل الثنائي المبني مباشرة لنظام التشغيل والهندسة المعمارية:
curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-386 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/قم بتنزيل الثنائي من هذا الرابط وأضفه إلى طريقك.
اختر الأمر المناسب لنظامك ، والذي سيقوم بتنزيل الثنائي ، وجعله قابل للتنفيذ ، ونقله إلى دليل/usr/local/bin (أو ٪ path ٪ على Windows) لسهولة الوصول إليه.
قم بتعيين متغير بيئة OPENAI_API_KEY على مفتاح ChatGpt السري. لتعيين متغير البيئة ، يمكنك إضافة السطر التالي إلى ملف التعريف الخاص بك shell (على سبيل المثال ، ~/.bashrc ، ~/.zshrc ، أو ~/.bash_profile) ، استبدالك _api_kekey بمفتاحك الفعلي:
export OPENAI_API_KEY= " your_api_key "لتمكين تتبع التاريخ عبر مكالمات CLI ، قم بإنشاء دليل ~/.Chatgpt-Cli باستخدام الأمر:
mkdir -p ~ /.chatgpt-cliبمجرد أن يكون هذا الدليل في مكانه ، يدير CLI تلقائيًا سجل الرسالة لكل "مؤشر ترابط" الذي تتحدث معه. يعمل السجل مثل نافذة انزلاقية ، مع الحفاظ على السياق حتى الحد الأقصى المميز القابل للتكوين. هذا يضمن التوازن بين الحفاظ على سياق المحادثة وتحقيق الأداء الأمثل.
افتراضيًا ، إذا لم يتم توفير مؤشر ترابط معين من قبل المستخدم ، فإن CLI يستخدم مؤشر الترابط الافتراضي ويخزن السجل على ~/.chatgpt-cli/history/default.json . يمكنك العثور على مزيد من التفاصيل حول كيفية تكوين معلمة مؤشر thread في قسم التكوين في هذا المستند.
جربه:
chatgpt what is the capital of the Netherlands لبدء الوضع التفاعلي ، استخدم علامة -i أو --interactive :
chatgpt --interactive إذا كنت تريد أن تقوم CLI بإنشاء مؤشر ترابط جديد تلقائيًا لكل جلسة ، فتأكد من ضبط متغير تكوين auto_create_new_thread على true . سيؤدي ذلك إلى إنشاء معرف مؤشر ترابط فريد لكل جلسة تفاعلية.
لاستخدام ميزة الأنابيب ، قم بإنشاء ملف نصي يحتوي على بعض السياق. على سبيل المثال ، قم بإنشاء ملف اسمه context.txt مع المحتوى التالي:
Kya is a playful dog who loves swimming and playing fetch.ثم ، استخدم ميزة الأنابيب لتوفير هذا السياق إلى ChatGpt:
cat context.txt | chatgpt " What kind of toy would Kya enjoy? "لسرد جميع النماذج المتاحة ، استخدم علامة -L أو -قائمة النماذج:
chatgpt --list-modelsلمزيد من الخيارات ، انظر:
chatgpt --helpيتبنى ChatGPT CLI استراتيجية تكوين من أربعة مستويات ، مع مستويات مختلفة من الأسبقية المخصصة للعلامات ، ومتغيرات البيئة ، وملف config.yaml ، والقيم الافتراضية ، بالترتيب المعني:
| عامل | وصف | تقصير |
|---|---|---|
name | البادئة لتجاوزات متغير البيئة. | "Openai" |
thread | اسم موضوع الدردشة الحالي. كل اسم مؤشر ترابط فريد له سياق خاص به. | 'تقصير' |
omit_history | إذا كان هذا صحيحًا ، فلن يتم استخدام سجل الدردشة لتوفير سياق لنموذج GPT. | خطأ شنيع |
command_prompt | موجه الأوامر في الوضع التفاعلي. يجب أن تكون واحدة مقبلة. | "[٪ dateTime] [Q ٪ Counter]" |
output_prompt | موجه الإخراج في الوضع التفاعلي. يجب أن تكون واحدة مقبلة. | '' ' |
auto_create_new_thread | إذا تم تعيينه على true ، فسيتم إنشاء مؤشر ترابط جديد مع معرف فريد (على سبيل المثال ، int_a1b2 ) لكل جلسة تفاعلية. إذا كان false ، فسيستخدم CLI مؤشر الترابط المحدد بواسطة معلمة مؤشر thread . | false |
track_token_usage | إذا تم ضبطه على TRUE ، يعرض إجمالي استخدام الرمز المميز بعد كل استعلام في وضع QUERY ، مما يساعدك على مراقبة استخدام API. | false |
debug | إذا تم ضبطه على TRUE ، فإن طباعة بيانات RAW وبيانات الاستجابة أثناء مكالمات API ، مفيدة لتصحيح الأخطاء. | false |
skip_tls_verify | إذا تم ضبطها على TRUE ، فإن Skips TLS Certificate التحقق ، مما يسمح لطلبات HTTPS بعدم الأمان. | false |
multiline | إذا تم ضبطه على TRUE ، فإنه يتيح وضع الإدخال متعدد الأسلحة في جلسات تفاعلية. | false |
| عامل | وصف | تقصير |
|---|---|---|
api_key | مفتاح API الخاص بك. | (لا شيء للأمن) |
model | نموذج GPT يستخدمه التطبيق. | 'gpt-3.5-turbo' |
max_tokens | الحد الأقصى لعدد الرموز التي يمكن استخدامها في مكالمة API واحدة. | 4096 |
context_window | الحد من الذاكرة لمقدار المحادثة التي يمكن تذكرها في وقت واحد. | 8192 |
role | دور النظام | "أنت مساعد مفيد." |
temperature | ما هي درجة حرارة أخذ العينات للاستخدام ، بين 0 و 2. القيم الأعلى تجعل الإخراج أكثر عشوائيًا ؛ القيم المنخفضة تجعلها أكثر تركيزًا وحتمية. | 1.0 |
frequency_penalty | رقم بين -2.0 و 2.0. تعاقب القيم الإيجابية الرموز الجديدة بناءً على ترددها الحالي في النص حتى الآن. | 0.0 |
top_p | بديل لأخذ عينات من درجة الحرارة ، تسمى أخذ عينات النواة ، حيث ينظر النموذج في نتائج الرموز التي يتمتع بها كتلة احتمال TOP_P. | 1.0 |
presence_penalty | رقم بين -2.0 و 2.0. تعاقب القيم الإيجابية الرموز الجديدة بناءً على ما إذا كانت تظهر في النص حتى الآن. | 0.0 |
seed | يضع البذور لأخذ العينات الحتمية (بيتا). تهدف الطلبات المتكررة مع نفس البذور والمعلمات إلى إرجاع نفس النتيجة. | 0 |
url | عنوان URL الأساسي ل API Openai. | 'https://api.openai.com' |
completions_path | نقطة نهاية API للإكمال. | '/v1/الدردشة/الانتهاء |
models_path | نقطة نهاية API للوصول إلى معلومات النموذج. | '/v1/models' |
auth_header | الرأس المستخدم للترخيص في طلبات API. | "إذن" |
auth_token_prefix | البادئة المراد إضافتها قبل الرمز المميز في auth_header . | "حامل" |
بشكل افتراضي ، يقوم ChatGPT CLI بتخزين ملفات التكوين وملفات السجل في دليل ~/.chatgpt-cli . ومع ذلك ، يمكنك بسهولة تجاوز هذه المواقع عن طريق ضبط متغيرات البيئة ، مما يتيح لك تخزين التكوين والتاريخ في الدلائل المخصصة.
| متغير البيئة | وصف | الموقع الافتراضي |
|---|---|---|
OPENAI_CONFIG_HOME | يتجاوز مسار دليل التكوين الافتراضي. | ~/.chatgpt-cli |
OPENAI_DATA_HOME | يتجاوز مسار دليل البيانات الافتراضي. | ~/.chatgpt-cli/history |
لتغيير التكوين الافتراضي أو أدلة البيانات ، قم بتعيين متغيرات البيئة المناسبة:
export OPENAI_CONFIG_HOME="/custom/config/path"
export OPENAI_DATA_HOME="/custom/data/path"
إذا لم يتم تعيين متغيرات البيئة هذه ، فإن التطبيق افتراضي إلى ~/.Chatgpt-Cli لملفات التكوين و ~/.
%date : التاريخ الحالي في التنسيق YYYY-MM-DD .%time : الوقت الحالي في التنسيق HH:MM:SS .%datetime : التاريخ والوقت الحاليين في التنسيق YYYY-MM-DD HH:MM:SS .%counter : إجمالي عدد الاستفسارات في الجلسة الحالية.%usage : الاستخدام في إجمالي الرموز المستخدمة (يعمل فقط في وضع الاستعلام). يمكن تجاوز الإعدادات الافتراضية من خلال توفير القيم الخاصة بك في ملف تكوين المستخدم. يعكس بنية هذا الملف التكوين الافتراضي. على سبيل المثال ، لتجاوز model ومعلمات max_tokens ، قد يبدو ملفك هكذا:
model : gpt-3.5-turbo-16k
max_tokens : 4096 هذا يغير model إلى gpt-3.5-turbo-16k ويعدل max_tokens إلى 4096 . يمكن تعديل جميع الخيارات الأخرى ، مثل url و completions_path و models_path ، بالمثل. إذا لم يكن من الممكن الوصول إلى ملف تكوين المستخدم أو مفقود ، فسيتم اللجوء إلى التكوين الافتراضي.
هناك طريقة أخرى لضبط القيم دون تحرير ملف التكوين يدويًا هي استخدام متغيرات البيئة. سمة name تشكل البادئة لهذه المتغيرات. على سبيل المثال ، يمكن تعديل model باستخدام متغير بيئة OPENAI_MODEL . وبالمثل ، لتعطيل التاريخ أثناء تنفيذ الأمر ، استخدم:
OPENAI_OMIT_HISTORY=true chatgpt what is the capital of Denmark ?هذا النهج مفيد بشكل خاص للتغييرات المؤقتة أو لاختبار التكوينات المختلفة.
علاوة على ذلك ، يمكنك استخدام علامة --config أو -c لعرض التكوين الحالي. تتيح هذه الميزة المفيدة للمستخدمين التحقق بسرعة من إعداداتهم الحالية دون الحاجة إلى فحص ملفات التكوين يدويًا.
chatgpt --configسيعرض تنفيذ هذا الأمر التكوين النشط ، بما في ذلك أي تجاوزات تم تأسيسها بواسطة متغيرات البيئة أو ملف تكوين المستخدم.
لتسهيل التعديلات المريحة ، يوفر ChatGPT CLI أعلامًا لتعديل model thread context-window و max_tokens بسرعة في config.yaml . هذه الأعلام هي --set-model ، --set-thread ، --set-context-window و-- --set-max-tokens .
على سبيل المثال ، لتحديث النموذج ، استخدم الأمر التالي:
chatgpt --set-model gpt-3.5-turbo-16kتتيح هذه الميزة تغييرات سريعة على معلمات التكوين الرئيسية ، وتحسين تجربتك مع ChatGPT CLI.
بالنسبة إلى Azure ، استخدم تكوينًا مشابهًا لـ:
name : azure
api_key : <your_key>
model : <not relevant, read from the completions path>
max_tokens : 4096
context_window : 8192
role : You are a helpful assistant.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : default
omit_history : false
url : https://<your_resource>.openai.azure.com
completions_path : /openai/deployments/<your_deployment>/chat/completions?api-version=<your_api>
models_path : /v1/models
auth_header : api-key
auth_token_prefix : " "
command_prompt : ' [%datetime] [Q%counter] '
auto_create_new_thread : false
track_token_usage : false
debug : falseيمكنك تعيين مفتاح API إما في ملف config.yaml كما هو موضح أعلاه أو تصديره كمتغير بيئة:
export AZURE_API_KEY= < your_key >من أجل الحيرة ، استخدم تكوينًا مشابهًا لـ:
name : perplexity
api_key : " "
model : llama-3.1-sonar-small-128k-online
max_tokens : 4096
context_window : 8192
role : Be precise and concise.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : test
omit_history : false
url : https://api.perplexity.ai
completions_path : /chat/completions
models_path : /models
auth_header : Authorization
auth_token_prefix : ' Bearer '
command_prompt : ' [%datetime] [Q%counter] [%usage] '
auto_create_new_thread : true
track_token_usage : true
debug : falseيمكنك تعيين مفتاح API إما في ملف config.yaml كما هو موضح أعلاه أو تصديره كمتغير بيئة:
export PERPLEXITY_API_KEY= < your_key > يمكنك تعيين مفتاح API إما في ملف config.yaml كما هو موضح أعلاه أو تصديره كمتغير بيئة:
export AZURE_API_KEY= < your_key >عزز تجربة CLI الخاصة بك مع ميزة الإكمال التلقائي الجديد لأعلام الأوامر!
يتم دعم الإكمال التلقائي حاليًا للقذائف التالية: Bash و Zsh و Fish و PowerShell. لتفعيل إكمال العلم في جلسة shell الحالية ، قم بتنفيذ الأمر المناسب بناءً على قذيتك:
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression لمزيد من الراحة ، يمكنك استمرار الإكمال التلقائي في جميع جلسات الصدفة الجديدة عن طريق إضافة أمر المصادر المناسب إلى ملف بدء تشغيل Shell الخاص بك. فيما يلي الملفات المستخدمة عادة لكل قذيفة:
.bashrc أو .bash_profile.zshrcconfig.fish على سبيل المثال ، بالنسبة لـ Bash ، يمكنك إضافة السطر التالي إلى ملف .bashrc :
. <( chatgpt --set-completions bash )هذا يضمن تمكين الإكمال التلقائي لعلم الأمر تلقائيًا في كل مرة تقوم فيها بفتح نافذة طرفية جديدة.
يمكنك تقديم تخفيض في الوقت الفعلي باستخدام البرنامج النصي mdrender.sh ، الموجود هنا. ستحتاج أولاً إلى تثبيت Glow.
مثال:
chatgpt write a hello world program in Java | ./scripts/mdrender.sh لبدء التطوير ، قم بتعيين متغير بيئة OPENAI_API_KEY على مفتاح ChatGpt السري.
يقوم Makefile بتبسيط مهام التطوير من خلال توفير العديد من الأهداف لاختبار وبناء ونشر.
make all-testsmake binariesmake shipitmake updatedepsلمزيد من الأوامر المتاحة ، استخدم:
make help .scriptsinstall.ps1بعد بناء ناجح ، اختبر التطبيق مع الأمر التالي:
./bin/chatgpt what type of dog is a Jack Russel ?كما ذكرنا سابقًا ، يدعم ChatGpt CLI تتبع تاريخ المحادثة عبر مكالمات CLI. تنشئ هذه الميزة تجربة سلسة ومحادثة مع نموذج GPT ، حيث يتم استخدام التاريخ كسياق في التفاعلات اللاحقة.
لتمكين هذه الميزة ، تحتاج إلى إنشاء دليل ~/.chatgpt-cli باستخدام الأمر:
mkdir -p ~ /.chatgpt-cliإذا واجهت أي مشكلات أو لديك اقتراحات للتحسينات ، فيرجى تقديم مشكلة على Github. نحن نقدر ملاحظاتك ومساهماتك للمساعدة في تحسين هذا المشروع.
إذا كنت ترغب في إلغاء تثبيت تطبيق ChatGPT CLI لأي سبب من الأسباب ، يمكنك القيام بذلك عن طريق اتباع هذه الخطوات:
إذا قمت بتثبيت CLI باستخدام Homebrew ، يمكنك القيام بذلك:
brew uninstall chatgpt-cliوإزالة الصنبور:
brew untap kardolus/chatgpt-cliإذا قمت بتثبيت الثنائي مباشرة ، اتبع هذه الخطوات:
قم بإزالة الثنائي:
sudo rm /usr/local/bin/chatgpt اختياريا ، إذا كنت ترغب في إزالة دليل تتبع التاريخ ، يمكنك أيضًا حذف دليل ~/.chatgpt-cli :
rm -rf ~ /.chatgpt-cli انتقل إلى موقع chatgpt Binary في نظامك ، والذي يجب أن يكون في طريقك.
حذف chatgpt ثنائي.
اختياريا ، إذا كنت ترغب في إزالة تتبع السجل ، انتقل إلى دليل ~/.chatgpt-cli (حيث يشير ~ إلى الدليل الرئيسي للمستخدم) وحذفه.
يرجى ملاحظة أن دليل تتبع التاريخ ~/.chatgpt-cli يحتوي فقط على سجل محادثة وليس بيانات شخصية. إذا كان لديك أي مخاوف بشأن هذا ، فلا تتردد في حذف هذا الدليل أثناء إلغاء التثبيت.
شكرا لك على استخدام chatgpt cli!