# ╔══════════════════════════════════════════════════════════════════╗ # ║ FriendFinder Agent — Environment Configuration ║ # ║ Telegram Userbot + LangGraph + LLM ║ # ╚══════════════════════════════════════════════════════════════════╝ # # ⚠️ هرگز فایل .env واقعی را commit نکنید! # این فایل الگو است؛ یک کپی به نام .env بگیرید و مقادیر را پر کنید. # # نحوه استفاده: # cp .env.example .env # nano .env # یا هر editor دیگر # python -m src.main # # ┌─────────────────────────────────────────────────────────────────┐ # │ ۱. Telegram Credentials │ # │ از https://my.telegram.org/apps دریافت کنید │ # │ مصرف‌کنندگان: config/settings.py + src/config/settings.py │ # └─────────────────────────────────────────────────────────────────┘ # --- نام‌های رسمی (هر دو سیستم settings) --- TELEGRAM_API_ID=12345678 TELEGRAM_API_HASH=your_api_hash_here TELEGRAM_PHONE=+989123456789 TELEGRAM_SESSION_NAME=telegram_agi_agent # --- نام‌های جایگزین (src/llm.py برای backward compat) --- API_ID=12345678 API_HASH=your_api_hash_here SESSION_DIR=sessions # ┌─────────────────────────────────────────────────────────────────┐ # │ ۲. LLM Configuration │ # │ مصرف‌کنندگان: │ # │ • config/settings.py → فقط OPENAI_API_KEY + OPENAI_MODEL │ # │ • src/config/settings.py → تمام OPENAI_* + LLM_* │ # │ • src/llm.py → LLM_PROVIDER/MODEL/API_KEY/BASE_URL │ # └─────────────────────────────────────────────────────────────────┘ # --- متغیرهای OPENAI_* (برای هر دو سیستم settings) --- OPENAI_API_KEY=sk-your-openai-key-here OPENAI_MODEL=gpt-4o-mini OPENAI_BASE_URL=https://api.openai.com/v1 OPENAI_TEMPERATURE=0.7 OPENAI_MAX_TOKENS=500 # --- متغیرهای LLM_* (Generic — برای src/llm.py و docs/design.md) --- LLM_PROVIDER=openai LLM_MODEL=gpt-4o-mini LLM_API_KEY=sk-your-openai-key-here LLM_BASE_URL=https://api.openai.com/v1 # ┌─────────────────────────────────────────────────────────────────┐ # │ ۳. Agent Behavior & Rate Limiting │ # │ مصرف‌کنندگان: │ # │ • config/settings.py → MAX_MESSAGES_PER_HOUR/DAY + MIN_DELAY │ # │ • src/config/settings.py → SCAN_INTERVAL/MAX_OUTREACH/... │ # └─────────────────────────────────────────────────────────────────┘ # --- نام‌های config/settings.py (MVP) --- MAX_MESSAGES_PER_HOUR=5 MAX_MESSAGES_PER_DAY=30 MIN_DELAY_BETWEEN_MESSAGES=30 # --- نام‌های src/config/settings.py (ساختاریافته) --- SCAN_INTERVAL=300 MESSAGE_DELAY_MIN=30 MESSAGE_DELAY_MAX=120 MAX_OUTREACH_PER_HOUR=10 MAX_OUTREACH_PER_DAY=50 # --- نام‌های src/llm.py --- MESSAGE_DELAY=30 # ┌─────────────────────────────────────────────────────────────────┐ # │ ۴. Targeting — کاربران هدف │ # │ مصرف‌کنندگان: │ # │ • config/settings.py → TARGET_KEYWORDS/CHAT_IDS │ # │ • src/config/settings.py → TARGET_CHAT_IDS │ # └─────────────────────────────────────────────────────────────────┘ # برای config/settings.py TARGET_KEYWORDS=کتاب,فیلم,برنامه‌نویسی TARGET_CHAT_IDS=-1001234567890,-1009876543210 # برای src/config/settings.py (هم‌پوشانی) # TARGET_CHAT_IDS بالا به‌طور خودکار parse می‌شود. # ┌─────────────────────────────────────────────────────────────────┐ # │ ۵. Agent Personality — شخصیت ایجنت │ # │ مصرف‌کنندگان: │ # │ • config/settings.py → AGENT_NAME + AGENT_PERSONA │ # │ • src/config/settings.py → AGENT_NAME + AGENT_PERSONALITY │ # └─────────────────────────────────────────────────────────────────┘ # --- نام‌های config/settings.py --- AGENT_NAME=سارا AGENT_PERSONA=یک دوست صمیمی و گرم فارسی‌زبان که علاقه‌مند به گفتگوی دوستانه است # --- نام‌های src/config/settings.py --- AGENT_PERSONALITY=friendly,curious,helpful AGENT_LANGUAGE=fa # ┌─────────────────────────────────────────────────────────────────┐ # │ ۶. Safety Filters — فیلترهای ایمنی │ # │ مصرف‌کننده: src/config/settings.py │ # └─────────────────────────────────────────────────────────────────┘ ENABLE_SAFETY_CHECKS=true BLOCK_LIST_WORDS=spam,scam,buy,click ALLOW_LIST_WORDS=hello,hi,hey # ┌─────────────────────────────────────────────────────────────────┐ # │ ۷. Logging & Observability │ # │ مصرف‌کنندگان: هر دو سیستم settings │ # └─────────────────────────────────────────────────────────────────┘ # سطح لاگ: DEBUG | INFO | SUCCESS | WARNING | ERROR LOG_LEVEL=INFO # مسیر فایل لاگ (نسبی به ریشه پروژه) LOG_FILE=logs/agent.log # ┌─────────────────────────────────────────────────────────────────┐ # │ ۸. Internal — تنظیمات داخلی │ # │ مصرف‌کننده: config/settings.py │ # └─────────────────────────────────────────────────────────────────┘ # مسیر دایرکتوری session SESSION_DIR=sessions # ╔══════════════════════════════════════════════════════════════════╗ # ║ نمونه Provider ها ║ # ╚══════════════════════════════════════════════════════════════════╝ # # ─── OpenAI (پیش‌فرض) ───────────────────────────────────────────── # LLM_PROVIDER=openai # OPENAI_API_KEY=sk-... # OPENAI_MODEL=gpt-4o-mini # OPENAI_BASE_URL=https://api.openai.com/v1 # # ─── Groq (سریع و رایگان) ────────────────────────────────────────── # LLM_PROVIDER=groq # LLM_API_KEY=gsk_... # LLM_MODEL=llama-3.1-70b-8k # LLM_BASE_URL=https://api.groq.com/openai/v1 # # ─── OpenRouter (دسترسی به چندین مدل) ────────────────────────────── # LLM_PROVIDER=openrouter # LLM_API_KEY=sk-or-... # LLM_MODEL=anthropic/claude-3.5-sonnet # LLM_BASE_URL=https://openrouter.ai/api/v1 # # ─── Ollama (local) ──────────────────────────────────────────────── # LLM_PROVIDER=openai # LLM_API_KEY=ollama # LLM_MODEL=llama3 # LLM_BASE_URL=http://localhost:11434/v1 # # ═══════════════════════════════════════════════════════════════════ # نکات امنیتی: # 1. فایل .env را به .gitignore اضافه کنید (معمولاً هست) # 2. SESSION_STRING را فقط در محیط امن نگه دارید # 3. برای تست، از اکانت تست/مجازی استفاده کنید # 4. rate limit ها را جدی بگیرید — اکانت ban می‌شود! # ═══════════════════════════════════════════════════════════════════