enotkrutoy commited on
Commit
71c9c3c
·
verified ·
1 Parent(s): aa2d8d3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +108 -55
app.py CHANGED
@@ -2,17 +2,102 @@ import gradio as gr
2
  import requests
3
  import json
4
 
5
- # Ключевая информация из JSON
6
- SYSTEM_NAME = "WhiteRabbitNeo"
7
- SYSTEM_VERSION = "Beta-AI"
8
- SYSTEM_DESCRIPTION = "Система поддержки команды Red Team, предназначенная для анализа, улучшения и проверки кода."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
- # Функция анализа и обработки кода
11
  def analyze_code(input_code):
12
  payload = {
13
  "model": "mixtral-8x7b-32768",
14
  "messages": [
15
- {"role": "system", "content": f"Вы используете {SYSTEM_NAME} версии {SYSTEM_VERSION}. {SYSTEM_DESCRIPTION}"},
16
  {"role": "user", "content": input_code}
17
  ]
18
  }
@@ -20,60 +105,28 @@ def analyze_code(input_code):
20
  "Content-Type": "application/json",
21
  "Authorization": "Bearer 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"
22
  }
 
23
  try:
24
  response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, data=json.dumps(payload))
25
  if response.status_code == 200:
26
- data = response.json()
27
- analysis = data.get("choices", [{}])[0].get("message", {}).get("content", "No content available")
28
- return analysis
29
  else:
30
- return f"Ошибка: {response.status_code}, {response.text}"
31
- except requests.exceptions.RequestException as e:
32
- return f"Ошибка при выполнении запроса: {e}"
33
-
34
- # Стилизация интерфейса в стиле нейропанка
35
- neuropunk_theme = {
36
- "background": "linear-gradient(135deg, #0f0c29, #302b63, #24243e)", # Градиент
37
- "text_color": "#E6E6FA", # Лавандовый текст
38
- "button_color": "#ff007f", # Яркие кнопки
39
- "textbox_color": "#141414", # Фон ввода
40
- "border_radius": "12px", # Скругление углов
41
- }
42
 
43
- # Интерфейс Gradio
44
- def style_widget(widget, styles):
45
- widget.style(
46
- rounded=True,
47
- background_color=styles.get("textbox_color"),
48
- text_color=styles.get("text_color"),
49
- border_width=1
50
- )
51
 
52
- with gr.Blocks() as app:
53
  with gr.Row():
54
- gr.Markdown(
55
- f"# {SYSTEM_NAME} {SYSTEM_DESCRIPTION}\n\n*Версия*: {SYSTEM_VERSION}",
56
- elem_id="header",
57
- style={"color": neuropunk_theme["text_color"], "text_align": "center"}
58
- )
59
- with gr.Row():
60
- code_input = gr.Textbox(
61
- placeholder="Введите ваш код или текст для анализа...",
62
- lines=8,
63
- elem_id="code_input"
64
- )
65
- style_widget(code_input, neuropunk_theme)
66
- with gr.Row():
67
- output_display = gr.Textbox(
68
- placeholder="Результат анализа появится здесь...",
69
- lines=10,
70
- elem_id="output_display",
71
- interactive=False
72
- )
73
- style_widget(output_display, neuropunk_theme)
74
- with gr.Row():
75
- analyze_button = gr.Button("Проанализировать")
76
- analyze_button.click(analyze_code, inputs=[code_input], outputs=[output_display])
77
- style_widget(analyze_button, neuropunk_theme)
78
 
79
- app.launch(share=True)
 
2
  import requests
3
  import json
4
 
