هذا الدليل لمالك Mac لديه إذن بتثبيت التطبيقات واستخدام ملف تجريبي يملكه ولا يتضمن معلومات حساسة. ستنزّل نموذجًا واحدًا في Ollama، وتربط دردشة Open WebUI الدائمة في المتصفح وإضافة Continue في VS Code بخدمة التشغيل نفسها، ثم تراجع اقتراح تعديل فعلي قبل تقرير الاحتفاظ به. تتبع الأوامر والفحوص أدناه وثائق المطورين الحالية؛ لم تشغّل BIG CHANGE هذه المنظومة أو تقس سرعتها أو تكلفتها أو حركة شبكتها.
التغيير الكبير
- ما الذي يتغير: يمكن لنموذج Ollama منزّل أن يخدم دردشة المتصفح ومساعد التحرير في VS Code عبر API المحلي. يظل فحص اتصال كل عميل مطلوبًا على حدة.
- لماذا يهم: يمكن لتثبيت نموذج واحد دعم محادثة وتغيير برمجي مُراجع على Mac نفسه، مع بقاء القرار النهائي بيد مالك الملف.
- ما ينبغي مراقبته: اسم النموذج في قائمة لا يثبت أي خادم أجاب. افحص اتصال المزود والردود الفعلية، خصوصًا عند إعداد مزودين آخرين أو ميزات سحابية.
1. افحص Mac واختر نموذجًا
تحتاج إلى macOS 14 أو أحدث لتشغيل Ollama، Docker Desktop لأجهزة Mac، وVS Code مع إضافة Continue، وPython 3 لفحوص JSON والملفات الصغيرة أدناه. يدعم Ollama التنفيذ عبر CPU وGPU من سلسلة Apple M؛ وتسرد وثائقه CPU فقط لأجهزة Intel Mac. ثبّت Ollama من صفحة تنزيل Mac، وانقل التطبيق إلى Applications وافتحه واسمح بربط سطر الأوامر إذا طُلب ذلك. ثبّت Docker Desktop وشغّله، ثم Continue من عرض Extensions في VS Code. ثبّت Python 3 من Python.org إذا كان python3 غير متاح. لا يضيف VS Code على Mac تلقائيًا code إلى مسار بحث الصدفة. اتبع تعليمات الإعداد على Mac: افتح Command Palette باستخدام Cmd+Shift+P، وشغّل Shell Command: Install 'code' command in PATH، ثم أعد تشغيل Terminal. تحقق من توفر الأدوات المطلوبة:
sw_vers -productVersion
ollama --version
docker version
code --version
python3 --versionسجّل الإصدارات المثبتة. توقف إذا لم يعمل أحد التطبيقين أو لم تتوفر مساحة للنموذج وبيانات Docker. تعرض صفحة نموذج qwen2.5-coder:7b حاليًا تنزيلًا بحجم 4.7 GB وترخيص Apache 2.0. حجم التنزيل ليس كامل الذاكرة المطلوبة للتشغيل. هذا مثال محدد، لا توصية لكل جهاز Mac. اختر عند الحاجة وسمًا محليًا أصغر موثقًا، واستبدل qwen2.5-coder:7b بهذا الوسم الدقيق في كل أمر واختيار متصفح وحقل YAML أدناه. تحقق أيضًا من ترخيص النموذج البديل.
نزّل النموذج وتحقق من ظهور الوسم الدقيق في Ollama:
ollama pull qwen2.5-coder:7b
ollama list
curl --fail-with-body --silent --show-error http://127.0.0.1:11434/api/tags | python3 -c 'import json,sys; d=json.load(sys.stdin); print([m["name"] for m in d["models"]])'يجب أن تتضمن القائمة qwen2.5-coder:7b. ثم اطلب من API الدردشة المحلي ردًا قصيرًا. يفشل الأمر عند خطأ HTTP ويتحقق من النموذج المُعاد ومحتوى المساعد غير الفارغ؛ لا تهم صياغة الرد المحددة. يحد خيار تشغيل Ollama num_predict هذا الفحص عند 64 توكن مولّدًا. قد تثبت الجملة المبتورة وصول محتوى؛ أما الرد الفارغ فيفشل الفحص ويتطلب التحقيق.
set -o pipefail
curl --fail-with-body --silent --show-error http://127.0.0.1:11434/api/chat \
-H 'Content-Type: application/json' \
-d '{"model":"qwen2.5-coder:7b","messages":[{"role":"user","content":"Reply with one short sentence about checking a local connection."}],"stream":false,"options":{"num_predict":64}}' \
| python3 -c 'import json,sys; d=json.load(sys.stdin); assert d.get("model")=="qwen2.5-coder:7b",d.get("model"); assert d.get("message",{}).get("content","").strip(); print("Model:",d["model"],"Reply:",d["message"]["content"])'إذا غاب الوسم فأكمل التنزيل وأعد فحص القائمة. إذا تعذر الوصول إلى API فشغّل Ollama وافحص سجل الخادم على Mac في ~/.ollama/logs/server.log. يشكل الوسم المنزّل والرد المحلي الناجح أول الفحوص الثلاثة.
2. شغّل Open WebUI مع بيانات محلية دائمة
هذا دليل البدء السريع لـOpen WebUI يخزن الحسابات والإعدادات والمحادثات في /app/backend/data ويتطلب قيمة ثابتة لـ WEBUI_SECRET_KEY. نستخدم الإصدار المستقر v0.12.3 بدل الوسم المتجدد main . يختار Docker الصورة الملائمة لبنية Mac؛ سجّل هوية الصورة بعد تنزيلها.
افحص أولًا الأسماء المستخدمة هنا. إذا كان أحدها موجودًا فافحص الحاوية أو وحدة التخزين وحدد هل تنتمي إلى إعداد سابق. لا تستبدل حاوية قائمة أو تحذف وحدتها لمجرد تشغيل الأمر.
docker ps -a --filter name=^/bc-open-webui$
docker volume inspect bc-open-webui-dataمن الطبيعي في الإعداد الأول أن يفيد الأمر الثاني بأن وحدة التخزين غير موجودة. تحفظ الخطوات التالية مفتاحًا مولّدًا في ملف خاص بحساب Mac. احتفظ به آمنًا لإعادة إنشاء الحاوية. لا تودع محتواه في مستودع ولا تلصقه أو تشاركه. إذا كان لديك مفتاح لهذه النسخة فواصل استخدامه.
mkdir -p "$HOME/.config/bc-open-webui"
chmod 700 "$HOME/.config/bc-open-webui"
umask 077
if [ ! -s "$HOME/.config/bc-open-webui/webui-secret" ]; then
openssl rand -hex 32 > "$HOME/.config/bc-open-webui/webui-secret"
fi
chmod 600 "$HOME/.config/bc-open-webui/webui-secret"
export WEBUI_SECRET_KEY="$(cat "$HOME/.config/bc-open-webui/webui-secret")"
docker pull ghcr.io/open-webui/open-webui:v0.12.3
docker image inspect ghcr.io/open-webui/open-webui:v0.12.3 --format '{{json .RepoDigests}}'
docker volume create bc-open-webui-data
docker run -d --name bc-open-webui --restart unless-stopped \
-p 127.0.0.1:3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v bc-open-webui-data:/app/backend/data \
-e WEBUI_SECRET_KEY \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
ghcr.io/open-webui/open-webui:v0.12.3
unset WEBUI_SECRET_KEY
docker ps --filter name=^/bc-open-webui$ --format 'table {{.Names}}\t{{.Image}}\t{{.Ports}}'يجب أن يعرض ناتج المنافذ 127.0.0.1:3000->8080/tcp. تحتفظ وحدة التخزين المسماة بالمحادثات والإعدادات عند إعادة إنشاء الحاوية. يحمي المفتاح استمرارية الجلسات وقيم التطبيق المشفرة، فاحتفظ بنسخته الخاصة. يمكن لمن يملك وصول Docker رؤية قيم البيئة في إعداد الحاوية؛ هذه منظومة محلية لمستخدم واحد وليست خزنة أسرار لمضيف مشترك.
افتح http://127.0.0.1:3000 في المتصفح. أنشئ حساب المسؤول عند التشغيل الأول. افتح من قائمة الصورة الشخصية Settings → Admin → Connections. افحص Manage Ollama API Connections واترك اتصالًا واحدًا مفعّلًا إلى http://host.docker.internal:11434؛ أزل اتصالات المزودين غير المقصودة لهذا الفحص أو عطّلها. يستطيع Open WebUI توزيع الطلبات بين اتصالات Ollama متعددة، لذلك لا يكفي تطابق الاسم في القائمة. اختر qwen2.5-coder:7b في محادثة جديدة واسأل: «كيف أتحقق من أن نموذجًا محليًا أجاب؟» تأكد من ظهور رد غير فارغ، ثم أعد فتح المحادثة المحفوظة. سجّل النموذج المختار وURL الاتصال. هذا فحص المتصفح؛ لا توجد إجابة محددة مطلوبة.
إذا لم تُحمّل الصفحة فافحص docker logs bc-open-webui وربط المنفذ. إذا فرغت قائمة النماذج فتحقق من أن Ollama ما زال يجيب على /api/tags، وافحص اتصال Open WebUI المحفوظ، واختبر وصول إصدار Docker Desktop هذا إلى خدمة مضيف Mac. host.docker.internal هو عنوان المضيف في Docker Desktop، بينما يشير localhost داخل الحاوية إلى الحاوية نفسها. يرتبط Ollama افتراضيًا بـ127.0.0.1؛ وقد يختلف التوجيه بين المضيف والحاوية حسب الإعداد. لا تعتبر الاتصال الفاشل نجاحًا ولا تُتح Ollama على 0.0.0.0 بوصف ذلك إصلاحًا اعتياديًا. عالج المسار الشبكي المحلي وفق سياسة الأمان قبل المتابعة. احتفظ بوحدة التخزين والمحادثات الحالية أثناء التشخيص.
3. اربط Continue بوسم Ollama نفسه
يعمل Continue في VS Code على Mac، لذا عنوان Ollama API هو http://localhost:11434. افتح Continue، واستخدم قائمة الإعداد أعلى يمين حقل الدردشة، واضغط الترس بجانب Local Config. يفتح ذلك ~/.continue/config.yaml؛ ويستخدم مرجع Continue الحالي YAML. احتفظ بنسخة من الإعداد الحالي وبالنماذج والقواعد التي تحتاجها. هذا المحتوى الأدنى الكامل لإعداد محلي جديد:
name: Local Ollama check
version: 1.0.0
schema: v1
models:
- name: Qwen2.5 Coder 7B local
provider: ollama
model: qwen2.5-coder:7b
apiBase: http://localhost:11434
roles:
- chat
- editفي الملف القائم أضف هذا النموذج تحت قائمة models: واحتفظ بالإعداد الحالي ذي المستوى الأعلى. احفظ واختر Local Config والنموذج المحلي المسمى، ثم اطرح سؤالًا قصيرًا في Continue Chat. تأكد من عودة محتوى. يفحص ذلك اتصال الإضافة، لكن رد الدردشة ليس تعديل ملف. يتيح دورا chat و edit الإجراءين المستخدمين هنا؛ لا تعد هذه الوصفة بميزات Agent أو الإكمال التلقائي.
أنشئ دليلًا وملف اختبار تملكهما بسلوك بسيط يمكن فحصه مستقلًا. يحفظ الأمر الملف أو النسخة الأصلية الموجودة؛ افحصها أو اختر دليلًا جديدًا إذا استُخدم أي اسم سابقًا:
mkdir -p "$HOME/continue-local-check"
if [ -e "$HOME/continue-local-check/greeting.py" ] || [ -e "$HOME/continue-local-check/greeting.original.py" ]; then
printf '%s\n' 'Scratch file already exists; inspect it or choose a new directory.'
else
cat > "$HOME/continue-local-check/greeting.py" <<'PY'
def greeting(name):
return "Hello, " + name
if __name__ == "__main__":
assert greeting("Ada") == "Hello, Ada"
print(greeting("Ada"))
PY
if python3 "$HOME/continue-local-check/greeting.py"; then
cp "$HOME/continue-local-check/greeting.py" "$HOME/continue-local-check/greeting.original.py"
else
printf '%s\n' 'Original check failed; inspect the file before requesting an edit.'
fi
fiيجب أن يطبع الاختبار الأصلي Hello, Ada بعد نجاح التأكيد. افتح greeting.py في VS Code، وحدد الدالة فقط واضغط Cmd+I لاستخدام Continue Edit. اطلب إضافة docstring قصيرة دون تغيير النص المُعاد. قارن الفروق المضمنة المعروضة تدريجيًا مع greeting.original.py؛ قد يجلب Edit للكود المحدد الملف كاملًا إلى السياق، فاستخدم فقط ملفًا غير حساس تملكه. قد يغيّر النموذج أكثر من المطلوب. افحص كل سطر تغير واقبل اقتراحًا مناسبًا باستخدام Cmd+Opt+Y، أو ارفضه باستخدام Cmd+Opt+N. يتيح Continue قبول الكل أو رفض الكل، لكن الفروق الصغيرة أسهل للفحص تغييرًا تغييرًا.
بعد القبول احفظ الملف وشغّل:
diff -u "$HOME/continue-local-check/greeting.original.py" "$HOME/continue-local-check/greeting.py" || true
python3 "$HOME/continue-local-check/greeting.py"تأكد أن الفروق تتضمن التغيير المقصود فقط وأن التأكيد الأصلي ما زال ينجح. إذا رفضت الاقتراح فتحقق من تطابق الملف مع الأصل وسجّل الرفض؛ لا تدّع اكتمال التعديل. يبين الملف والفروق واختبار Python المستقل النتيجة بموثوقية أكبر من وصف النموذج لعمله.
4. أبقِ الحدود واضحة
لكل من Ollama وOpen WebUI وContinue إعدادات مستقلة. لتعطيل سحابة Ollama وحدها أضف الحقل التالي إلى ~/.ollama/server.jsonالخاص بالحساب الذي يشغّل خادم Ollama، مع إبقاء حقول JSON الموجودة. هذا المحتوى الكامل لملف جديد:
{
"disable_ollama_cloud": true
}أعد تشغيل تطبيق Ollama وافحص سجل الخادم:
grep 'Ollama cloud disabled: true' "$HOME/.ollama/logs/server.log"هذا Ollama FAQ يوثق سطر السجل. إن غاب فراجع حساب Mac المشغّل وJSON وإعادة التشغيل قبل الجزم بتعطيل السحابة. لا يفحص هذا الإعداد مزودي Open WebUI الآخرين أو ميزاته الاختيارية المتصلة بالإنترنت أو حركة Continue. يوصي دليل العمل دون اتصال لـContinue بتعطيل Allow Anonymous Telemetryواستخدام نماذج محلية وإعادة تشغيل VS Code. راجع اتصالات كل تطبيق قبل استخدام معلومات حساسة. عنوان loopback وحده ليس تدقيقًا للشبكة.
راجع ترخيص Docker Desktop لاستخدامك الفعلي. هو مجاني للاستخدام الشخصي والتعليمي والمفتوح المصدر غير التجاري وللشركات الصغيرة التي لديها أقل من 250 موظفًا وإيراد سنوي أقل من 10 ملايين دولار أمريكي. يحتاج الاستخدام المهني في المؤسسات الأكبر والجهات الحكومية اشتراكًا مدفوعًا. ترخيص النموذج Apache 2.0 منفصل. تظل مساحة القرص والذاكرة وعرض نطاق التنزيل والكهرباء مطلوبة؛ لم تُقَس تكاليف أو نتائج أداء لهذا الدليل.
لدليل أضيق يقتصر على طرفية Ollama وAPI، راجع تشغيل نموذج Ollama محلي والتحقق من API الدردشة. ويشرح تنفيذ تغيير واحد مفحوص في Claude Code بنموذج Ollama محلي عميل برمجة آخر.
المصادر والقراءات الإضافية
- متطلبات macOS لـOllama، API الدردشة، API قائمة النماذج و FAQ: حدود التثبيت وحقول API القابلة للملاحظة وعنوان الاستماع الافتراضي وإعداد السحابة الخاص بـOllama. روجعت في 21 أكتوبر 2026.
- مواصفات Ollama API: يحد حقل التشغيل
options.num_predictفحص الدردشة المحلي القصير. قد تنتهي الإجابة المحدودة وسط جملة. روجعت في 21 أكتوبر 2026. - بطاقة نموذج Qwen2.5-Coder 7B: وسم المثال والتنزيل المذكور وترخيص النموذج. تحقق من تفاصيل الوسم الحالية وموارد Mac قبل التنزيل. روجعت في 21 أكتوبر 2026.
- بدء Open WebUI السريع، دليل اتصال Ollama و إصدار v0.12.3: تخزين الحاوية ومفتاحها وإعدادات المزود وهوية الإصدار المستقر. توثق المسار ولا تثبت اتصال هذا Mac تحديدًا بنجاح. روجعت في 21 أكتوبر 2026.
- إعداد Continue، مرجع YAML، بدء Edit السريع و دليل دون اتصال: مسار الملف ومفاتيحه الحالية وضوابط التعديل وإعداد القياس عن بُعد. روجعت في 21 أكتوبر 2026.
- شبكات Docker Desktop، تثبيت Mac و الترخيص: عنوان المضيف والتثبيت وحدود الاستخدام التجاري. تحقق من شروط مؤسستك الحالية. روجعت في 21 أكتوبر 2026.
- إعداد VS Code على Mac و تنزيلات Python 3: تثبيت أمر الصدفة الاختياري والمفسر المستخدم في الفحوص. روجعت في 21 أكتوبر 2026.



