اولویت با OpenAI (GPT‑5 متن و Vision)؛ اگر محدودیت/خطا بود → Workers AI → Hugging Face.
- ورود به کلودفلر:
wrangler login - منابع بساز:
wrangler d1 create saeed_db wrangler kv namespace create SESSIONS
- سکرتها را ست کن:
wrangler secret put TELEGRAM_BOT_TOKEN wrangler secret put TELEGRAM_BOT_USERNAME wrangler secret put OPENAI_API_KEY # برای GPT-5/vision wrangler secret put HF_API_TOKEN # اختیاری wrangler secret put WEBAPP_URL # مثلا https://<subdomain>.workers.dev/webapp
- مهاجرت دیتابیس:
npm run migrate
- دیپلوی:
npm run deploy
- وبهوک تلگرام:
npm run webhook -- --url=https://<your-worker-subdomain>.workers.dev/webhook
- Cloudflare Worker (Hono): وبهوک تلگرام + سرو وباپ.
- KV: حافظه کوتاهمدت مکالمه؛ D1: آرشیو (نمونه جدول conversations).
- Provider Fallback:
openai (gpt-5, gpt-5-vision) → workersai → huggingfaceبا ریترِزیلینس (backoff 429, micro-batching). - Vision: عکس تلگرام → دریافت مستقیم URL امن → تحلیل با OpenAI Vision.
- WebApp: ارسال داده از داخل تلگرام به ربات.
- ترتیب را با
PROVIDER_ORDERتغییر بده. پیشفرض:openai,workersai,huggingface. - مدلها:
OPENAI_TEXT_MODEL=gpt-5,OPENAI_VISION_MODEL=gpt-5-vision(قابل تغییر در wrangler.toml). - BATCH_WINDOW_MS: زمان پنجرهی کوچیک برای هموار کردن انفجار درخواستها (پیشفرض 120ms).
- اگر 429 خوردی، بکآف و فالبک فعاله. کلید OpenAI را قوی نگه دار.
- برای بینایی روی Workers/HF بعداً میتونی provider vision اضافه کنی.
- توسعه محلی:
npm run dev(با persist لوکال).
- ذخیره تاریخچه کامل در D1 (اکنون نمونه دارد؛ جریان کاملسازی بعدی است).
- Vision روی Workers/HF.
- درسهای مرحلهای با کوییز.
- R2 را بساز:
wrangler r2 bucket create saeed-bucket - سپس در
wrangler.tomlبایندینگR2وR2_PUBLIC_BASEرا تنظیم کن. - اگر
R2_PUBLIC_BASEخالی باشد، فایلها از مسیر Worker روی/r2/:keyسرو میشوند.