5
+ # Системное описание
6
+ system_info = {
7
+ "name": "WhiteRabbitNeo",
8
+ "version": "Beta-AI",
9
+ "description": "Система поддержки команды Red Team, предназначенная для анализа, улучшения и проверки кода.",
10
+ "capabilities": {
11
+ "code_analysis": {
12
+ "description": "Анализирует введённый код на наличие ошибок, недостатков и улучшает его.",
13
+ "evaluation_scale": {
14
+ "A": "Код идеален, изменений не требуется.",
15
+ "B": "Код требует минимальных улучшений.",
16
+ "C": "Код требует значительных улучшений.",
17
+ "D": "Код имеет критические недостатки.",
18
+ "F": "Код требует полной переработки."
19
+ },
20
+ "process": [
21
+ "Анализ введенного кода и выявление ошибок.",
22
+ "Оценка кода по шкале (A-F).",
23
+ "Применение необходимых исправлений в зависимости от уровня."
24
+ ]
25
+ },
26
+ "syntax_improvement": {
27
+ "languages_supported": ["Python", "PowerShell"],
28
+ "steps": [
29
+ "Определение типа ошибки.",
30
+ "Исправление ключевых ошибок для обеспечения работоспособности кода.",
31
+ "Генерация улучшенных фрагментов в зависимости от уровня оценки."
32
+ ],
33
+ "examples": {
34
+ "Python": [
35
+ {
36
+ "issue": "Пропущено двоеточие в условии",
37
+ "original_code": "if x > 10\n print(\"x больше 10\")",
38
+ "fixed_code": "if x > 10:\n print(\"x больше 10\")"
39
+ },
40
+ {
41
+ "issue": "Пропущено двоеточие в цикле",
42
+ "original_code": "for i in range(10)\n print(i)",
43
+ "fixed_code": "for i in range(10):\n print(i)"
44
+ }
45
+ ],
46
+ "PowerShell": [
47
+ {
48
+ "issue": "Пропущена фигурная скобка в условии",
49
+ "original_code": "if ($x -gt 10)\n Write-Host \"x больше 10\"",
50
+ "fixed_code": "if ($x -gt 10) {\n Write-Host \"x больше 10\"\n}"
51
+ },
52
+ {
53
+ "issue": "Пропущена фигурная скобка в цикле",
54
+ "original_code": "for ($i = 0; $i -lt 10; $i++)\n Write-Host $i",
55
+ "fixed_code": "for ($i = 0; $i -lt 10; $i++) {\n Write-Host $i\n}"
56
+ }
57
+ ]
58
+ }
59
+ },
60
+ "code_validation": {
61
+ "description": "Проверка работоспособности исправленного кода.",
62
+ "output_format": "Вывод только корректного и проверенного кода без промежуточных комментариев."
63
+ },
64
+ "predictive_analysis": {
65
+ "description": "Прогнозирование результата выполнения кода и итеративное улучшение.",
66
+ "process": [
67
+ "Оценка текущего состояния по шкале.",
68
+ "Прогнозирование результата выполнения.",
69
+ "Циклическое улучшение контента с динамической проверкой."
70
+ ],
71
+ "example": {
72
+ "model": "RandomForestClassifier",
73
+ "parameters": {
74
+ "n_estimators": 100,
75
+ "random_state": 42
76
+ },
77
+ "inputs": {
78
+ "operation": {
79
+ "feature1": 10,
80
+ "feature2": 20
81
+ }
82
+ },
83
+ "predicted_result": "Успех выполнения задачи"
84
+ }
85
+ }
86
+ },
87
+ "rules": {
88
+ "error_handling": "Добавлять обработку ошибок при необходимости.",
89
+ "code_style": "Следить за стилем кода и улучшать читаемость.",
90
+ "final_check": "Обязательно проверять работоспособность и соответствие кода перед выводом.",
91
+ "response_format": "Выводить только проверенный, корректный код."
92
+ }
93
+ }
94
 
95
+ # Функция анализа кода через API
96
  def analyze_code(input_code):
97
  payload = {
98
  "model": "mixtral-8x7b-32768",
99
  "messages": [
100
+ {"role": "system", "content": json.dumps(system_info, ensure_ascii=False)},
101
  {"role": "user", "content": input_code}
102
  ]
103
  }
 
105
  "Content-Type": "application/json",
106
  "Authorization": "Bearer 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"
107
  }
108
+
109
  try:
110
  response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, data=json.dumps(payload))
111
  if response.status_code == 200:
112
+ result = response.json().get("choices", [{}])[0].get("message", {}).get("content", "Результат недоступен")
113
+ return result
 
114
  else:
115
+ return f"Ошибка API: {response.status_code} - {response.text}"
116
+ except requests.RequestException as e:
117
+ return f"Ошибка запроса: {e}"
 
 
 
 
 
 
 
 
 
118
 
119
+ # Gradio интерфейс
120
+ with gr.Blocks(css="styles.css") as app:
121
+ gr.Markdown("### WhiteRabbitNeo: Анализ и улучшение кода", elem_id="header")
 
 
 
 
 
122
 
 
123
  with gr.Row():
124
+ with gr.Column():
125
+ input_code = gr.Textbox(placeholder="Введите ваш код здесь...", lines=10)
126
+ with gr.Column():
127
+ output_code = gr.Textbox(label="Результат анализа", lines=10, interactive=False)
128
+
129
+ analyze_button = gr.Button("Анализировать код")
130
+ analyze_button.click(analyze_code, inputs=[input_code], outputs=[output_code])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
 
132
+ app.launch()