Spaces:
Sleeping
Sleeping
| import os | |
| import gradio as gr | |
| from groq import Groq | |
| # Read API key from Hugging Face Space secret | |
| GROQ_API_KEY = os.environ.get("GROQ_API_KEY") | |
| if not GROQ_API_KEY: | |
| raise ValueError( | |
| "GROQ_API_KEY is not set. " | |
| "Go to your Space Settings -> Variables and secrets -> add it as a secret." | |
| ) | |
| # Initialize Groq client | |
| client = Groq(api_key=GROQ_API_KEY) | |
| # You can change this later if needed | |
| DEFAULT_MODEL = os.environ.get("GROQ_MODEL", "llama-3.1-8b-instant") | |
| def chat_with_groq(message, history): | |
| """ | |
| Gradio passes: | |
| - message: latest user input (str) | |
| - history: list of [user, bot] pairs | |
| """ | |
| try: | |
| system_prompt = "You are a helpful AI assistant for Sajid. Answer clearly and simply." | |
| messages = [{"role": "system", "content": system_prompt}] | |
| # Add previous messages | |
| for user_msg, bot_msg in history: | |
| messages.append({"role": "user", "content": user_msg}) | |
| if bot_msg: | |
| messages.append({"role": "assistant", "content": bot_msg}) | |
| # Add latest user message | |
| messages.append({"role": "user", "content": message}) | |
| response = client.chat.completions.create( | |
| model=DEFAULT_MODEL, | |
| messages=messages, | |
| max_tokens=512, | |
| temperature=0.7, | |
| ) | |
| reply = response.choices[0].message.content | |
| return reply | |
| except Exception as e: | |
| # Show error inside the UI, useful if model name is wrong, etc. | |
| return f"⚠️ Error from Groq API: {e}" | |
| demo = gr.ChatInterface( | |
| fn=chat_with_groq, | |
| title="Sajid's GenAI Chat (Groq + Hugging Face Space)", | |
| description=( | |
| "A simple LLM chat app using Groq's API, deployed on Hugging Face Spaces. " | |
| "Powered by Gradio." | |
| ), | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |