سلام به تو ترب توربویی عزیز 🚀🌪️
خوشحالیم که در اولین مرحلهی **TorobTurbo: the LLM Rush** یعنی **مسابقهی انتخابی** همراه ما هستی.
امیدواریم این مسابقه برات سرشار از یادگیری و تجربههای مفید باشه و از حل مسئله لذت ببری!
در این مسابقه قراره با کمک LLMها به حل چالشهای مختلف بپردازیم. این مرحله از مسابقه علاوهبر رقابت، یه فرصت عالی برای یادگیری و تمرینه. پس لازم نیست نگران باشی که حتماً متخصص LLM یا ایجنت ساختن باشی. حتی اگر تازه با این دنیا آشنا شدی، اینجا میتونی با آرامش و قدمبهقدم جلو بری و چیزهای زیادی یاد بگیری.
🔹 بیشتر سؤالات این مرحله طوری طراحی شدن که مستقیم با استفاده از LLMها قابل حل باشن.
🔹 تنها یک سؤال به اسم **«بردار کلمات»** هست که مسیرش کمی متفاوتتره و بدون LLM حل میشه!
🔹 برای هر سؤال، کافیه یک راهحل طراحی کنی و اجازه بدی LLM یا ایجنتت اون رو اجرا کنه.
در طول مسابقه یادت باشه:
+ اگر جایی سوال داشتی یا گیر کردی، بخش «[سؤال بپرسید](https://quera.org/contest/clarification/89594/)» در دسترسه.
+ حتما دکمهی «فعال کردن اطلاعیهها» رو بزن تا هیچ نکتهی مهمی رو از دست ندی!
+ و مهمتر از همه، از مسیر یادگیری لذت ببر :)
# توضیحات فنی
برای حل کردن سوالات نیاز به یک LLM Provider و همچنین توکن شارژ شده دارید. در این قسمت به توضیح نحوهی استفاده و دریافت توکن LLM میپردازیم:
### محیط توسعه
+ برای توسعه روی سیستم خودتان میتوانید از هر ارائهدهندهای که در دسترستان است استفاده کنید (البته با رعایت قوانین مسابقه)
+ همچنین از طریق لینک زیر میتوانید یک توکن یک دلاری برای توسعه و تست از طرف ترب دریافت کنید:
https://quera.org/contest/23408/create-torob-ai-account
+ داوری با استفاده از سامانه بالا صورت میگیرد و بهتر است برای شبیه بودن محیط توسعه و داوری از توکن ترب استفاده کنید.
### محیط داوری
+ توجه کنید که **در کل مسابقه فقط ۱ دلار اعتبار در محیط داوری دارید** و این اعتبار رو باید تا پایان مسابقه مدیریت کنید.
+ پس از هر ارسال، با کلیک بر روی **نمرهی خود** در ستون «وضعیت» از بخش «**همهی ارسالها**» میتونید میزان اعتبار باقیماندهی اختصاص یافته به خود را مطابق تصویر زیر مشاهده کنید.

+ دقت کنید که در کد ارسالی حتما مقدار base_url را برابر با
"https://turbo.torob.com/v1" قرار دهید و حتما از توکن داده شده در ورودی سوال استفاده کنید. استفاده از توکنهای لوکال در جوابهای ارسالی ممنوع میباشد.
#### قوانین استفاده از LLM
+ در این مسابقه حتما باید از مدل `gpt-4.1-mini` استفاده کنید.
+ میتوانید tools جدید بنویسید و از آن استفاده کنید اما استفاده از از tool های آمادهی LLM مانند web_search ،file_search و ... مجاز نیست.
+ حالت stream پیشتیبانی نمیشود.
+ در هر درخواست طول کانتکست ورودی به 20K توکن و حداکثر توکن خروجی به 1K توکن محدود شده است.
### اطلاعات سامانهی داوری
نسخهی پایتون: 3.13
کتابخانههای زیر به صورت پیش فرض روی سامانهی داوری نصب هستن:
openai
httpx
requests
pydantic (core)
### نحوهی ارسال پاسخ
برای پاسخ به سوالات شما باید یک فایل zip با محتوای زیر آپلود کنید:
```
answer.zip
├── python_requirements.txt
└── solution.py
```
فرمت فایل solution.py در هر سوال آمده است و یک نمونه هم در پایین این صفحه خواهید دید. در صورتی که در کد خود از کتابخانهی اضافهای استفاده کردید باید آن را با فرمت زیر در فایل `python_requirements.txt` قرار دهید. دقت کنید که برای کتابخانهها نسخه را نباید مشخص کنید و همیشه آخرین نسخه نصب میشود.
```txt python_requirements.txt
pandas
numpy
```
### نمونهی پاسخ با استفاده از کتابخانهی OpenAI
```python solution.py
class TestQuestion:
def __init__(self, api_key):
self.model = "gpt-4.1-mini"
self.client = OpenAI(api_key=api_key, base_url="https://turbo.torob.com/v1")
def test_request(self):
response = client.chat.completions.create(
model=self.model,
messages=[
{"role": "user", "content": "Hello"},
],
)
print(response.choices[0].message.content)
```
### نمونه پاسخ با استفاده از کتابخانهی pydantic-ai
برای استفاده از pydantic-ai باید خط زیر را در فایل `python_requirements.txt` قرار دهید:
```txt python_requirements.txt
pydantic-ai-slim[openai]
```
سپس به صورت زیر از آن استفاده کنید.
**توجه: هنگام ایجاد `OpenAIProvider` مقدار http_client را حتما به صورت دستی در آن ست کنید وگرنه کد شما در سامانهی داوری به درستی اجرا نمیشود!**
```python solution.py
class TestQuestion:
def __init__(self, api_key):
self.chat_model = OpenAIChatModel(
"gpt-4.1-mini",
provider=OpenAIProvider(
base_url="https://turbo.torob.com/v1",
api_key=api_key,
http_client=httpx.AsyncClient() # Don't forget!
),
)
self.agent = Agent(self.chat_model)
def test_request(self):
response = self.agent.run_sync("Hello")
return response.output
```
------
موفق باشی و امیدواریم تجربهای پر از یادگیری، خلاقیت و هیجان از این مرحله برای خودت بسازی. 💙
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.