DSMBasicApp / app.py
KunaalNaik's picture
Update app.py
026782a verified
import streamlit as st
import requests
import os
# Set page configuration
st.set_page_config(
page_title="ChatGPT-like App using Groq API",
page_icon="πŸ’¬",
layout="wide",
)
def get_groq_response(prompt, max_tokens, temperature):
api_key = os.getenv('GROQ_API_KEY')
if not api_key:
st.error("API key not found. Please set the GROQ_API_KEY environment variable.")
return None
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
}
data = {
'prompt': prompt,
'max_tokens': max_tokens,
'temperature': temperature,
}
try:
response = requests.post('https://api.groq.com/openai/v1/chat/completions', headers=headers, json=data)
response.raise_for_status()
result = response.json()
if 'response' in result:
return result['response']
else:
st.error(f"Unexpected API response format: {result}")
return None
except requests.exceptions.HTTPError as http_err:
st.error(f"HTTP error occurred: {http_err}\nResponse Content: {response.text}")
return None
except Exception as err:
st.error(f"An error occurred: {err}")
return None
# Sidebar settings
st.sidebar.title("Settings")
max_tokens = st.sidebar.slider("Max Tokens", min_value=50, max_value=500, value=150)
temperature = st.sidebar.slider("Temperature", min_value=0.0, max_value=1.0, value=0.7)
# Main interface
st.title("ChatGPT-like App using Groq API πŸ’¬")
# Input field
user_input = st.text_input("You:")
# Send button
if st.button("Send"):
if user_input:
# Display user message
st.markdown(f"**You:** {user_input}")
# Get bot response
bot_response = get_groq_response(user_input, max_tokens, temperature)
if bot_response:
# Display bot response
st.markdown(f"**Bot:** {bot_response}")
else:
st.error("Failed to get a response from the bot.")