File size: 2,512 Bytes
5762cfe
 
 
 
 
 
947842d
6313690
5762cfe
 
 
 
209d3a1
5762cfe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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")