| | import streamlit as st |
| | import os |
| | from groq import Groq |
| | from dotenv import load_dotenv |
| |
|
| | |
| | load_dotenv() |
| | GROQ_API_KEY = os.getenv("GROQ_API_KEY") |
| |
|
| | |
| | client = Groq(api_key=GROQ_API_KEY) |
| |
|
| | |
| | st.set_page_config(page_title="π§ Code Snippet Generator", page_icon="π‘", layout="wide") |
| |
|
| | |
| | st.markdown(""" |
| | <style> |
| | .main { |
| | background-color: #1e1e2f; |
| | color: #f2f2f2; |
| | font-family: 'Segoe UI', sans-serif; |
| | } |
| | .stTextArea textarea { |
| | background-color: #2e2e3f; |
| | color: white; |
| | } |
| | .stButton button { |
| | background-color: #4CAF50; |
| | color: white; |
| | } |
| | </style> |
| | """, unsafe_allow_html=True) |
| |
|
| | |
| | st.sidebar.image("https://cdn-icons-png.flaticon.com/512/911/911408.png", width=100) |
| | st.sidebar.title("Quick Code Gen π»") |
| | st.sidebar.markdown("Turn natural language into code + dry run explanation!") |
| |
|
| | |
| | st.title("β‘ Instant Code Snippet Generator") |
| | st.subheader("Just describe what you want...") |
| |
|
| | prompt = st.text_area("π¬ Describe your code idea:", height=150, placeholder="e.g., Write a Python function to reverse a string") |
| |
|
| | if st.button("π Generate Code"): |
| | if prompt.strip() == "": |
| | st.warning("Please enter something first.") |
| | else: |
| | full_prompt = f""" |
| | You are an expert programmer. Based on the input below, do two things: |
| | 1. Generate the full code snippet in Python |
| | 2. Then provide a step-by-step dry run explaining how the code works. |
| | |
| | Input: {prompt} |
| | """ |
| |
|
| | with st.spinner("Generating your code..."): |
| | response = client.chat.completions.create( |
| | messages=[ |
| | {"role": "user", "content": full_prompt} |
| | ], |
| | model="llama-3.3-70b-versatile", |
| | ) |
| | output = response.choices[0].message.content |
| | st.markdown("### π§© Generated Code + Dry Run:") |
| | st.code(output, language="python") |
| |
|