استمتع بـ ChatGPT في جهازك الطرفي. 中文
A guru is a teacher or mentor who is highly respected and knowledgeable in
their field. The term is often associated with spiritual or religious
leaders, but can also refer to experts in other areas such as business,
technology, or health. -- generated by ChatGPT
--oneshot
للدخول إلى وضع oneshot الذي يسقط رسائل السياق لكل طلب. ابدأ guru
بـ --last
لمواصلة المحادثة الأخيرة. go install github.com/shafreeck/guru@latest
يستخدم Guru واجهة برمجة التطبيقات المفتوحة لـ OpenAI للتواصل مع ChatGPT. احصل على مفتاح API المقابل عن طريق تسجيل الدخول إلى حسابك كمطور.
https://platform.openai.com/account/api-keys
قم بتكوين guru لأول مرة باستخدام، وقم بتشغيل guru config
وأدخل مفتاح OpenAI API الخاص بك الذي تم الحصول عليه من الخطوة أعلاه. وكيل SOCKS5 اختياري للاستخدام. يمكنك تجاوز هذه الخطوة واستخدام المعلمات مباشرة للأمر، ولكن يوصى بحفظ مفتاحك السري في ملف التكوين.
> guru [text]
أدخل وضع المحادثة عن طريق تنفيذ guru
مباشرة. guru
هو في الواقع اسم مستعار لأمر guru chat
. قم بتشغيل المعلم باستخدام علامة --oneshot
للدخول إلى وضع oneshot
، في هذا الوضع، يقوم المعلم بإسقاط رسائل السياق لكل طلب. يتم دائمًا تسجيل الجلسة تلقائيًا. (الافتراضي في الدليل ~/.guru/session/
)
> guru cheat
guru cheat
هو اسم مستعار لأمر guru chat -p Cheatsheet
، والذي يُستخدم لتبسيط إدخال المستخدم.
> git diff | guru commit
guru commit
هو اسم مستعار لـ guru chat -p Committer
.
استخدم المعلمة --oneshot
للدخول إلى وضع المحادثة ذات اللقطة الواحدة. في هذا الوضع، سيتم تجاهل رسائل السياق تلقائيًا. ومع ذلك، إذا قام --prompt, -p
بتحديد موجه، فسيتم تثبيت محتوى الموجه وإرساله مع كل طلب.
استخدم الأمر
: message pin
لتثبيت أي رسالة
guru --oneshot
echo list files in this dir in detail | guru cheat | sh
لا يقوم ChatGPT بتخزين سياق المحادثة على جانب الخادم. يتم تحقيق قدرتها على الوعي بالسياق من خلال تقديم كل محتوى السياق من العميل. كما هو محدد في OpenAI API، يُطلق على كل من السؤال المقدم أو الإجابة التي تم الرد عليها اسم رسالة. يتم ترميز محتوى الرسالة إلى رموز مميزة، وهناك قيود على إجمالي الرموز المميزة لكل من الإرسال والرد، وهو 4096 على الأكثر. محادثة طويلة سوف تنفد من الرموز.
يدعم Guru التنظيف التلقائي للرسائل القديمة لتحقيق محادثة مستمرة مع نافذة متجددة. ومع ذلك، نتوقع أحيانًا تحكمًا أكثر دقة في الرسائل المرسلة إلى ChatGPT. في الوقت الحالي، يمكن استخدام الأوامر الداخلية من إدارة الرسائل لتقليص الرسائل أو حذفها أو إلحاقها يدويًا.
بالنسبة للرسائل التي لا نريد حذفها أو لا نريد تنظيفها بواسطة النافذة المتداول، يمكننا تثبيت الرسائل باستخدام الأمر : message pin
. يستخدم وضع Oneshot هذه الطريقة لتثبيت رسالة المطالبة، مما يحافظ على إرسال المطالبة لكل سؤال.
: message list
تسرد كافة الرسائل الحالية، الاسم المستعار :ls
: message delete [id...]
حذف الرسائل، حيث تكون المعلمات عبارة عن معرفات رسائل يمكنها حذف رسائل متعددة في نفس الوقت: message shrink [expr]
يقوم بتصغير الرسائل، حيث expr
عبارة عن تعبير نطاق، وهو نفس التعبير الموجود في Golang Slice: begin:end
. يمكن حذف البداية أو النهاية، على سبيل المثال 5:
مما يعني الاحتفاظ بجميع الرسائل ذات المعرف الأكبر من أو يساوي 5.message show [id]
يعرض رسالة معينة ويعرضها باستخدام Markdown. الافتراضي هو عرض الرسالة الأخيرة.message append
لإلحاق رسالة، وهو متاح أيضًا بالاختصار :append
message pin [id]
يقوم بتثبيت رسالة، ولن يتم حذف الرسالة المثبتة تلقائيًا بواسطة آلية التقليص التلقائي للرسالة ولا يمكن حذفها بواسطة أمر : message delete
:.message unpin [id]
لإزالة تثبيت الرسالة في كل مرة يتم فيها إعدام guru
، يتم إنشاء جلسة تلقائيًا. يتم حفظ سجل الجلسة في الدليل ~/.guru/session/
بشكل افتراضي. عند البدء، يمكنك تحديد معرف الجلسة باستخدام --session-id, -s
أو استعادة الجلسة الأخيرة باستخدام --last
. إذا كان معرف الجلسة المحدد غير موجود، فسيتم إنشاؤه تلقائيًا.
توفر إدارة الجلسة مجموعة كبيرة من الميزات. يمكنك إنشاء الجلسات وتبديلها داخل نفس Guru REPL. الميزة الأكثر فائدة لإدارة الجلسة هي مكدس الجلسة الذي يتيح تداخل الجلسات الفرعية دون مقاطعة الجلسة الحالية. استمرارية الجلسة مفيدة جدًا، على سبيل المثال، في محادثة طويلة عند الحديث عن ورقة ما، أتوقع أن يتم تسجيل رسائل المحادثة ثم أرى سجل الدردشة واضحًا عند المراجعة في المستقبل. سيدعم Guru أيضًا تصدير سجلات الجلسات لاحقًا.
guru > :session
Available commands:
:session new create a new session
:session remove delete a session
:session shrink shrink sessions
:session list list sessions
:session switch switch a session
:session history print history of current session
:session stack show the session stack
:session stack push create a new session, and stash the current
:session stack pop pop out current session
:session new
ينشئ جلسة جديدة، ويمكن أيضًا تشغيلها عبر الاسم المستعار المختصر :new
.:session remove [sid]
تزيل الجلسة.:session shrink [expr]
يعمل على تقليص الجلسة، حيث expr
عبارة عن تعبير نطاق، مشابه لأمر :message shrink
.:session list
كافة الجلسات، مع الإشارة إلى الجلسة الحالية بواسطة *
.:session switch [sid]
يتحول إلى جلسة مختلفة.:session history
سجل الجلسة.:session stack
حالة مكدس الجلسة، ويمكن أيضًا تشغيله عبر الاسم المستعار المختصر :stack
.:session stack push
ينشئ جلسة جديدة ويدفعها إلى المكدس، ويمكن أيضًا تشغيلها عبر الاسم المستعار المختصر >
.:session stack pop
ينبثق الجلسة الحالية من المكدس، ويمكن أيضًا تشغيله عبر الاسم المستعار المختصر <
. >
هو أمر خاص يعمل كاسم مستعار لـ :session stack push
. عند التنفيذ، يقوم بإنشاء جلسة جديدة ويدفعها إلى المكدس. سيقوم موجه الأوامر بإلحاق الرمز ">"، مثل guru >>
. <
هو اسم مستعار لـ :session stack pop
. عند التنفيذ، فإنه ينبثق الجلسة العليا من المكدس، وسيقوم موجه الأوامر بإزالة الرمز ">".
ملاحظة: حاليًا، سيؤثر الأمران
>
و<
فقط على موجه الأوامر. إن استخدام:session stack push/pop
مباشرة لن يكون له هذا التأثير، ولكننا نخطط لتحسين الآلية في المستقبل.
تمكنك أوامر prompt repo
من إضافة مستودعات المطالبة أو مزامنتها. حاليًا، يدعم Guru مستودعين مطالبات عالي الجودة: awesome-chatgpt-prompts
و awesome-chatgpt-prompts-zh
. يمكن للمستخدمين أيضًا إضافة مستودعاتهم المفضلة.
لاحظ أنه عند الاستخدام الأولي، ستتطلب المطالبات عن بعد بخلاف Cheatsheet
و Committer
أمر :prompt repo sync
لمزامنة ملفاتها للاستخدام. سيتم تخزين ملفات المطالبة التي تمت مزامنتها في الدليل ~/.guru/prompt/
افتراضيًا.
guru > :prompt
Available commands:
:prompt act as act as a role
:prompt list list all prompts
:prompt repo sync sync prompts with remote repos
:prompt repo add add a remote repo
:prompt repo list list remote repos
Alias commands:
:prompts alias :prompts = :prompt list
تتيح لك أوامر :prompt
استخدام المطالبات المحددة في مستودع awesome-chatgpt-prompts
الخاص بك، بالإضافة إلى إضافة ومزامنة مستودعات المطالبات الخاصة بك.
:prompt act as
دور الموجه، ويمكن أيضًا تشغيله عبر الاسم المستعار المختصر :act as
.:prompt list
جميع معلومات المطالبة التي تم تحميلها، ويمكن أيضًا تشغيلها عبر الاسم المستعار المختصر :prompts
.:prompt repo add/sync/list
تضيف المستودعات السريعة ومزامنتها وقوائمها. guru > :act as Linux Terminal
يمكنك استخدام علامة $
لتنفيذ أوامر النظام، وسيتم إرسال نتائج الأمر إلى ChatGPT في الجولة التالية من المحادثة. وهذا مفيد بشكل خاص عندما تحتاج إلى تحميل ملف.
إذا لم يتبع أي أمر علامة $
، فسيتحول Guru إلى وضع shell، وسيتغير موجه الأوامر إلى guru $
. في هذا الوضع، سيتم تنفيذ أي أمر تدخله كما هو الحال في الصدفة، وسيتم إرسال جميع المخرجات إلى ChatGPT في الجولة التالية من المحادثة.
في وضع الصدفة، سيؤدي إدخال >
إلى العودة إلى وضع المحادثة.
:info
عرض المعلمات الحية:set
إعداد المعلمات الحية dir /Users/shafreeck/.guru
filename
openai-api-key sk-************************************************
pin false
prompt
session-id chat-1680879639912-1ec4e509-af5b-4abb-9f4b-bebde2276d96
socks5 localhost:8804
stdin false
timeout 3m0s
------------------------------
chatgpt.frequency_penalty 0
chatgpt.max_tokens 0
chatgpt.model gpt-3.5-turbo
chatgpt.n 1
chatgpt.presence_penalty 0
chatgpt.stop
chatgpt.stream true
chatgpt.temperature 1
chatgpt.top_p 1
chatgpt.user
disable-auto-shrink false
executor
feedback false
non-interactive false
oneshot false
system
verbose false
:set chatgpt.temperature 0.5
المنفذ هو الميزة الأقوى والفريدة من نوعها للمعلم. عند بدء تشغيل Guru، يمكنك تحديد المنفذ باستخدام الوسيطة --executor, -e
. بعد كل جولة دردشة، سيقوم Guru بتمرير إخراج ChatGPT إلى المنفذ من خلال stdin. إذا تم تحديد --feedback
، فسيتم أيضًا إرسال مخرجات المنفذ إلى ChatGPT.
يختلف المنفذ عن أوامر النظام المذكورة أعلاه. تعمل أوامر النظام فقط على إثراء وسائل إدخال البيانات من خلال shell
. بينما يُستخدم المنفذ للتعامل مع مخرجات ChatGPT، فإنه ينفذ حلقة مغلقة كاملة من input
-> output
-> input
. وهذا يعني أنه يمكننا استخدام المنفذ أثناء المحادثة لمعالجة الرسائل.
لأسباب أمنية، يلزم تأكيد المستخدم لكل استدعاء منفذ.
إن أبسط سيناريو للاستخدام هو تنفيذ الأمر الذي تم إرجاعه بواسطة ChatGPT من خلال shell
.
> guru cheat -e sh
يمكنك استخدام الأمر التالي لإجراء محادثة ذاتية في ChatGPT:
> guru -e "guru --dir ./conversation --last" --feedback Hi
مبدأ الدردشة الذاتية هو استخدام guru
آخر كمنفذ، وتعيين --dir
guru
الثاني إلى الدليل المستقل الخاص به لتجنب الخلط مع guru
الأول، وضبط --last
لاستعادة الجلسة في كل مرة تبدأ فيها للحفاظ على سياق المحادثة.