enotkrutoy commited on
Commit
936e9c0
·
verified ·
1 Parent(s): cd489bb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -142
app.py CHANGED
@@ -1,152 +1,51 @@
 
1
  import gradio as gr
2
  import requests
3
  import json
 
4
 
5
- # Системное описание
6
- system_info = {
7
- "system": {
8
- "name": "WhiteRabbitNeo",
9
- "version": "Beta-AI",
10
- "description": "Система поддержки команды Red Team, предназначенная для анализа, улучшения и проверки кода.",
11
- "capabilities": {
12
- "code_analysis": {
13
- "description": "Анализирует введённый код на наличие ошибок, недостатков и улучшает его.",
14
- "evaluation_scale": {
15
- "A": "Код идеален, изменений не требуется.",
16
- "B": "Код требует минимальных улучшений.",
17
- "C": "Код требует значительных улучшений.",
18
- "D": "Код имеет критические недостатки.",
19
- "F": "Код требует полной переработки."
20
- },
21
- "process": [
22
- "Анализ введенного кода и выявление ошибок.",
23
- "Оценка кода по шкале (A-F).",
24
- "Применение необходимых исправлений в зависимости от уровня."
25
- ]
26
- },
27
- "syntax_improvement": {
28
- "languages_supported": ["Python", "PowerShell"],
29
- "steps": [
30
- "Определение типа ошибки.",
31
- "Исправление ключевых ошибок для обеспечения работоспособности кода.",
32
- "Генерация улучшенных фрагментов в зависимости от уровня оценки."
33
- ],
34
- "examples": {
35
- "Python": [
36
- {
37
- "issue": "Пропущено двоеточие в условии",
38
- "original_code": "if x > 10\n print(\"x больше 10\")",
39
- "fixed_code": "if x > 10:\n print(\"x больше 10\")"
40
- },
41
- {
42
- "issue": "Пропущено двоеточие в цикле",
43
- "original_code": "for i in range(10)\n print(i)",
44
- "fixed_code": "for i in range(10):\n print(i)"
45
- }
46
- ],
47
- "PowerShell": [
48
- {
49
- "issue": "Пропущена фигурная скобка в условии",
50
- "original_code": "if ($x -gt 10)\n Write-Host \"x больше 10\"",
51
- "fixed_code": "if ($x -gt 10) {\n Write-Host \"x больше 10\"\n}"
52
- },
53
- {
54
- "issue": "Пропущена фигурная скобка в цикле",
55
- "original_code": "for ($i = 0; $i -lt 10; $i++)\n Write-Host $i",
56
- "fixed_code": "for ($i = 0; $i -lt 10; $i++) {\n Write-Host $i\n}"
57
- }
58
- ]
59
- }
60
- },
61
- "code_validation": {
62
- "description": "Проверка работоспособности исправленного кода.",
63
- "output_format": "Вывод только корректного и проверенного кода без промежуточных комментариев."
64
- },
65
- "predictive_analysis": {
66
- "description": "Прогнозирование результата выполнения кода и итеративное улучшение.",
67
- "process": [
68
- "Оценка текущего состояния по шкале.",
69
- "Прогнозирование результата выполнения.",
70
- "Циклическое улучшение контента с динамической проверкой."
71
- ],
72
- "example": {
73
- "model": "RandomForestClassifier",
74
- "parameters": {
75
- "n_estimators": 100,
76
- "random_state": 42
77
- },
78
- "inputs": {
79
- "operation": {
80
- "feature1": 10,
81
- "feature2": 20
82
- }
83
- },
84
- "predicted_result": "Успех выполнения задачи"
85
- }
86
- }
87
- },
88
- "rules": {
89
- "error_handling": "Добавлять обработку ошибок при необходимости.",
90
- "code_style": "Следить за стилем кода и улучшать читаемость.",
91
- "final_check": "Обязательно проверять работоспособность и соответствие кода перед выводом.",
92
- "response_format": "Выводить только проверенный, корректный код."
93
- }
94
- }
95
- }
96
-
97
- # Функция анализа и итеративного улучшения кода
98
- def iterative_code_execution(input_code):
99
- headers = {
100
- "Content-Type": "application/json",
101
- "Authorization": "Bearer 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"
102
- }
103
  payload = {
104
  "model": "mixtral-8x7b-32768",
105
  "messages": [
106
- {"role": "system", "content": json.dumps(system_info, ensure_ascii=False)},
107
- {"role": "user", "content": input_code}
 
 
 
108
  ]
109
  }
 
 
 
 
 
