Spaces:
Runtime error
Runtime error
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() | |