Ashiii01's picture
Create app.py
20740ca verified
Raw
History Blame Contribute Delete
2.27 kB
# 2️⃣ SET API KEY (SECRET STYLE)
# πŸ‘‰ apni API key yahan paste karo
# =====================================
import os
os.environ["GROQ_API_KEY"] = "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"
# =====================================
# 3️⃣ IMPORTS
# =====================================
import gradio as gr
from groq import Groq
# =====================================
# 4️⃣ LOAD API KEY FROM ENV
# =====================================
API_KEY = os.environ.get("GROQ_API_KEY")
# =====================================
# 5️⃣ CORE FUNCTION
# =====================================
def codegenie_chat(user_prompt):
if not API_KEY:
return "❌ GROQ_API_KEY not found."
if not user_prompt or user_prompt.strip() == "":
return "❌ Please enter a programming request."
try:
client = Groq(api_key=API_KEY)
system_prompt = """
You are CodeGenie – an AI Programming Assistant.
Capabilities:
- Automatic programming language detection
- Multi-language code generation
- Basic programs and DSA support
- Simple code explanation
- Clean and readable output
"""
response = client.chat.completions.create(
model="llama-3.3-70b-versatile",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt}
],
temperature=0.3,
)
return response.choices[0].message.content
except Exception as e:
return f"❌ Error:\n{str(e)}"
# =====================================
# 6️⃣ GRADIO UI
# =====================================
with gr.Blocks(theme=gr.themes.Soft()) as app:
gr.Markdown("""
# πŸ€– CodeGenie – AI Programming Assistant
*Code β€’ DSA β€’ Explanation β€’ Multi-language*
Google Colab Version πŸš€
""")
user_input = gr.Textbox(
label="πŸ’» Enter your programming request",
placeholder="e.g. Write Python code for stack using array with explanation",
lines=4
)
generate_btn = gr.Button("πŸš€ Generate Code")
output_box = gr.Markdown()
generate_btn.click(
fn=codegenie_chat,
inputs=user_input,
outputs=output_box
)
app.launch(share=True)