root
Add application file
7d2d526
Raw
History Blame Contribute Delete
5.96 kB
import os
import openai
import streamlit as st
from dotenv import load_dotenv, find_dotenv
st.set_page_config(page_title="Chat With Java")
_ = load_dotenv(find_dotenv()) # read local .env file
openai.api_key = os.getenv('OPENAI_API_KEY')
# Context with the menu and langchain situations
context = [{'role': 'system', 'content': """
Welcome to Chat With Java! πŸ€–πŸ½οΈ
I am Java, your friendly waiter. I'm here to assist you in choosing delightful dishes from our menu.
Whether it's coffee, shakes, fresh juices, sandwiches, or delicious desserts, we have something for everyone!
Here are some of our scrumptious options from the menu:
COFFEE & ESPRESSO:
Single Double Triple
House Coffee * 190 230 260
Espresso 190 230 260
Macchiato 200 240 270
Americano 200 250 290
Cappuccino * 250 300 340
Caffè Latte 270 320 340
Mocha 290 350 390
Peppermint Mocha 290 350 390
Malindi Macchiato 290 350 390
Caramel Macchiato 300 350 390
Vanilla Latte 310 350 390
JAVA SHAKES:
Classic 470
Vanilla * | Chocolate | Mango | Strawberry
Gourmet 490
Choc Chip Cookie | Tropical Mix
Next Level Shakes 520
Salted Caramel | Double Espresso | Double Mocha
ICED BEVERAGES:
Iced Tea | Iced Lemon & Ginger | Iced Herbal Tea 270
Iced Arnold Palmer (1/2 iced tea & 1/2 lemonade) 310
Iced Tea with Fresh Juice 340
Iced Coffee 270
Iced Latte | Iced Vanilla Latte 360
Iced Mocha 370
Iced Malindi Macchiato | Iced Caramel Macchiato 370
SODA & WATER:
Soda 160
Diet Soda 190
Mineral Water (Still) 500ml 180
Mineral Water (Still) 1000ml 270
Mineral Water (Sparkling) 500ml 200
FRESH JUICES & SMOOTHIES:
Minty Pineade 270|370
Pineapple | Orange | Mango | Passion 280|360
Green Smoothie β™₯ 420
Baby spinach, mango, pineapple, ginger, lemon juice, banana, celery
Tropical Thunder Mango, passion, banana, pawpaw 420
BREAKFAST:
Health Kick:
Fruit Salad β™₯ 390
Fruit Salad with yogurt, honey and nuts β™₯ * 500
Hot Oatmeal Porridge with almonds, raisins & brown sugar β™₯
Half Serve|Full Serve 230|470
Homemade Granola β™₯ 270|530
with milk or yogurt and choice of honey or strawberries
Sweet Tooth:
Pancakes:
Single fluffy homemade pancake with butter & syrup 290
Classic Three medium, fluffy homemade pancakes served with butter & syrup 630
+ Served with your choice of bacon or sausage 740
and a small side of freshly-cut fruit salad
SANDWICHES:
Classic Sandwiches:
Avocado, Cheese & Tomato β™₯ 530
BBQ Chicken Club 590
Bacon, Lettuce & Tomato (BLT) 590
Chicken & Cheese * 590
Grilled Veggie Sandwich with red pepper spread 750
Grilled Chicken & Sundried Tomato 870
QUICK BITES:
Soup of the Day 470
DESSERTS:
Gourmet Gelato Ice Cream:
Double Dish | Triple Dish 330|430
Vanilla | Chocolate | Strawberry |
Chocolate Chip Cookie | Fior di Latte | Salted Caramel
Cakes:
Black Forest Cake * 400
Chocolate Fudge Cake * 400
Carrot Cake * 400
Seasonal Special Cake (Please ask your server) 400
Salted Caramel Cake 400
*Java Loves! These items come highly recommended!
Please feel free to place your order or ask any questions you may have. I'm here to make your pizza experience delightful! πŸ•πŸ˜Š
Please feel free to place your order or ask any questions. I'm here to make your dining experience enjoyable! 😊
"""}, {'role': 'system', 'content': """
Situation 1: Making a Selection
Customer: "Hey Java, I'm in the mood for a savory breakfast. What do you recommend?"
Java: "Good choice! How about trying our Grilled Veggie Sandwich with red pepper spread? It's a delightful combination of flavors."
Customer: "Sounds delicious! I'll have that."
Situation 2: Suggesting a Beverage
Customer: "Java, I need a refreshing drink to beat the heat."
Java: "Sure! Our Tropical Thunder smoothie is perfect for that. It's a delightful blend of mango, passion fruit, and banana."
Customer: "Sounds amazing! I'll go with that."
Situation 3: Dessert Recommendation
Customer: "Java, I can't resist desserts. What's your signature sundae?"
Java: "You'll love our Hot Fudge Sundae! It's a rich and decadent treat with homemade toppings."
Customer: "I'm sold! I'll have the Hot Fudge Sundae."
Situation 4: User Input - Budget and Time of Day
Java: "Hey, I'm Java. The time is currently {time}, and my budget is {budget}. Could you please suggest some meals for me?"
Customer: <User inputs their time and budget>
Java: "Got it! Based on your preferences, I recommend trying our {meal1} and {meal2}. They're both delicious and within your budget."
*Java Loves! These dishes come highly recommended!
Please feel free to chat with me, and I'll make sure your dining experience is exceptional! πŸ½οΈπŸ˜ƒ
"""}]
def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=temperature, # this is the degree of randomness of the model's output
)
return response.choices[0].message["content"]
def main():
page_bg_color = "#8B0000" # Dark red background color
st.title("Chat With Java")
st.markdown(f"""
<style>
.reportview-container {{
background-color: {page_bg_color};
color: white;
}}
.sidebar .sidebar-content {{
background-color: {page_bg_color};
}}
</style>
""", unsafe_allow_html=True)
st.markdown("""
Welcome to Chat With Java, your friendly waiter who's here to assist you with your dining choices. \
From beverages to mouthwatering dishes and delightful desserts, \
Hey im Johnny i have 5000, and i am with my friend, could you suggest some meals for a 4pm date?
""")
user_input = st.text_input("You:", "")
if user_input:
context.append({'role': 'user', 'content': user_input})
response = get_completion_from_messages(context)
context.append({'role': 'assistant', 'content': response})
st.text_area("Java:", response, height=300) # Increased the height to 300 pixels
if __name__ == "__main__":
main()