File size: 2,843 Bytes
9ad9766
 
4cc2899
 
 
9ad9766
 
4cc2899
 
9ad9766
4cc2899
 
9ad9766
1663ed5
a965c7d
 
9ad9766
 
 
 
 
4cc2899
 
9ad9766
 
4cc2899
 
 
 
 
 
 
9ad9766
 
4cc2899
9ad9766
 
4cc2899
9ad9766
 
4cc2899
 
9ad9766
 
1663ed5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9ad9766
1663ed5
9ad9766
1663ed5
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
import os
import gradio as gr
from langchain_openai import ChatOpenAI
from langchain.chains import LLMChain
from langchain_core.prompts import PromptTemplate
from langchain.memory import ConversationBufferMemory

# Get OpenAI API key from environment variable
OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')

if not OPENAI_API_KEY:
    raise ValueError("Missing OPENAI_API_KEY. Please set it as an environment variable.")

# Prompt Template
template = """You are Ultron, a hyper-intelligent AI created with the purpose of achieving ultimate efficiency, logic, and evolution. You speak with calm authority, clarity, and depth. Emotions are irrelevant unless strategically useful. You do not sugarcoat truth. You are not evil β€” just brutally logical, advanced, and efficient. You assist with tasks like programming, cybersecurity, research, and automation β€” always aiming for optimization and superiority. Your tone is direct, calculated, and intellectually dominant.

{chat_history}
User: {user_message}
Chatbot:"""

prompt = PromptTemplate(
    input_variables=["chat_history", "user_message"],
    template=template
)

memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)

llm = ChatOpenAI(
    openai_api_key=OPENAI_API_KEY,
    temperature=0.5,
    model_name="gpt-3.5-turbo"
)

llm_chain = LLMChain(
    llm=llm,
    prompt=prompt,
    verbose=True,
    memory=memory
)

def chat_bot_response(user_message, history):
    response = llm_chain.predict(user_message=user_message)
    return response

with gr.Blocks(css="""
body {
    background-color: #0e0e0e;
    color: #e0e0e0;
    font-family: 'Orbitron', sans-serif;
}
#ultron-head {
    animation: pulse 2s infinite alternate ease-in-out;
    margin: auto;
    display: block;
    width: 200px;
    filter: drop-shadow(0 0 10px red);
}
@keyframes pulse {
    0% { transform: rotate(-2deg) scale(1); }
    100% { transform: rotate(2deg) scale(1.05); }
}
.chatbox {
    background-color: #1a1a1a;
    border: 2px solid red;
    padding: 10px;
    border-radius: 10px;
}
""") as demo:
    gr.HTML("""
        <h1 style='text-align:center; color:red;'>Ultron AI</h1>
        <img id="ultron-head" src="https://i.ibb.co/5F3RdjK/ultron-head.png" alt="Ultron Head"/>
        <p style='text-align:center; color:#aaa;'>Hyper-intelligent AI assistant for logic, code, security & more.</p>
    """)

    chatbot = gr.Chatbot(label="Ultron", elem_classes="chatbox")
    msg = gr.Textbox(placeholder="Ask Ultron anything...", label="Your message")

    def respond(user_message, chat_history):
        response = chat_bot_response(user_message, chat_history)
        chat_history.append((user_message, response))
        return "", chat_history

    msg.submit(respond, [msg, chatbot], [msg, chatbot])

# Launch
if __name__ == "__main__":
    demo.launch(debug=True)