import streamlit as st import requests st.set_page_config(page_title="AI DevOps Assistant", layout="wide") st.title("πŸš€ CI/CD AI Generator & Validator") st.subheader("ГСнСрация ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ²") backend_url = "http://localhost:8000/generate_config" with st.sidebar: st.info("Настройки") model_name = st.selectbox("Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ модСль Ollama", ["codellama", "llama3", "mistral"]) task = st.text_area("ΠžΠΏΠΈΡˆΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡Ρƒ (Π½Π°ΠΏΡ€. 'Pipeline for Dockerized Node.js app with Jest tests'):") if st.button("Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ"): if task: with st.spinner("ИИ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ..."): res = requests.post(backend_url, json={"task_description": task, "model": model_name}) if res.status_code == 200: data = res.json() col1, col2 = st.columns(2) with col1: st.markdown("### Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ YAML") st.code(data["config"], language="yaml") with col2: st.markdown("### Бтатус Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ") if data["is_valid"]: st.success("βœ… ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ синтаксичСски Π²Π΅Ρ€Π½Π°") else: st.error(f"❌ Ошибка Π² YAML: {data['validation_message']}") else: st.error("Ошибка связи с Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠΌ") else: st.warning("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ описаниС Π·Π°Π΄Π°Ρ‡ΠΈ")