Spaces:
Sleeping
Sleeping
| 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() | |