| import os |
| import gradio as gr |
| from groq import Groq |
|
|
| |
| GROQ_API_KEY = os.getenv("Portfolio") |
|
|
| if not GROQ_API_KEY: |
| raise ValueError("Please set GROQ_API_KEY in your Hugging Face Space secrets.") |
|
|
| client = Groq(api_key=GROQ_API_KEY) |
|
|
| def generate_portfolio(name, skills, projects, tone): |
| prompt = f""" |
| Create a professional portfolio description. |
| |
| Name: {name} |
| Skills: {skills} |
| Projects: {projects} |
| Tone: {tone} |
| |
| The description should be engaging, clear, and suitable for a personal website. |
| """ |
|
|
| try: |
| response = client.chat.completions.create( |
| model="llama-3.3-70b-versatile", |
| messages=[ |
| {"role": "system", "content": "You are a professional content writer."}, |
| {"role": "user", "content": prompt} |
| ], |
| temperature=0.7, |
| max_tokens=400 |
| ) |
|
|
| return response.choices[0].message.content |
|
|
| except Exception as e: |
| return f"Error: {str(e)}" |
|
|
|
|
| |
| with gr.Blocks() as demo: |
| gr.Markdown("# 🚀 Portfolio Description Generator") |
|
|
| name = gr.Textbox(label="Your Name") |
| skills = gr.Textbox(label="Your Skills", placeholder="Python, ML, Web Dev") |
| projects = gr.Textbox(label="Your Projects", placeholder="Describe your work") |
| tone = gr.Dropdown( |
| ["Professional", "Casual", "Creative"], |
| label="Tone", |
| value="Professional" |
| ) |
|
|
| output = gr.Textbox(label="Generated Description", lines=10) |
|
|
| btn = gr.Button("Generate") |
|
|
| btn.click( |
| fn=generate_portfolio, |
| inputs=[name, skills, projects, tone], |
| outputs=output |
| ) |
|
|
| if __name__ == "__main__": |
| demo.launch() |