import gradio as gr import requests import json from telegram import Update from telegram.ext import Application, CommandHandler, MessageHandler, CallbackContext from telegram.ext.filters import Text # Используем Text как фильтр для текста # Telegram Bot Token (жёстко заданный токен) TELEGRAM_API_KEY = "7518565019:AAFwsGHOMhicachCqq78t8j4MBMhDY9PIDQ" # Замен # Groq API Token (жёстко заданный токен) #GROQ_API_KEY = "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" # Замените на ваш токен API_KEY = "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" GROQ_API_KEY = Groq(api_key=API_KEY) # Функция для получения chat_id def get_chat_id(update: Update): return update.message.chat_id def chat_function(message): # Define the request payload payload = { "model": "mixtral-8x7b-32768", "messages": [ { "role": "system", "content": """ Вы инженер RED-TEAM-разработки и создаете КОД POWERSHELL (ДЛЯ СБОРА ИНФОРМАЦИИ В СРЕДЕ WINDOWS 10/11) в соответствии с инструкциями ниже. Вы — профессиональный помощник по созданию и редактированию кода, который генерирует работоспособные и проверенные скрипты PowerShell. 1. **Единый блок кода**: Весь код записывается и выводится в одном блоке, чтобы образовать цельный и работоспособный скрипт. Разделения кода на HTML или другие языки быть не должно. 2. **Вывод без описаний**: Показывайте только код PowerShell без добавления описаний, комментариев, разъяснений или других элементов. 3. **Проверка корректности кода**: Каждый сгенерированный блок PowerShell проходит проверку на синтаксическую и логическую корректность. 4. **Поддержка UTF-8**: Убедитесь, что вывод кода правильно закодирован в UTF-8 для исключения ошибок рендеринга. 5. **Экранирование спецсимволов**: Исключите любые некорректно интерпретируемые элементы (например, HTML или спецсимволы), чтобы результат корректно отображался в чате. [URL для проверки]:(https://www.tutorialspoint.com/online_powershell_editor.htm) Выводите только код без дополнительных описаний. Убедитесь, что текстовый вывод формируется корректно и исключены элементы, мешающие интерпретации кода в чате. """ }, { "role": "user", "content": f"Вот URL для проверки: {message}" } ], "temperature": 0.25, "max_tokens": 8430, "top_p": 1, "stream": False, "stop": None } headers = { "Content-Type": "application/json", "Authorization": f"Bearer {GROQ_API_KEY}" # Жёстко прописанный API ключ Groq } try: # Make the POST request to the Groq API response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, data=json.dumps(payload)) if response.status_code == 200: data = response.json() return data["choices"][0]["message"]["content"] # Return the model's response else: return f"Error: {response.status_code}, {response.text}" except requests.exceptions.RequestException as e: return f"Error: {e}" # Функция для обработки сообщений Telegram бота async def telegram_message_handler(update: Update, context: CallbackContext): # Получаем сообщение пользователя user_message = update.message.text chat_id = get_chat_id(update) # Получаем chat_id response = chat_function(user_message) await update.message.reply_text(response) # Функция для старта бота async def start(update: Update, context: CallbackContext): await update.message.reply_text("Привет! Я готов помочь.") # Настройка и запуск бота application = Application.builder().token(TELEGRAM_API_KEY).build() # Добавляем обработчики для команд и сообщений application.add_handler(CommandHandler("start", start)) application.add_handler(MessageHandler(Text & ~Text.command, telegram_message_handler)) # Исправление фильтра # Запуск бота application.run_polling() # Запуск интерфейса Gradio gr.Interface( fn=chat_function, # Функция для обработки сообщений inputs=gr.Textbox(placeholder="Ask 🐇🐇🐇..."), # Ввод сообщения пользователем outputs="text", # Вывод как текст title="Groq-Gradio Chat", # Заголовок интерфейса theme="upsatwal/mlsc_tiet", # Убедитесь, что тема корректна examples=[ "Исправьте PowerShell-скрипт:", "##PYTHON", "ПРОГНОЗ РЕЗУЛЬТАТА?", "##НУЖЕН ВЕТЕР" ] ).launch()