File size: 2,030 Bytes
5f4c22d
 
 
 
 
 
 
 
 
 
 
6f02332
5f4c22d
9b507f9
 
 
 
5f4c22d
 
 
 
 
 
6f02332
 
5f4c22d
9b507f9
026782a
9b507f9
 
 
 
 
 
 
 
 
 
 
 
 
5f4c22d
bdacf90
 
6f02332
 
bdacf90
5f4c22d
 
 
bdacf90
6f02332
5f4c22d
6f02332
5f4c22d
 
6f02332
 
5f4c22d
6f02332
9b507f9
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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.")