Spaces:
Sleeping
Sleeping
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") | |