File size: 3,230 Bytes
5a18d50
 
 
 
1ef908a
5a18d50
fd74ac9
 
 
 
 
 
5a18d50
 
 
fd74ac9
5a18d50
fd74ac9
5a18d50
 
 
fd74ac9
 
 
5a18d50
 
fd74ac9
 
 
 
 
 
3866cff
fd74ac9
 
 
 
 
 
 
3866cff
 
fd74ac9
 
 
 
3866cff
 
fd74ac9
 
 
 
 
 
 
 
3866cff
 
fd74ac9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5a18d50
 
 
4ff2cb5
 
 
 
 
 
 
 
fd74ac9
4ff2cb5
fd74ac9
5a18d50
4ff2cb5
5a18d50
 
 
76f7219
 
 
 
 
5a18d50
 
 
fd74ac9
5a18d50
 
 
 
 
 
3866cff
76f7219
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import streamlit as st
from groq import Groq

# Define the API key here
GROQ_API_KEY = "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"

# Initialize session state for chat history
if "chat_history" not in st.session_state:
    st.session_state.chat_history = [
        {"role": "system", "content": "you are a helpful assistant. Take the input from the users and try to provide as detailed response as possible. Provide proper examples to help the user. Try to mention references or provide citations to make it more detail-oriented."}
    ]

# Define function to fetch response
def fetch_response(user_input):
    client = Groq(api_key=GROQ_API_KEY)
    st.session_state.chat_history.append({"role": "user", "content": user_input})
    chat_completion = client.chat.completions.create(
        messages=st.session_state.chat_history,
        model="mixtral-8x7b-32768",
        stream=False
    )
    response = chat_completion.choices[0].message.content
    st.session_state.chat_history.append({"role": "assistant", "content": response})
    return response

# Streamlit app
st.set_page_config(page_title="Fastest AI Chatbot", page_icon="🤖", layout="wide")

st.markdown(
    """
    <style>
    body {
        background-color: #1f1f2e;
        color: #e1e1e1;
        font-family: 'Courier New', Courier, monospace;
    }
    .css-18e3th9 {
        padding: 2rem;
    }
    .css-1d391kg {
        background: linear-gradient(145deg, #3d3d5c, #2e2e4a);
        box-shadow: 20px 20px 60px #29293f, -20px -20px 60px #3a3a56;
        border-radius: 15px;
        padding: 2rem;
    }
    .stButton>button {
        background: linear-gradient(145deg, #5e5e87, #4a4a6c);
        box-shadow: 8px 8px 16px #29293f, -8px -8px 16px #3a3a56;
        color: #e1e1e1;
        border: none;
        border-radius: 12px;
        padding: 0.5rem 2rem;
        font-size: 1.2rem;
        margin-top: 1rem;
    }
    .stTextInput>div>div>input {
        background: linear-gradient(145deg, #5e5e87, #4a4a6c);
        box-shadow: inset 8px 8px 16px #29293f, inset -8px -8px 16px #3a3a56;
        border: none;
        border-radius: 12px;
        color: #e1e1e1;
        padding: 1rem;
        font-size: 1rem;
    }
    footer {
        color: #e1e1e1;
        font-size: small;
        text-align: right;
        margin-top: 2rem;
    }
    </style>
    """,
    unsafe_allow_html=True
)

st.title("Fastest AI Chatbot")
st.write("Ask a question and get a response.")

# Function to display chat history
def display_chat_history():
    for chat in st.session_state.chat_history:
        if chat["role"] == "user":
            st.markdown(f"**You:** {chat['content']}")
        elif chat["role"] == "assistant":
            st.markdown(f"**AI:** {chat['content']}")

# Display chat history
display_chat_history()

# Text input for user's question
user_input = st.text_input("Enter your question here:", key="input")

# Button to trigger response
if st.button("Get Response"):
    if user_input:
        # Fetch and display response
        response = fetch_response(user_input)
        st.experimental_rerun()

# Footer
st.markdown(
    """
    <footer>
        By DL TITANS
    </footer>
    """,
    unsafe_allow_html=True
)