chatbot / app.py
Zumlo AI
changes
209d3a1
import streamlit as st
import requests
import logging
import os
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
hf_api_key = st.secrets["api_key"]
def get_hf_ai_response(user_message):
import requests
API_URL = "https://api-inference.huggingface.co/models/meta-llama/Meta-Llama-3.1-8B"
# API_URL = "https://api-inference.huggingface.co/models/meta-llama/Meta-Llama-3.1-8B"
headers = {"Authorization": f"Bearer {hf_api_key}"}
response = requests.post(API_URL, headers=headers, json={"inputs": str(user_message)})
print("================")
print(response)
print("================")
return response
# Function to send a message to the assistant
def send_message(msg_thread):
try:
response = get_hf_ai_response(msg_thread)
print(f"Sending Message Response: {response}")
print(response.content)
return response.content
except requests.exceptions.RequestException as e:
logging.error(f"Failed to send message: {e}")
return "Error processing your request, please try again."
# Sidebar for user input
with st.sidebar:
# user_id = st.text_input("User ID", key="user_id", type="default")
# new_user_id = st.text_input("New User ID", key="new_user_id", type="default")
st.caption("πŸš€ Powered by Zumlo")
# if st.button("Create New User ID"):
# new_user_message = "Hi there!"
# st.session_state.messages.append({"role": "user", "content": new_user_message})
# response = create_new_conversation(new_user_message, new_user_id, working_base_url)
# st.session_state.messages.append({"role": "assistant", "content": response})
# st.rerun()
st.title("Zumlo Chatbot")
st.caption("πŸš€ Powered by Zumlo")
# Display conversation history
if "messages" not in st.session_state:
st.session_state["messages"] = [{"role": "assistant", "content": "How can I help you?"}]
for msg in st.session_state.messages:
st.chat_message(msg["role"]).write(msg["content"])
# Handle user input for ongoing conversation
if prompt := st.chat_input():
st.session_state.messages.append({"role": "user", "content": prompt})
response = send_message(st.session_state.messages)
st.session_state.messages.append({"role": "assistant", "content": response})
st.rerun()
# Refresh the app every 5 seconds (adjust as needed)
# st_autorefresh(interval=5000, key="refresh")
# Display the data or results
st.write("To refresh press R")