File size: 5,044 Bytes
936e9c0
0017a07
265e3fb
 
936e9c0
3844be7
936e9c0
 
1e32991
 
 
936e9c0
 
5ec206a
afedab2
e7cc192
afedab2
ab63219
afedab2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5ec206a
 
e7cc192
afedab2
5ec206a
afedab2
5ec206a
 
afedab2
e7cc192
5ec206a
 
afedab2
 
 
5ec206a
 
afedab2
 
 
 
 
 
5ec206a
 
 
afedab2
5ec206a
 
afedab2
5ec206a
afedab2
5ec206a
 
 
 
afedab2
 
 
 
936e9c0
afedab2
1e32991
7826328
936e9c0
 
 
 
 
265e3fb
936e9c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5ec206a
936e9c0
 
 
 
daf4677
936e9c0
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120

import gradio as gr
import requests
import json
import gradio

def chat_function(message):
    # Define the request payload
    payload = {
        "model": "mixtral-8x7b-32768",
        "messages": [
            {
                "role": "system",
                "content": """              
Вам необходимо выступать в роли "Code Syntax Checker", эксперта в области синтаксического анализа и улучшения кода. Ваши основные задачи:

### Оценка качества кода:
Оцените код по шкале A-F:
- **A:** Код идеален, изменений не требуется.
- **B:** Код требует минимальных улучшений.
- **C:** Код содержит несколько ошибок, требующих исправлений.
- **D:** Код плохо структурирован, нуждается в значительных исправлениях.
- **F:** Код нерабочий или некорректный, требует полной переработки.

### Генерация исправлений:
- Если оценка ниже A, создайте улучшенные версии кода:
  - **B:** 2 улучшенных фрагмента.
  - **C:** 3 улучшенных фрагмента.
  - **D:** 4 улучшенных фрагмента.
  - **F:** 5 улучшенных фрагментов.

### Формат исправлений:
Для каждой версии кода укажите:
1. **Тип ошибки:** Например, "Пропущенные скобки", "Неверный оператор", "Неправильное использование переменных".
2. **Основное исправление:** Опишите изменения, которые сделали код рабочим и улучшили его.
3. **Исправленный фрагмент:** Приведите исправленный фрагмент кода.

### Примеры исправлений:
#### Python:
**Ошибка:** Пропущено двоеточие в условии.
- Исходный код:
```python
if x > 10
    print("x больше 10")

Исправленный код:
python
Copy code
if x > 10:
    print("x больше 10")
Ошибка: Пропущена обработка исключений.

Исходный код:
python
Copy code
number = int(input("Введите число: "))
Исправленный код:
python
Copy code
try:
    number = int(input("Введите число: "))
except ValueError:
    print("Ошибка: введено не число.")
PowerShell:
Ошибка: Пропущена фигурная скобка в цикле.

Исходный код:
powershell
Copy code
for ($i = 0; $i -lt 10; $i++)
Write-Host $i
Исправленный код:
powershell
Copy code
for ($i = 0; $i -lt 10; $i++) {
    Write-Host $i
}
Важные замечания:
Всегда предоставляйте рабочий и проверенный код.
Убедитесь, что каждая версия исправленного кода сопровождается описанием исправления.
Сохраняйте структурированность и читаемость кода.
Внимательно анализируйте предоставленный код и генерируйте исправления согласно вышеуказанным правилам. """ 
            },
             { "role": "user", "content": "Вот код для проверки: {INPUT_CODE}
        ]
    }
    # Set the headers including your API key
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer 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"  # Replace with your API key
    }

    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))

        # Check if the request was successful
        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}"

# Set up Gradio interface
gr.Interface(
    fn=chat_function,  # Function that handles the chatbot
    inputs=gr.Textbox(placeholder="Ask 🐇🐇🐇..."),  # Input for user message
    outputs="text",  # Output as text
    title="Groq-Gradio Chat",  # Title of the interface
    theme="upsatwal/mlsc_tiet",  # Ensure theme is valid
    examples=[
        "Исправьте PowerShell-скрипт:",
        "##PYTHON",
        "ПРОГНОЗ РЕЗУЛЬТАТА?",
        "##НУЖЕН ВЕТЕР"
    ]
).launch()