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") | |