مبتدئ يبني بوتًا بلغة Go لمقابلات العمل: الصوت و860 سؤالًا و25–35 ميغابايت من الذاكرة
كان المؤلف يتعلّم Go، لكنه اصطدم بمشكلة: يعرف المواضيع لكنه لا يستطيع شرحها شفهيًا بوضوح. فبنى بوت تيليغرام يستقبل الإجابات الصوتية، ويحوّلها إلى نص عبر Deepgram، ثم يقارنها بمعايير مرجعية بدل الاكتفاء بالمديح. تعود الأسئلة الضعيفة إلى طابور على Redis. والمنظومة خفيفة: يستهلك البوت 25–35 ميغابايت من الذاكرة ويعمل على خادم VPS بتكلفة 200 روبل.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
موقف مألوف: قرأتَ عشر مقالات عن بيئة تشغيل Go، ورأسك مزيج مشوّش من الشرائح (slices) والمجدول GMP وتحليل الهروب (escape analysis)، وفي المقابلة يتعثّر لسانك. يعمل صاحب هذا المشروع نهارًا في ورشة لصيانة السيارات، ويتعلّم تطوير الواجهات الخلفية ليلًا. وقد حلّ المشكلة بالشيفرة: كتب بوت تيليغرام يطرح أسئلة تقنية، ويستمع إلى الإجابات الصوتية، ويقيّمها دون أي مجاملة.
لماذا الصوت ولماذا ليس Whisper
فكرة المشروع أنه لا أحد يطلب مقالًا في المقابلة، بل المطلوب أن تتحدث. لذلك يقبل البوت الرسائل الصوتية تحديدًا. فشلت المحاولة الأولى مع Whisper المحلي: على خادم VPS رخيص بلا بطاقة رسومية، كانت كل رسالة صوتية ترفع استهلاك المعالج إلى 100%.
انتقل المؤلف إلى خدمة Deepgram السحابية بنموذج Nova-2. تُعالَج الرسالة الصوتية من تيليغرام بصيغة OGG/Opus في أقل من ثانية. والمصطلحات التقنية الروسية الدارجة مثل «غوروتين» و«ميوتكس» و«جنريكس» لا تتحول إلى كلام مشوّش، وهذا أمر حاسم لبوت من هذا النوع. والخلاصة العملية بسيطة: إن لم تكن لديك بطاقة رسومية والمشروع صغير، فإن استضافة التعرّف على الكلام ذاتيًا غالبًا ما تكلّف أكثر من واجهة API جاهزة، إذا حسبنا الوقت والجهد.
كيف تمنع النموذج من المجاملة
المشكلة الكبرى في مقيّمات النماذج اللغوية هي التملّق. اسأل «ما رأيك في إجابتي؟» وستتلقى على الأرجح «أحسنت، ممتاز!» حتى لو كانت الإجابة ضعيفة. بنى المؤلف قاعدة من 860 سؤالًا في 85 موضوعًا، وأضاف لكل سؤال معايير مرجعية key_points. ويُلزم الموجِّه نموذج DeepSeek (يعمل عبر واجهة Groq Cloud API) بالمرور على القائمة: التحقق من كل معيار، ووضع درجة من 1 إلى 10، وذكر ما فات المجيب، وتقديم تحليل قصير وحاد بلا مجاملات.
مثال من المشروع: يقول المرشح «تتضاعف الشريحة عند الامتلاء». لكنه لم يذكر عتبة 256 عنصرًا ولا الصيغة الجديدة المعتمدة منذ Go 1.18+. بدون قائمة المعايير كان النموذج سيقبل هذه الإجابة بسهولة. أما مع القائمة فيحدّد بدقة ما نقص.
والأسلوب عام: لا تطلب من النموذج «التقييم»، بل أعطه معيارًا بنودًا إلزامية. وينجح الأمر نفسه في الفحص الآلي لمراجعة الشيفرة وردود الدعم الفني والمهام الاختبارية.
التكرار والمقابلة التجريبية والعثرات
حفظ الأسئلة بالتتابع لا يفيد، لذا أضاف المؤلف التكرار المتباعد. لكل مستخدم يُبنى في Redis طابور للجلسة. الإجابة التي تنال 8–10 درجات ترسل السؤال إلى نهاية الطابور. وإذا كانت الدرجة أقل من 6، يعود السؤال بعد خطوتين فقط. تُسجَّل كل المحاولات في PostgreSQL ومنها تُبنى الإحصاءات. وهناك أيضًا وضع محاكاة المقابلة: تختار مستوى وظيفيًا من متدرّب إلى كبير (senior)، فتتلقى 10 أسئلة مع أسئلة توضيحية أثناء المقابلة، ثم حكمًا نهائيًا Hire أو No Hire مع تحليل للأخطاء.
وكانت العثرات نموذجية لأي بوت تيليغرام:
- ترميز HTML. إذا أعاد النموذج شيفرة بلا علامات backtick أو فقد وسم الإغلاق، يرفض تيليغرام الرسالة. فكتب المؤلف منقّحًا (sanitizer) يكتشف شيفرة Go بالكلمات المفتاحية (package وfunc و:=) ويغلّفها بنفسه في pre/code مع التهريب اللازم.
- النقرات المزدوجة. النقر السريع على زر مضمّن يولّد استدعاءين متتاليين، وكان ذلك يسبب تسابقًا (race) في Redis بجلستين متوازيتين. والحل أن تُعطَّل الأزرار عبر EditReplyMarkup قبل تنفيذ الاستعلامات الثقيلة على قاعدة البيانات.
- أمان النشر. تعمل الحاويات لا بصلاحيات root بل بمستخدم منفصل appuser. وفي docker-compose.prod.yml فُعِّل read_only: true وcap_drop: ALL، ونُقلت المجلدات النظامية إلى tmpfs.
ما الذي يستحق أخذه من هذا المشروع
المنظومة التقنية: Go 1.23 وtelebot.v3 وPostgreSQL 16 عبر pgx/v5 وRedis 7 وDocker Compose، مع بنية وفق Clean Architecture. وبحسب المؤلف، يستهلك البوت في بيئة الإنتاج 25–35 ميغابايت من الذاكرة، ويبدأ في أجزاء من الثانية، ويعمل على خادم بتكلفة 200 روبل شهريًا. وهذه حجة جيدة لصالح Go في الخدمات الخفيفة التي تتصل أساسًا بواجهات API خارجية.
وهناك قيود أيضًا. هذا مشروع شخصي لمبتدئ، والمؤلف نفسه يطلب من المطورين ذوي الخبرة مراجعة الشيفرة والبنية. ولا توجد بيانات عن مدى تطابق تقييمات النموذج مع تقييمات محاور بشري. كما لا تُقدَّم مقاييس لجودة التعرّف على الكلام ولا لجودة التحليل، ولذلك لا يمكن الحكم على «الصرامة» إلا من وصف الموجِّه.
لكن المقال مفيد كمجموعة حلول جاهزة. للصوت: استخدم التعرّف السحابي إن لم تكن لديك بطاقة رسومية. ولتقييم صادق من النموذج: أعطه قائمة معايير بدل أن تطلب رأيه. ولبوت تيليغرام: احمِه مسبقًا من النقرات المزدوجة ومن ترميز HTML المعطوب. الشيفرة المصدرية مفتوحة: github.com/powood/Tg_GO_Mentor، والبوت متاح باسم @go_SikkiMentor_bot.
- 12 نوفمبر 2026موظف في Railway يشغّل وكيل ذكاء اصطناعي على DeepSeek فيتسلل إلى البنية التحتية لمنافس
- 12 نوفمبر 2026Artificial Analysis تكشف تراجعًا في الجودة لدى 24 من أصل 103 نقاط نهاية API
- 12 نوفمبر 2026NaiveAI تخفّض الزمن الوسيط للاستجابة إلى 3.1 ثانية في اختبار Latent Space
- 12 نوفمبر 2026كيف ترصد زيارات ChatGPT في Metrica وGA4: ما يصل إلى 6,3% يختبئ ضمن الزيارات المباشرة
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول لماذا الصوت ولماذا ليس Whisper؟
فكرة المشروع أنه لا أحد يطلب مقالًا في المقابلة، بل المطلوب أن تتحدث. لذلك يقبل البوت الرسائل الصوتية تحديدًا. فشلت المحاولة الأولى مع Whisper المحلي: على خادم VPS رخيص بلا بطاقة رسومية، كانت كل رسالة صوتية ترفع استهلاك المعالج إلى 100%. انتقل المؤلف إلى خدمة Deepgram السحابية بنموذج Nova-2. تُعالَج الرسالة الصوتية من تيليغرام بصيغة OGG/Opus في أقل من ثانية. والمصطلحات التقنية الروسية الدارجة مثل «غوروتين» و«ميوتكس» و«جنريكس» لا تتحول إلى كلام مشوّش، وهذا أمر حاسم لبوت من هذا النوع.
ما أبرز التفاصيل حول كيف تمنع النموذج من المجاملة؟
المشكلة الكبرى في مقيّمات النماذج اللغوية هي التملّق. اسأل «ما رأيك في إجابتي؟» وستتلقى على الأرجح «أحسنت، ممتاز!» حتى لو كانت الإجابة ضعيفة. بنى المؤلف قاعدة من 860 سؤالًا في 85 موضوعًا، وأضاف لكل سؤال معايير مرجعية key_points. ويُلزم الموجِّه نموذج DeepSeek (يعمل عبر واجهة Groq Cloud API) بالمرور على القائمة: التحقق من كل معيار، ووضع درجة من 1 إلى 10، وذكر ما فات المجيب، وتقديم تحليل قصير وحاد بلا مجاملات. مثال من المشروع: يقول المرشح «تتضاعف الشريحة عند الامتلاء».
ما أبرز التفاصيل حول التكرار والمقابلة التجريبية والعثرات؟
حفظ الأسئلة بالتتابع لا يفيد، لذا أضاف المؤلف التكرار المتباعد. لكل مستخدم يُبنى في Redis طابور للجلسة. الإجابة التي تنال 8–10 درجات ترسل السؤال إلى نهاية الطابور. وإذا كانت الدرجة أقل من 6، يعود السؤال بعد خطوتين فقط. تُسجَّل كل المحاولات في PostgreSQL ومنها تُبنى الإحصاءات. وهناك أيضًا وضع محاكاة المقابلة: تختار مستوى وظيفيًا من متدرّب إلى كبير (senior)، فتتلقى 10 أسئلة مع أسئلة توضيحية أثناء المقابلة، ثم حكمًا نهائيًا Hire أو No Hire مع تحليل للأخطاء. وكانت العثرات نموذجية لأي بوت تيليغرام: ترميز HTML.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.