POSIX ش / داش التكامل¶
لتسهيل التفاعل مع STT (تحويل الكلام إلى نص) CLI، يمكنك إضافة وظيفة اختصار إلى ملف تعريف Shell الخاص بك. يتيح لك ذلك كتابة “سؤالك” في الوحدة الطرفية.
ملاحظة: Dash وأصداف POSIX الصارمة الأخرى (
/bin/shفي Debian/Ubuntu هي Dash افتراضيًا) لا تدعم الكلمة الأساسيةlocalفي جميع السياقات، أو استبدال العمليات، أو المصفوفات. تمت كتابة الوظيفة أدناه لتكون متوافقة تمامًا مع POSIX.
## تعليمات الإعداد
افتح ملف تعريف Shell الخاص بك باستخدام المحرر الذي تفضله:
nano ~/.profile # or, if your system uses ~/.shrc for interactive shells: nano ~/.shrc
2. الصق الكتلة التالية في نهاية الملف:
please read newest updates in zsh - verson
# --- STT Project Path Resolution ---
unalias s 2>/dev/null
s() {
if [ $# -eq 0 ]; then
echo "question <your question>"
return 1
fi
update_github_ip
TEMP_FILE=$(mktemp)
SHORT_TIMEOUT_SECONDS=2
LONG_TIMEOUT_SECONDS=70
# Path shortcuts
PY_EXEC="$SL5NET_AURA_PROJECT_ROOT/.venv/bin/python3"
CLI_SCRIPT="$SL5NET_AURA_PROJECT_ROOT/scripts/py/cli_client.py"
# --- 1. try
timeout "$SHORT_TIMEOUT_SECONDS" \
"$PY_EXEC" -u "$CLI_SCRIPT" "$@" \
--lang "de-DE" --unmasked < /dev/null > "$TEMP_FILE" 2>&1
EXIT_CODE=$?
OUTPUT=$(cat "$TEMP_FILE")
rm "$TEMP_FILE"
if echo "$OUTPUT" | grep -q "Verbindungsfehler" || ! pgrep -f "streamlit-chat.py" > /dev/null; then
echo "Service-Check: Backend oder Frontend fehlt. Starte neu..."
start_service
echo '++++++++++++++++++++++++++++++++++++++++++++++++++'
KIWIX_SCRIPT="$SL5NET_AURA_PROJECT_ROOT/config/maps/plugins/standard_actions/wikipedia_local/de-DE/kiwix-docker-start-if-not-running.sh"
if [ -f "$KIWIX_SCRIPT" ]; then
sh "$KIWIX_SCRIPT"
fi
echo '++++++++++++++++++++++++++++++++++++++++++++++++++'
echo "BITTE ERNEUT EINGEBEN: s $*"
return 1
# 2. Timeout (124) OR success (0)
elif [ "$EXIT_CODE" -eq 124 ] || [ "$EXIT_CODE" -eq 0 ]; then
if [ "$EXIT_CODE" -eq 0 ]; then
echo "$OUTPUT"
return 0
fi
echo "answer > $SHORT_TIMEOUT_SECONDS sec. set Timeout= $LONG_TIMEOUT_SECONDS s..."
TEMP_FILE_2=$(mktemp)
timeout "$LONG_TIMEOUT_SECONDS" \
"$PY_EXEC" -u "$CLI_SCRIPT" "$@" \
--lang "de-DE" --unmasked < /dev/null > "$TEMP_FILE_2" 2>&1
EXIT_CODE_2=$?
OUTPUT_2=$(cat "$TEMP_FILE_2")
rm "$TEMP_FILE_2"
echo "$OUTPUT_2"
if [ "$EXIT_CODE_2" -ne 0 ]; then
echo "WARNUNG: Timeout > $LONG_TIMEOUT_SECONDS Sec. "
fi
return 0
else
echo "ERROR"
echo "$OUTPUT"
return $EXIT_CODE
fi
}
3. أعد تحميل التكوين الخاص بك:
. ~/.profile
## POSIX / ملاحظات خاصة بالشرطة
المحليلا يُستخدم هنا لتحقيق أقصى قدر من التوافق. يتم تحديد نطاق جميع المتغيرات حسب الاصطلاح فقط؛ فهي عالمية من الناحية الفنية في POSIX sh الصارمة.يُفضل
$@على$*عند تمرير الوسائط إلى الأوامر، للحفاظ على تقسيم الكلمات بشكل صحيح مع الوسائط المقتبسة.يتم استبدال
bashبـshعند تنفيذ البرنامج النصي المساعد Kiwix للبقاء ضمن سلسلة أدوات POSIX.من الأفضل وضع ملف التكوين هذا في “~/.profile”، والذي يتم الحصول عليه من خلال صدفات تسجيل الدخول. بالنسبة للأصداف التفاعلية التي لا تتطلب تسجيل الدخول، قد يستخدم التوزيع الخاص بك
~/.shrc— تحقق من وثائق النظام لديك.## سمات
المسارات الديناميكية: البحث عن جذر المشروع تلقائيًا عبر ملف العلامة
/tmp.إعادة التشغيل التلقائي: إذا كانت الواجهة الخلفية معطلة، فإنها تحاول تشغيل “start_service” وخدمات ويكيبيديا المحلية.
المهلات الذكية: حاول الاستجابة السريعة لمدة ثانيتين أولاً، ثم ارجع إلى وضع المعالجة العميقة لمدة 70 ثانية.