Spaces:
Runtime error
Runtime error
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() |