enotkrutoy commited on
Commit
1759859
·
verified ·
1 Parent(s): 0318c14

Update appo.py

Browse files
Files changed (1) hide show
  1. appo.py +72 -86
appo.py CHANGED
@@ -1,107 +1,93 @@
1
  import gradio as gr
2
  import requests
3
  import json
4
- import groq_gradio
5
- import os
6
 
7
- # Системное описание
8
- system_info = {
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
- # Функция анализа кода через API
58
- def analyze_code(input_code):
59
  payload = {
60
  "model": "mixtral-8x7b-32768",
61
  "messages": [
62
- {"role": "system", "content": json.dumps(system_info, ensure_ascii=False)},
63
- {"role": "user", "content": input_code}
64
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  }
 
 
66
  headers = {
67
- "Content-Type": "application/json",
68
- "Authorization": "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"
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
- result = response.json().get("choices", [{}])[0].get("message", {}).get("content", "Результат недоступен")
75
- return result
76
  else:
77
- return f"Ошибка API: {response.status_code} - {response.text}"
78
- except requests.RequestException as e:
79
- return f"Ошибка запроса: {e}"
 
 
 
 
 
 
 
 
 
80
 
81
- # Примеры для автозаполнения
82
- examples = [
83
- "if x > 10\n print(\"x больше 10\")",
84
- "for i in range(10)\n print(i)",
85
- "if ($x -gt 10)\n Write-Host \"x больше 10\""
86
- ]
87
 
88
- # Gradio интерфейс
89
- with gr.Blocks(theme="upsatwal/mlsc_tiet") as app:
90
- gr.Markdown("### WhiteRabbitNeo: Анализ и улучшение кода", elem_id="header")
91
 
92
- with gr.Row():
93
- with gr.Column():
94
- input_code = gr.Textbox(placeholder="Введите ваш код здесь...", lines=10)
95
- with gr.Column():
96
- output_code = gr.Textbox(label="Результат анализа", lines=10, interactive=False)
97
 
98
- with gr.Row():
99
- gr.Examples(
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
- app.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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()