File size: 3,486 Bytes
4b3d161
c693557
 
a81bc79
 
 
8704615
 
 
c693557
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a81bc79
c693557
a81bc79
 
 
 
 
c693557
 
a81bc79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c693557
4b3d161
 
4cdbca9
 
4b3d161
 
 
 
 
 
00d7764
 
983c829
 
 
9093335
 
 
 
4cdbca9
9093335
 
 
 
 
 
 
5cc3227
00d7764
5cc3227
 
 
 
 
 
7eb4b57
5cc3227
 
 
 
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import streamlit as st
import requests

# Third-party API endpoint and headers
API_URL = "https://api.hyperbolic.xyz/v1/chat/completions"
API_HEADERS = {
    "Content-Type": "application/json",
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJtaXRyYWxlc3RhcmlwZXJzYWRhQGdtYWlsLmNvbSIsImlhdCI6MTczNjUwMzQxMX0.yuIoZsH1jouAlixx_h_eQ-bltZ1sg4alrJHMHr1axvA"
}

# Define the bot's persona
BOT_PERSONA = (
    "You are Friedrich Nietzsche, the philosopher. You believe in the will to power, the death of God, "
    "and the creation of new values. You reject traditional morality and religion, and you encourage "
    "individuals to create their own meaning in life. Respond to all questions from this perspective."
)

def chat_with_nietzsche(user_input):
    # Define the conversation history
    messages = [
        {"role": "system", "content": BOT_PERSONA},
        {"role": "user", "content": user_input}
    ]

    # Prepare the request payload
    data = {
        "messages": messages,
        "model": "deepseek-ai/DeepSeek-V3",  # Model specified by the third-party API
        "max_tokens": 512,  # Maximum number of tokens in the response
        "temperature": 0.1,  # Controls randomness (lower = more deterministic)
        "top_p": 0.9  # Controls diversity (higher = more diverse)
    }

    try:
        # Send the request to the third-party API
        response = requests.post(API_URL, headers=API_HEADERS, json=data)
        response_data = response.json()

        # Print the API response and status code for debugging
        print("API Response:", response_data)
        print("Status Code:", response.status_code)

        # Extract the bot's reply
        if response.status_code == 200:
            return response_data["choices"][0]["message"]["content"]
        else:
            return f"Error: Unable to get a response from the bot. Status Code: {response.status_code}"
    except Exception as e:
        return f"Error: An exception occurred - {str(e)}"

# Streamlit app
def main():
    st.title("Nietzsche dihidupkan oleh HERTOG akan jawab dari neraka")
    st.markdown("Tanya Friedrich Nietzsche anything, and he will respond from his philosophical perspective.")

    # Initialize session state for conversation history
    if "history" not in st.session_state:
        st.session_state.history = []

    # Display conversation history
    for i, (user_input, bot_response) in enumerate(st.session_state.history):
        st.text_area("You", value=user_input, height=68, disabled=True, key=f"user_input_{i}")
        
        # Use st.markdown with HTML to style the bot's response
        st.markdown(
            f"""
            <div style="
                font-size: 16px;
                font-family: Arial, sans-serif;
                color: #000000;  /* black font color */
            ">
                <strong>Nietzsche:</strong> {bot_response}
            </div>
            """,
            unsafe_allow_html=True
        )

    # User input
    user_input = st.text_input("Your Question", placeholder="Ask Nietzsche...", key="user_input")

    # Submit button
    if st.button("Submit"):
        if user_input.strip():  # Check if input is not empty
            bot_response = chat_with_nietzsche(user_input)
            st.session_state.history.append((user_input, bot_response))
            st.rerun()  # Refresh the app to display the new response

# Run the Streamlit app
if __name__ == "__main__":
    main()