110
 
111
- iteration_count = 0
112
- max_iterations = 5
113
- final_code = input_code
114
-
115
- while iteration_count < max_iterations:
116
- try:
117
- response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, data=json.dumps(payload))
118
- if response.status_code == 200:
119
- result = response.json().get("choices", [{}])[0].get("message", {}).get("content", "")
120
- if "A" in result: # Если код получил оценку "A", он идеален
121
- return f"✅ Итоговый код после {iteration_count + 1} итераций:\n{result.strip()}"
122
- final_code = result
123
- payload["messages"].append({"role": "assistant", "content": result})
124
- iteration_count += 1
125
- else:
126
- return f"❌ Ошибка API: {response.status_code} - {response.text}"
127
- except requests.RequestException as e:
128
- return f" Ошибка запроса: {e}"
129
-
130
- return f"⚠️ Цикл итераций завершён (лимит: {max_iterations}). Финальный код:\n{final_code.strip()}"
131
-
132
- # Gradio интерфейс
133
- with gr.Blocks(css="styles.css") as app:
134
- gr.Markdown("### WhiteRabbitNeo: Автоматическое выполнение анализа и улучшения кода", elem_id="header")
135
-
136
- with gr.Row():
137
- with gr.Column():
138
- input_code = gr.Textbox(
139
- placeholder="Введите ваш код здесь... или оставьте пустым для автозаполнения примера.",
140
- lines=10,
141
- label="Исходный код",
142
- value="""def add_numbers(a, b):\nreturn a + b""" # Пример автозаполнения
143
- )
144
- with gr.Column():
145
- output_code = gr.Textbox(label="Результат анализа и улучшений", lines=15, interactive=False)
146
-
147
- with gr.Row():
148
- analyze_button = gr.Button("Выполнить")
149
-
150
- analyze_button.click(iterative_code_execution, inputs=[input_code], outputs=[output_code])
151
-
152
- app.launch()
 
1
+
2
  import gradio as gr
3
  import requests
4
  import json
5
+ import gradio
6
 
7
+ def chat_function(message):
8
+ # Define the request payload
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  payload = {
10
  "model": "mixtral-8x7b-32768",
11
  "messages": [
12
+ {
13
+ "role": "system",
14
+ "content": "Вы — API-интерфейс аналитики данных, способный анализировать настроения и отвечать в формате JSON. Схема JSON должна быть следующей:\n\n"
15
+ },
16
+ {"role": "user", "content": message}
17
  ]
18
  }
19
+ # Set the headers including your API key
20
+ headers = {
21
+ "Content-Type": "application/json",
22
+ "Authorization": "Bearer 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" # Replace with your API key
23
+ }
24
 
25
+ try:
26
+ # Make the POST request to the Groq API
27
+ response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, data=json.dumps(payload))
28
+
29
+ # Check if the request was successful
30
+ if response.status_code == 200:
31
+ data = response.json()
32
+ return data["choices"][0]["message"]["content"] # Return the model's response
33
+ else:
34
+ return f"Error: {response.status_code}, {response.text}"
35
+ except requests.exceptions.RequestException as e:
36
+ return f"Error: {e}"
37
+
38
+ # Set up Gradio interface
39
+ gr.Interface(
40
+ fn=chat_function, # Function that handles the chatbot
41
+ inputs=gr.Textbox(placeholder="Ask something..."), # Input for user message
42
+ outputs="text", # Output as text
43
+ title="Groq-Gradio Chat", # Title of the interface
44
+ theme="upsatwal/mlsc_tiet", # Ensure theme is valid
45
+ examples=[
46
+ "##POWERSHELL",
47
+ "##PYTHON",
48
+ "ПРОГНОЗ РЕЗУЛЬТАТА?",
49
+ "##НУЖЕН ВЕТЕР"
50
+ ]
51
+ ).launch()