Spaces:
Runtime error
Runtime error
import gradio as gr | |
from groq import Groq | |
import os | |
# Default API key for examples (replace with a dummy value or leave empty) | |
DEFAULT_API_KEY = os.environ.get("GROQ_API_KEY", "") | |
def chatbot(message, history, api_key): | |
# Use the provided API key, or fall back to the default for examples | |
api_key = api_key or DEFAULT_API_KEY | |
if not api_key: | |
return "Please enter a valid Groq API key to use the chatbot." | |
try: | |
# Initialize Groq client with the API key | |
client = Groq(api_key=api_key) | |
# Prepare the messages including the conversation history | |
messages = [ | |
{"role": "system", "content": "You are a helpful assistant."} | |
] | |
for human, assistant in history: | |
messages.append({"role": "user", "content": human}) | |
messages.append({"role": "assistant", "content": assistant}) | |
messages.append({"role": "user", "content": message}) | |
# Create the chat completion | |
completion = client.chat.completions.create( | |
model="llama-3.2-90b-text-preview", | |
messages=messages, | |
temperature=1, | |
max_tokens=1024, | |
top_p=1, | |
stream=True, | |
stop=None, | |
) | |
# Stream the response | |
partial_message = "" | |
for chunk in completion: | |
if chunk.choices[0].delta.content is not None: | |
partial_message += chunk.choices[0].delta.content | |
yield partial_message | |
except Exception as e: | |
yield f"Error: {str(e)}" | |
# Create the Gradio interface | |
with gr.Blocks(theme="soft") as iface: | |
gr.Markdown("# Groq LLaMA 3.2 90B Chatbot") | |
gr.Markdown("Chat with the LLaMA 3.2 90B model using Groq API") | |
with gr.Row(): | |
api_key_input = gr.Textbox( | |
label="Enter your Groq API Key", | |
placeholder="...", | |
type="password", | |
value=DEFAULT_API_KEY # Pre-fill with default key if available | |
) | |
chatbot = gr.ChatInterface( | |
fn=chatbot, | |
additional_inputs=[api_key_input], | |
examples=[ | |
["Tell me a short story about a robot learning to paint."], | |
["Explain quantum computing in simple terms."], | |
["What are some creative ways to reduce plastic waste?"], | |
], | |
retry_btn=None, | |
undo_btn="Delete Last", | |
clear_btn="Clear", | |
) | |
# Launch the interface | |
iface.launch() |