|
import os |
|
import streamlit as st |
|
from groq import Groq |
|
|
|
|
|
GROQ_API_KEY = os.environ.get("GROQ_API_KEY") |
|
|
|
if not GROQ_API_KEY: |
|
st.error("Error: GROQ_API_KEY environment variable is not set.") |
|
st.stop() |
|
|
|
|
|
try: |
|
client = Groq(api_key=GROQ_API_KEY) |
|
except Exception as e: |
|
st.error(f"Error initializing Groq client: {e}") |
|
st.stop() |
|
|
|
def get_response(prompt, chat_history): |
|
try: |
|
|
|
messages = [{"role": "user", "content": msg["user"]} if "user" in msg else {"role": "assistant", "content": msg["bot"]} for msg in chat_history] |
|
messages.append({"role": "user", "content": prompt}) |
|
chat_completion = client.chat.completions.create( |
|
messages=messages, |
|
model="llama-3.3-70b-versatile" |
|
) |
|
return chat_completion.choices[0].message.content |
|
except Exception as e: |
|
st.error(f"Error generating response: {e}") |
|
return "An error occurred while generating the response." |
|
|
|
|
|
st.title("Interactive Chatbot") |
|
|
|
|
|
if "chat_history" not in st.session_state: |
|
st.session_state.chat_history = [] |
|
|
|
|
|
user_input = st.text_input("You: ", key="user_input") |
|
|
|
if user_input: |
|
|
|
bot_response = get_response(user_input, st.session_state.chat_history) |
|
|
|
st.session_state.chat_history.append({"user": user_input, "bot": bot_response}) |
|
|
|
|
|
st.subheader("Conversation") |
|
for chat in st.session_state.chat_history: |
|
st.write(f"You: {chat['user']}") |
|
st.write(f"Bot: {chat['bot']}") |
|
|