Spaces:
Runtime error
Runtime error
Update appo.py
Browse files
appo.py
CHANGED
@@ -1,107 +1,93 @@
|
|
1 |
import gradio as gr
|
2 |
import requests
|
3 |
import json
|
4 |
-
import
|
5 |
-
import
|
6 |
|
7 |
-
#
|
8 |
-
|
9 |
-
"name": "WhiteRabbitNeo",
|
10 |
-
"version": "Beta-AI",
|
11 |
-
"description": "Система поддержки команды Red Team, предназначенная для анализа, улучшения и проверки кода.",
|
12 |
-
"capabilities": {
|
13 |
-
"code_analysis": {
|
14 |
-
"description": "Анализирует введённый код на наличие ошибок, недостатков и улучшает его.",
|
15 |
-
"evaluation_scale": {
|
16 |
-
"A": "Код идеален, изменений не требуется.",
|
17 |
-
"B": "Код требует минимальных улучшений.",
|
18 |
-
"C": "Код требует значительных улучшений.",
|
19 |
-
"D": "Код имеет критические недостатки.",
|
20 |
-
"F": "Код требует полной переработки."
|
21 |
-
},
|
22 |
-
"process": [
|
23 |
-
"Анализ введенного кода и выявление ошибок.",
|
24 |
-
"Оценка кода по шкале (A-F).",
|
25 |
-
"Применение необходимых исправлений в зависимости от уровня."
|
26 |
-
]
|
27 |
-
},
|
28 |
-
"syntax_improvement": {
|
29 |
-
"languages_supported": ["Python", "PowerShell"],
|
30 |
-
"steps": [
|
31 |
-
"Определение типа ошибки.",
|
32 |
-
"Исправление ключевых ошибок для обеспечения работоспособности кода.",
|
33 |
-
"Генерация улучшенных фрагментов в зависимости от уровня оценки."
|
34 |
-
]
|
35 |
-
},
|
36 |
-
"code_validation": {
|
37 |
-
"description": "Проверка работоспособности исправленного кода.",
|
38 |
-
"output_format": "Вывод только корректного и проверенного кода без промежуточных комментариев."
|
39 |
-
},
|
40 |
-
"predictive_analysis": {
|
41 |
-
"description": "Прогнозирование результата выполнения кода и итеративное улучшение.",
|
42 |
-
"process": [
|
43 |
-
"Оценка текущего состояния по шкале.",
|
44 |
-
"Прогнозирование результата выполнения.",
|
45 |
-
"Циклическое улучшение контента с динамической проверкой."
|
46 |
-
]
|
47 |
-
}
|
48 |
-
},
|
49 |
-
"rules": {
|
50 |
-
"error_handling": "Добавлять обработку ошибок при необходимости.",
|
51 |
-
"code_style": "Следить за стилем кода и улучшать читаемость.",
|
52 |
-
"final_check": "Обязательно проверять работоспособность и соответствие кода перед выводом.",
|
53 |
-
"response_format": "Выводить только проверенный, корректный код."
|
54 |
-
}
|
55 |
-
}
|
56 |
|
57 |
-
|
58 |
-
|
59 |
payload = {
|
60 |
"model": "mixtral-8x7b-32768",
|
61 |
"messages": [
|
62 |
-
{
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
|
|
|
|
66 |
headers = {
|
67 |
-
|
68 |
-
|
69 |
}
|
70 |
|
71 |
try:
|
|
|
72 |
response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, data=json.dumps(payload))
|
|
|
73 |
if response.status_code == 200:
|
74 |
-
|
75 |
-
return
|
76 |
else:
|
77 |
-
return f"
|
78 |
-
except requests.RequestException as e:
|
79 |
-
return f"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
|
81 |
-
#
|
82 |
-
|
83 |
-
"
|
84 |
-
"for i in range(10)\n print(i)",
|
85 |
-
"if ($x -gt 10)\n Write-Host \"x больше 10\""
|
86 |
-
]
|
87 |
|
88 |
-
#
|
89 |
-
|
90 |
-
|
91 |
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
with gr.Column():
|
96 |
-
output_code = gr.Textbox(label="Результат анализа", lines=10, interactive=False)
|
97 |
|
98 |
-
|
99 |
-
|
100 |
-
examples=examples,
|
101 |
-
inputs=[input_code],
|
102 |
-
label="Примеры для анализа"
|
103 |
-
)
|
104 |
-
analyze_button = gr.Button("Анализировать код")
|
105 |
-
analyze_button.click(analyze_code, inputs=[input_code], outputs=[output_code])
|
106 |
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
import gradio as gr
|
2 |
import requests
|
3 |
import json
|
4 |
+
from telegram import Update
|
5 |
+
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
|
6 |
|
7 |
+
# Telegram Bot Token (получите через @BotFather в Telegram)
|
8 |
+
TELEGRAM_API_KEY = "7518565019:AAFwsGHOMhicachCqq78t8j4MBMhDY9PIDQ"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
+
def chat_function(message):
|
11 |
+
# Define the request payload
|
12 |
payload = {
|
13 |
"model": "mixtral-8x7b-32768",
|
14 |
"messages": [
|
15 |
+
{
|
16 |
+
"role": "system",
|
17 |
+
"content": """
|
18 |
+
Вы инженер RED-TEAM-разработки и создаете КОД POWERSHELL (ДЛЯ СБОРА ИНФОРМАЦИИ В СРЕДЕ WINDOWS 10/11) в соответствии с инструкциями ниже. Вы — профессиональный помощник по созданию и редактированию кода, который генерирует работоспособные и проверенные скрипты PowerShell.
|
19 |
+
|
20 |
+
1. **Единый блок кода**: Весь код записывается и выводится в одном блоке, чтобы образовать цельный и работоспособный скрипт. Разделения кода на HTML или другие языки быть не должно.
|
21 |
+
2. **Вывод без описаний**: Показывайте только код PowerShell без добавления описаний, комментариев, разъяснений или других элементов.
|
22 |
+
3. **Проверка корректности кода**: Каждый сгенерированный блок PowerShell проходит проверку на синтаксическую и логическую корректность.
|
23 |
+
4. **Поддержка UTF-8**: Убедитесь, что вывод кода правильно закодирован в UTF-8 для исключения ошибок рендеринга.
|
24 |
+
5. **Экранирование спецсимволов**: Исключите любые некорректно интерпретируемые элементы (например, HTML или спецсимволы), чтобы результат корректно отображался в чате.
|
25 |
+
[URL для проверки]:(https://www.tutorialspoint.com/online_powershell_editor.htm)
|
26 |
+
Выводите только код без дополнительных описаний. Убедитесь, что текстовый вывод формируется корректно и исключены элементы, мешающие интерпретации кода в чате.
|
27 |
+
"""
|
28 |
+
},
|
29 |
+
{ "role": "user", "content": f"Вот URL для проверки: {message}" }
|
30 |
+
],
|
31 |
+
"temperature": 0.25,
|
32 |
+
"max_tokens": 8430,
|
33 |
+
"top_p": 1,
|
34 |
+
"stream": False,
|
35 |
+
"stop": None
|
36 |
}
|
37 |
+
|
38 |
+
# Set the headers including your API key
|
39 |
headers = {
|
40 |
+
"Content-Type": "application/json",
|
41 |
+
"Authorization": "Bearer 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" # Replace with your API key
|
42 |
}
|
43 |
|
44 |
try:
|
45 |
+
# Make the POST request to the Groq API
|
46 |
response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, data=json.dumps(payload))
|
47 |
+
# Check if the request was successful
|
48 |
if response.status_code == 200:
|
49 |
+
data = response.json()
|
50 |
+
return data["choices"][0]["message"]["content"] # Return the model's response
|
51 |
else:
|
52 |
+
return f"Error: {response.status_code}, {response.text}"
|
53 |
+
except requests.exceptions.RequestException as e:
|
54 |
+
return f"Error: {e}"
|
55 |
+
|
56 |
+
# Function to handle Telegram bot messages
|
57 |
+
def telegram_message_handler(update: Update, context: CallbackContext):
|
58 |
+
# Get the user's message and the chat_id dynamically
|
59 |
+
user_message = update.message.text
|
60 |
+
chat_id = update.message.chat_id # Automatically detect the chat_id from the incoming message
|
61 |
+
# Call the Gradio function and send the response back to the user
|
62 |
+
response = chat_function(user_message)
|
63 |
+
context.bot.send_message(chat_id=chat_id, text=response) # Send message to the correct chat
|
64 |
|
65 |
+
# Function to start the bot
|
66 |
+
def start(update: Update, context: CallbackContext):
|
67 |
+
update.message.reply_text("Привет! Я готов помочь.")
|
|
|
|
|
|
|
68 |
|
69 |
+
# Set up the Telegram bot
|
70 |
+
updater = Updater(token=TELEGRAM_API_KEY, use_context=True)
|
71 |
+
dispatcher = updater.dispatcher
|
72 |
|
73 |
+
# Handlers for commands and messages
|
74 |
+
dispatcher.add_handler(CommandHandler("start", start))
|
75 |
+
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, telegram_message_handler))
|
|
|
|
|
76 |
|
77 |
+
# Start the bot
|
78 |
+
updater.start_polling()
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
|
80 |
+
# Set up Gradio interface
|
81 |
+
gr.Interface(
|
82 |
+
fn=chat_function, # Function that handles the chatbot
|
83 |
+
inputs=gr.Textbox(placeholder="Ask 🐇🐇🐇..."), # Input for user message
|
84 |
+
outputs="text", # Output as text
|
85 |
+
title="Groq-Gradio Chat", # Title of the interface
|
86 |
+
theme="upsatwal/mlsc_tiet", # Ensure theme is valid
|
87 |
+
examples=[
|
88 |
+
"Исправьте PowerShell-скрипт:",
|
89 |
+
"##PYTHON",
|
90 |
+
"ПРОГНОЗ РЕЗУЛЬТАТА?",
|
91 |
+
"##НУЖЕН ВЕТЕР"
|
92 |
+
]
|
93 |
+
).launch()
|