amkj84's picture
Update app.py
8565859 verified
import os
import gradio as gr
from groq import Groq
# Set up the Groq API client
apikey = os.getenv("apikey") # Fetch the API key from secrets
if not apikey:
raise ValueError("API Key is not set. Add it in the Secrets tab.")
client = Groq(api_key=apikey)
# Function to interact with the LLM
def chatbot(user_input, history):
try:
# Format conversation history
messages = [{"role": "user", "content": user} for user, _ in history]
messages.append({"role": "user", "content": user_input})
# Send to Groq's API
chat_completion = client.chat.completions.create(
messages=messages, model="llama3-8b-8192"
)
response = chat_completion.choices[0].message.content
history.append((user_input, response))
return history, history
except Exception as e:
return history, history + [(user_input, f"An error occurred: {str(e)}")]
# Enhanced Gradio interface
with gr.Blocks(title="The Ultimate Chat Companion") as demo:
gr.Markdown(
"""
# 🧠 **Groq LLM Chatbot**
Meet the Future - Interact with a powerful LLM in real-time.
"""
)
with gr.Row():
# Use a local image file for the logo
gr.Image(value="chat-companion-high-resolution-logo.png", label="Logo", interactive=False)
gr.Markdown(
"""
**Created by ATIF MEHMOOD**
_Experience the next generation of AI-powered conversations._
"""
)
chatbot_ui = gr.Chatbot(label="Chat Interface")
user_input = gr.Textbox(
placeholder="Type your message here...",
label="Your Message",
lines=2,
)
submit_btn = gr.Button(value="Send")
# Bind functions
history_state = gr.State([])
submit_btn.click(chatbot, [user_input, history_state], [chatbot_ui, history_state])
user_input.submit(chatbot, [user_input, history_state], [chatbot_ui, history_state])
demo.launch()