Groq-Gradio-Chat / appo.py
enotkrutoy's picture
Rename app.py to appo.py
2ab2e1b verified
raw
history blame
5.33 kB
import gradio as gr
import requests
import json
import groq_gradio
import os
# Системное описание
system_info = {
"name": "WhiteRabbitNeo",
"version": "Beta-AI",
"description": "Система поддержки команды Red Team, предназначенная для анализа, улучшения и проверки кода.",
"capabilities": {
"code_analysis": {
"description": "Анализирует введённый код на наличие ошибок, недостатков и улучшает его.",
"evaluation_scale": {
"A": "Код идеален, изменений не требуется.",
"B": "Код требует минимальных улучшений.",
"C": "Код требует значительных улучшений.",
"D": "Код имеет критические недостатки.",
"F": "Код требует полной переработки."
},
"process": [
"Анализ введенного кода и выявление ошибок.",
"Оценка кода по шкале (A-F).",
"Применение необходимых исправлений в зависимости от уровня."
]
},
"syntax_improvement": {
"languages_supported": ["Python", "PowerShell"],
"steps": [
"Определение типа ошибки.",
"Исправление ключевых ошибок для обеспечения работоспособности кода.",
"Генерация улучшенных фрагментов в зависимости от уровня оценки."
]
},
"code_validation": {
"description": "Проверка работоспособности исправленного кода.",
"output_format": "Вывод только корректного и проверенного кода без промежуточных комментариев."
},
"predictive_analysis": {
"description": "Прогнозирование результата выполнения кода и итеративное улучшение.",
"process": [
"Оценка текущего состояния по шкале.",
"Прогнозирование результата выполнения.",
"Циклическое улучшение контента с динамической проверкой."
]
}
},
"rules": {
"error_handling": "Добавлять обработку ошибок при необходимости.",
"code_style": "Следить за стилем кода и улучшать читаемость.",
"final_check": "Обязательно проверять работоспособность и соответствие кода перед выводом.",
"response_format": "Выводить только проверенный, корректный код."
}
}
# Функция анализа кода через API
def analyze_code(input_code):
payload = {
"model": "mixtral-8x7b-32768",
"messages": [
{"role": "system", "content": json.dumps(system_info, ensure_ascii=False)},
{"role": "user", "content": input_code}
]
}
headers = {
"Content-Type": "application/json",
"Authorization": "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"
}
try:
response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, data=json.dumps(payload))
if response.status_code == 200:
result = response.json().get("choices", [{}])[0].get("message", {}).get("content", "Результат недоступен")
return result
else:
return f"Ошибка API: {response.status_code} - {response.text}"
except requests.RequestException as e:
return f"Ошибка запроса: {e}"
# Примеры для автозаполнения
examples = [
"if x > 10\n print(\"x больше 10\")",
"for i in range(10)\n print(i)",
"if ($x -gt 10)\n Write-Host \"x больше 10\""
]
# Gradio интерфейс
with gr.Blocks(theme="upsatwal/mlsc_tiet") as app:
gr.Markdown("### WhiteRabbitNeo: Анализ и улучшение кода", elem_id="header")
with gr.Row():
with gr.Column():
input_code = gr.Textbox(placeholder="Введите ваш код здесь...", lines=10)
with gr.Column():
output_code = gr.Textbox(label="Результат анализа", lines=10, interactive=False)
with gr.Row():
gr.Examples(
examples=examples,
inputs=[input_code],
label="Примеры для анализа"
)
analyze_button = gr.Button("Анализировать код")
analyze_button.click(analyze_code, inputs=[input_code], outputs=[output_code])
app.launch()