Spaces:
Build error
Build error
| import streamlit as st | |
| import requests | |
| import os | |
| # UI Setup | |
| st.set_page_config(page_title="Failure Diagnosis Bot", page_icon="🔧") | |
| st.title("🔧 Failure Diagnosis Bot") | |
| st.subheader("Diagnose mechanical issues based on symptoms.") | |
| # API Config | |
| GROQ_API_KEY = st.secrets.get("GROQ_API_KEY") or os.getenv("GROQ_API_KEY") | |
| GROQ_MODEL = "llama-3.3-70b-versatile" # Updated model | |
| # Input from user | |
| user_input = st.text_input("Describe the symptom observed in your machine:", placeholder="e.g., Grinding noise in gearbox...") | |
| # Prompt template | |
| def build_prompt(symptom): | |
| return f""" | |
| You are a mechanical engineering diagnostic chatbot. A user will describe symptoms observed in a mechanical system. Your job is to: | |
| 1. Identify possible fault(s) | |
| 2. List the probable cause(s) | |
| 3. Suggest remedies or corrective actions | |
| 4. List the tools needed for diagnosis or repair | |
| Respond using this structure: | |
| **Symptom:** | |
| {symptom} | |
| **Possible Fault(s):** | |
| - Fault 1 | |
| - Fault 2 | |
| **Cause(s):** | |
| - Cause 1 | |
| - Cause 2 | |
| **Remedy/Recommended Action:** | |
| - Step 1 | |
| - Step 2 | |
| **Tools Needed:** | |
| - Tool 1 | |
| - Tool 2 | |
| """ | |
| # Groq API call | |
| def get_diagnosis(prompt): | |
| headers = { | |
| "Authorization": f"Bearer {GROQ_API_KEY}", | |
| "Content-Type": "application/json" | |
| } | |
| payload = { | |
| "model": GROQ_MODEL, | |
| "messages": [ | |
| {"role": "user", "content": prompt} | |
| ] | |
| } | |
| response = requests.post("https://api.groq.com/openai/v1/chat/completions", headers=headers, json=payload) | |
| if response.status_code == 200: | |
| return response.json()['choices'][0]['message']['content'] | |
| else: | |
| return f"❌ Error: {response.text}" | |
| # Run diagnosis | |
| if user_input and GROQ_API_KEY: | |
| with st.spinner("Analyzing..."): | |
| prompt = build_prompt(user_input) | |
| result = get_diagnosis(prompt) | |
| st.markdown(result) | |
| elif not GROQ_API_KEY: | |
| st.warning("Please set your GROQ_API_KEY as a secret or environment variable to use this app.") | |