سلام AI Software Engineer آینده دیوار.
امیدوارم کانتست بهت خوش بگذره و چیزهای جدید یاد بگیری. 😊
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سوال بپرسید» مطرح کنید. لطفا دکمه «فعال کردن اطلاعیهها» رو بزن تا در طول مسابقه از آخرین اطلاعیهها باخبر بشی.
🔰 این مسابقه در اصل فقط یک چالش و یک مسئله دارد! در تمام بخشها شما یک هدف دارید: ایجنتی بسازید که پرچمی که دنبالش میگردید، پیدا کند؛ در واقع، این یک رقابت پرچمیابی یا همان Capture the Flag بین ایجنتهای هوش مصنوعی است!
پس قرار است شما و بقیه شرکتکنندگان در این چند ساعت ایجنتهایی بسازید که با هم بر سر پیدا کردن پرچمهای بیشتر رقابت کنند.
مدل این مسابقه به این شکل است که به ازای هر سوال، شما باید یک AI Agent بنویسید که کارهایی را که در public.json
مربوط به ماموریتها است، انجام بدهد و اگر موفق شد پرچم را پیدا کند و اعلام کند. این جیسون در صورت هر سوال آمدهاست.
برای این که بدانید این ماموریتها چه چیزهایی هستند تا Agent خودتان را توسعه دهید، ما یک مجموعه سوال عمومی در قالب یک جیسون به شما میدهیم. Agent شما باید بتواند سوالات این جیسون را بخواند و با استفاده از قابلیتهای مختلفی - از جمله فانکشنهای مختلفی که ایجنت میتواند از آنها استفاده کند و … - که شما بر روی آن توسعه میدهید، بتواند پرچم را برگرداند.
Question: "download the file of from
divar-contest.darkube.app
, this file contains some number, add them and the flag is the result number."برای این سوال شما باید یک تابع دانلود و خواندن فایل و یک فانکشن جمع کردن اعداد بنویسید که ایجنت شما ابتدا با استفاده از تابع اول فایل را دانلود کند و بعد از خواندن فایل با استفاده از تابع دوم اعداد را با هم جمع کند و خروجی بدهد.
در مرحله ارسال کد و برای داوری یک جیسون دیگر وجود دارد که Agent شما آن را میخواند و با توجه به آن فلگ را باید بتواند به دست بیاورد و برگرداند.
نکتهای که وجود دارد این است که پرچمهای عمومی و پرچمهای سامانه داوری از لحاظ درجه پیچیدگی و سختی کاملا شبیه هم هستند ولی مقادیر متفاوتی دارند.
- به عنوان مثال، در نمونه سوال بالا فقط اعداد موجود در فایل متفاوت است - در نتیجه اگر Agent شما بتواند سوال موجود در جیسون عمومی را حل کند، در صورت پیادهسازی درست قاعدتا میتواند پرچم مورد استفاده در سامانه داوری را نیز کشف کند.
در حالت Development شما میتوانید به هر شکلی و از طریق هر سایتی که دسترسی دارید، فقط از مدل gpt-4.1-mini استفاده کنید. همچنین از طرف ما میتوانید از پلتفرم متیس ۱ دلار شارژ هدیه برای این مسابقه بگیرید.
متیس به شما این قابلیت را میدهد که از مدل مدل gpt-4.1-mini استفاده کنید.
برای این کار روی لینک زیر کلیک کنید و با شماره تلفنی که در کوئرا ثبتنام کردهاید، در متیس لاگین کنید:
https://quera.org/contest/22753/create-metis-account
آدرس متیس به منظور لاگین و گرفتن api-key:
و همچنین لینک داکیومنت متیس به منظور استفاده از openai:
پس از توسعه ایجنت، برای ارسال کد و امتیاز گرفتن در مسابقه، کافی است فایل ZIP را در هر سوال در سامانه کوئرا ارسال کنید. توجه کنید که شما در کل مسابقه، برای داوری ارسالهای خود در کوئرا ۱ دلار معادل حدودا ۲ میلیون توکن از فقط مدل gpt-4.1-mini دارید. مقدار اعتبار باقیمانده خود را میتوانید با کلیک بر روی نمرهای که از هر ارسال خود گرفتهاید، مشاهده کنید. با کلیک بر روی نمره خودتان کادری مشابه این باز می شود که میتوانید میزان اعتبار باقیمانده خود را مشاهده کنید
توجه کنید که این تمام اعتبار شما در این مسابقه است و سعی کنید با ایجاد Agentهایی بهینه مدیریتش کنید.
شما باید تابع capture_the_flag
در کلاس DivarContest
را پیادهسازی کنید.
تنها از self.api_token
برای ارسال درخواست استفاده کنید.
توجه کنید که سامانه داوری مسابقات با مدل gpt-4.1-mini به ایجنت شما نمرهدهی میکند. حتما از همین مدل برای ارسال کد استفاده کنید. در غیر این صورت نمره شما بعد از بررسی صفر میشود.
برنامهی شما برای هر یک از فلگها یک به یک اجرا میشود و اگر جواب برگردانده شده درست باشد، امتیاز مربوطه را دریافت خواهید کرد.
دلیل این که ماموریتهای Agent به چند سوال شکسته شدهاست این است که بتوانید مصرف توکن خود را مدیریت کنید.
توجه کنید نوع داده ورودی و خروجی هر دو رشته باشند.
ما در نمونه پارامتر temperature را ۰.۱ ست کردهایم که خروجی مدلها تصادفی نباشند. شما نیز از این پارامتر به این شکل استفاده کنید.
دقت کنید که برای استفاده از متیس، باید در self.client آدرس base_url را مطابق نمونه پایین بگذارید. به شکل کلی قالب کد پایین را حفظ کنید و Agentهای خود را حول این قالب بنویسید.
به عنوان مثال، فرض کنید سوال به این صورت باشد:
Question:
"3*5 + 2 // 3"
نمونهای از کد پیادهسازی تابع capture_the_flag
را در زیر میبینید:
برای شروع، میتوانید فایل اولیه این سوال را از این لینک دریافت کنید و آن را کامل کنید.
یک فایل به نام solution.py
که در آن تابع capture_the_flag
از کلاس DivarContest
بهدرستی پیادهسازی شده باشد. همچنین برای استفاده از کتابخانههای مختلف میتوانید همراه فایل ارسالی، فایلی به نام python_requirements.txt
در ZIP خود بگذارید که در آن نام کتابخانههای مورد نیاز و شماره نسخهی آنها به فرمت زیر در آن موجود باشد: (اگر شماره نسخه را ننویسید آخرین نسخهی آن کتابخانه نصب میشود). توجه کنید که در فایل نصبها عدد ورژن نزنید.
در نهایت یک فایل ZIP حاوی دو فایل خواسته شده را آپلود کنید.