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.")