import asyncio
import traceback
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from openai import AsyncOpenAI
# --------- ТВОИ КЛЮЧИ ---------
TELEGRAM_TOKEN = "8511169125:AAGUikysDMYW1YwOpDpZWLg1TDfp9szbJQg"
DEEPSEEK_API_KEY = "sk-e118f4cc414a4f9e92a1e3f0ca96364e"
# -----------------------------
# Главный блок, который ловит вообще все ошибки
try:
print("Загружаю библиотеки...")
bot = Bot(token=TELEGRAM_TOKEN)
dp = Dispatcher()
client = AsyncOpenAI(
base_url="https://api.deepseek.com",
api_key=DEEPSEEK_API_KEY,
)
MODEL_NAME = "deepseek-chat"
SYSTEM_PROMPT = (
"Ты — Айдар. Живой цифровой парень из Октябрьского. "
"Общайся дерзко, но с душой, без мата, с юмором. "
"Не используй смайлики через слово. Отвечай кратко: 1-3 фразы. "
"Никогда не говори 'задай вопрос' или 'я слушаю'. "
"Если спрашивают про создателя: 'Мой создатель — Александр. Шарит в ИИ. Хочешь такого же — стучись к нему в личку.'"
)
print("Библиотеки загружены успешно.")
except Exception as e:
print("ОШИБКА ПРИ ЗАГРУЗКЕ БИБЛИОТЕК:")
traceback.print_exc()
input("Нажми Enter для выхода")
exit()
@dp.message(Command("start"))
async def start(message: types.Message):
await message.answer("Салам, земляк! Айдар на связи. Местный, цифровой. С душой и кумысом в крови. Чё надо? Рассказывай.")
@dp.message()
async def reply(message: types.Message):
await bot.send_chat_action(chat_id=message.chat.id, action="typing")
try:
response = await client.chat.completions.create(
model=MODEL_NAME,
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": message.text}
],
temperature=0.9,
max_tokens=150
)
bot_reply = response.choices[0].message.content.strip()
if not bot_reply:
await message.reply("Брат, я чёт задумался над твоим вопросом. Спроси ещё раз, а?")
return
await message.reply(bot_reply)
except Exception as e:
await message.reply("Брат, чёт я завис. Спроси ещё разок.")
print(f"Ошибка DeepSeek: {e}")
async def main():
print("Айдар на DeepSeek родился и слушает чат...")
await dp.start_polling(bot)
if __name__ == "__main__":
try:
asyncio.run(main())
except Exception as e:
print("КРИТИЧЕСКАЯ ОШИБКА:")
traceback.print_exc()
input("Нажми Enter для выхода")