1. Ключ в коде или в git
Симптом: ключ виден в репозитории/истории; провайдер может его отозвать, со счёта спишут чужие запросы.
# ❌
client = genai.Client(api_key="AIzaSy...")
# ✅
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY")) # + .env в .gitignore
2. Забыли load_dotenv()
Без load_dotenv() переменные из .env не подгрузятся, и os.getenv(...) вернёт None → ошибка авторизации. Вызывайте load_dotenv() до чтения ключа.
3. Превышение лимита токенов
Слишком длинный промпт/история → ошибка или обрезка. Считайте токены (count_tokens), сокращайте контекст, выбирайте модель с большим окном.
4. Неверное имя модели
model="gpt-4" в Gemini-клиенте не сработает. Используйте имена Gemini (gemini-2.0-flash и т.п.) — актуальные смотрите в документации.
5. Хардкод ключа «на минутку»
«Вставлю на тест и потом уберу» — частый путь к утечке. Сразу настройте .env; это занимает минуту.
⚠️ Тексты ошибок и имена моделей зависят от версии SDK/провайдера.