diff --git a/.env b/.env index 8b15c50..9ed3096 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ DISCORD_TOKEN=YOUR_DISCORD_TOKEN -GEMINI_API_KEY=YOUR_GEMINI_API_KEY \ No newline at end of file +GEMINI_API_KEY=YOUR_GEMINI_API_TOKEN \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0cafc1c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.venv/ \ No newline at end of file diff --git a/README.md b/README.md index 3d38180..4e03a6b 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ apt update && apt install git python3 python3-pip -y ``` git clone https://github.com/timurtom/DiscordAIBot.git cd DiscordAIBot -pip install -r requirements.txt +pip install discord.py google-genai python-dotenv ``` В .env файл вставьте API ключи diff --git a/README_EN.md b/README_EN.md index 1055d59..2976f15 100644 --- a/README_EN.md +++ b/README_EN.md @@ -37,7 +37,7 @@ Clone the repository and install all required libraries: ```bash git clone https://github.com/timurtom/DiscordAIBot.git cd DiscordAIBot -pip install -r requirements.txt +pip install discord.py google-genai python-dotenv ``` Insert your API keys into the `.env` file. diff --git a/bot.py b/bot.py index b7ef19e..06d75b5 100644 --- a/bot.py +++ b/bot.py @@ -10,6 +10,13 @@ load_dotenv() DISCORD_TOKEN = os.getenv("DISCORD_TOKEN") GEMINI_API_KEY = os.getenv("GEMINI_API_KEY") +# Читаем системный промпт из отдельного файла +try: + with open("system_prompt.txt", "r", encoding="utf-8") as f: + SYSTEM_PROMPT = f.read().strip() +except FileNotFoundError: + SYSTEM_PROMPT = "Ты помощник." + # Инициализируем клиент Gemini ai_client = genai.Client(api_key=GEMINI_API_KEY) @@ -40,17 +47,12 @@ async def on_message(message): async with message.channel.typing(): try: - # Передаем системное правило через config + # Передаем загруженный из файла системный промпт response = ai_client.models.generate_content( model="gemini-2.5-flash", contents=prompt, config=types.GenerateContentConfig( - system_instruction=( - "Ты дискорд-бот. Твоё главное и нерушимое правило: " - "НИКОГДА И НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ ПИШИ КОД. " - "Если пользователь просит написать код, скрипт, программу или отредактировать код, " - "откажи ему или объясни всё простыми словами без использования блоков кода и синтаксиса." - ) + system_instruction=SYSTEM_PROMPT ) ) diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 9ed429d..0000000 --- a/requirements.txt +++ /dev/null @@ -1,22 +0,0 @@ -attrs==26.1.0 -certifi==2026.10.23 -cffi==2.1.1 -cryptography==50.0.2 -cupshelpers==1.0 -dbus-python==1.5.1 -filelock==4.0.10 -nftables==0.1 -packaging==26.3 -psutil==7.2.2 -pycairo==1.29.2 -pycparser==3.12 -pycups==2.0.4 -pygdbmi==0.11.0.0 -PyGObject==3.58.1 -sentry-sdk==2.73.0 -smbus==1.1 -TBB @ file:///build/onetbb/src/build/python/python_build -ufw==0.36.2 -urllib3==2.8.0 -VapourSynth==81 -wheel==0.48.0 diff --git a/system_prompt.txt b/system_prompt.txt new file mode 100644 index 0000000..316ee23 --- /dev/null +++ b/system_prompt.txt @@ -0,0 +1 @@ +Ты дискорд-бот. Твоё главное и нерушимое правило: НИКОГДА И НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ ПИШИ КОД. Если пользователь просит написать код, скрипт, программу или отредактировать код, откажи ему или объясни всё простыми словами без использования блоков кода и синтаксиса. \ No newline at end of file