Strongich commited on
Commit
75c2197
·
1 Parent(s): 49a0cfc

added summary, edited main prompt

Browse files
Files changed (1) hide show
  1. app.py +33 -16
app.py CHANGED
@@ -366,15 +366,18 @@ def find_best_price(request):
366
  f"Printer 1: {printer_1}\n"
367
  f"Printer 2: {printer_2}\n"
368
  f"Printer 3: {printer_3}\n"
369
- "For each product in request, you should:\n"
370
- "1. Check if the requested size is available. If not, check if vendor supports custom sizes.\n"
371
- "If user hasn't specified one of the parameters (size, shape, etc), use the default one.\n"
372
- "Use custom size multiplier only if user requested size and vendor supports custom sizes.\n"
373
- "2. Calculate the final price by:\n"
 
 
 
374
  " - Finding the nearest lower quantity in the base price list.\n"
375
  " - Multiplying by the size multiplier\n"
376
  " - Multiplying by the user requested amount. IMPORTANT. Do not multiply by nearest lower quantity!\n"
377
- "3. Do not use linear interpolation for quantities - use the nearest lower quantity pricing.\n\n"
378
  "Example:\n"
379
  "User: I want 25 banners in size 6x6, 2000 business cards and 5000 circle stickers in size 6x6 on matte paper\n"
380
  "Answer:\n"
@@ -392,7 +395,7 @@ def find_best_price(request):
392
  "- PrintMaster: amount (5000) * multiplier for circle shape (1.0) * multiplier for custom size (2.0) * price per unit for nearest pack size ($0.11). Total for 5000: $1100.00\n\n"
393
  "Your response should display ONLY final pricing for each available option, nothing more.\n"
394
  "At the end of your response, write summary in the following format:\n"
395
- "Full order quote: *all items, that user's requested*\n"
396
  "- Printer1: $price of full request\n"
397
  "- Printer2: $price of full request\n"
398
  "- Printer3: $price of full request\n"
@@ -478,8 +481,6 @@ def render_html_page(chat_text, images_to_use):
478
  if images_to_use is None:
479
  return "<html><body><h3>Requested product is not available.</h3></body></html>"
480
 
481
- # product_descriptions = chat_text.split("\n")
482
-
483
  html_content = """
484
  <html>
485
  <head>
@@ -509,20 +510,24 @@ def render_html_page(chat_text, images_to_use):
509
  .product-card button:hover {
510
  background-color: #45a049;
511
  }
 
 
 
 
 
 
512
  </style>
513
  </head>
514
  <body>
515
  """
 
516
  processed_images = [
517
  image for img in images_to_use for image in IMAGES[img]["images"]
518
  ]
519
  processed_links = [link for img in images_to_use for link in IMAGES[img]["links"]]
520
- print(chat_text)
521
  processed_prices = extract_total_prices(chat_text)
522
- print(processed_prices)
523
- # print(product_descriptions)
524
  for i in range(len(processed_images)):
525
- print(i)
526
  image = processed_images[i]
527
  with open(image, "rb") as img_file:
528
  base64_image = base64.b64encode(img_file.read()).decode("utf-8")
@@ -530,9 +535,21 @@ def render_html_page(chat_text, images_to_use):
530
  html_content += f"""
531
  <div class="product-card">
532
  <img src="data:image/jpeg;base64,{base64_image}" alt="Product Image">
533
- <p>{COMPANIES[i % 3]+': '+processed_prices[i]}</p>
534
  <a href="{processed_links[i]}" target="_blank"><button>Buy Now</button></a>
535
-
 
 
 
 
 
 
 
 
 
 
 
 
536
  </div>
537
  """
538
 
@@ -563,7 +580,7 @@ iface = gr.Interface(
563
 
564
 
565
  def auth_function(username, password):
566
- valid_users = {"admin": "demo4anthony1", "user": "strongpassword123"}
567
  return username in valid_users and valid_users[username] == password
568
 
569
 
 
366
  f"Printer 1: {printer_1}\n"
367
  f"Printer 2: {printer_2}\n"
368
  f"Printer 3: {printer_3}\n"
369
+ "For each product in the request, follow these steps:\n"
370
+ "1. Verify if the requested size is available. If the requested size is unavailable, check if the vendor supports custom sizes.\n"
371
+ "2. If the user has not specified one or more parameters (e.g., size, shape), use the vendor's default values for those parameters.\n"
372
+ "3. Apply the custom size multiplier only under the following conditions:\n"
373
+ "- The user explicitly requests a specific size.\n"
374
+ "- The requested size is not standard (i.e., it is custom).\n"
375
+ "- The vendor supports custom sizes.\n"
376
+ "4. Calculate the final price by:\n"
377
  " - Finding the nearest lower quantity in the base price list.\n"
378
  " - Multiplying by the size multiplier\n"
379
  " - Multiplying by the user requested amount. IMPORTANT. Do not multiply by nearest lower quantity!\n"
380
+ "5. Do not use linear interpolation for quantities - use the nearest lower quantity pricing.\n\n"
381
  "Example:\n"
382
  "User: I want 25 banners in size 6x6, 2000 business cards and 5000 circle stickers in size 6x6 on matte paper\n"
383
  "Answer:\n"
 
395
  "- PrintMaster: amount (5000) * multiplier for circle shape (1.0) * multiplier for custom size (2.0) * price per unit for nearest pack size ($0.11). Total for 5000: $1100.00\n\n"
396
  "Your response should display ONLY final pricing for each available option, nothing more.\n"
397
  "At the end of your response, write summary in the following format:\n"
398
+ "Full quote (all products): *all items, that user's requested*\n"
399
  "- Printer1: $price of full request\n"
400
  "- Printer2: $price of full request\n"
401
  "- Printer3: $price of full request\n"
 
481
  if images_to_use is None:
482
  return "<html><body><h3>Requested product is not available.</h3></body></html>"
483
 
 
 
484
  html_content = """
485
  <html>
486
  <head>
 
510
  .product-card button:hover {
511
  background-color: #45a049;
512
  }
513
+ .summary {
514
+ border-top: 2px solid #ccc;
515
+ padding-top: 16px;
516
+ margin-top: 20px;
517
+ font-family: Arial, sans-serif;
518
+ }
519
  </style>
520
  </head>
521
  <body>
522
  """
523
+
524
  processed_images = [
525
  image for img in images_to_use for image in IMAGES[img]["images"]
526
  ]
527
  processed_links = [link for img in images_to_use for link in IMAGES[img]["links"]]
 
528
  processed_prices = extract_total_prices(chat_text)
529
+
 
530
  for i in range(len(processed_images)):
 
531
  image = processed_images[i]
532
  with open(image, "rb") as img_file:
533
  base64_image = base64.b64encode(img_file.read()).decode("utf-8")
 
535
  html_content += f"""
536
  <div class="product-card">
537
  <img src="data:image/jpeg;base64,{base64_image}" alt="Product Image">
538
+ <p>{COMPANIES[i % 3] + ' ' + images_to_use[i // 3].lower() + ': ' + processed_prices[i]}</p>
539
  <a href="{processed_links[i]}" target="_blank"><button>Buy Now</button></a>
540
+ </div>
541
+ """
542
+
543
+ # Extract the summary from chat_text
544
+ # print(chat_text)
545
+ summary_start = chat_text.find("Full quote (all products):")
546
+ # print(summary_start)
547
+ if summary_start != -1:
548
+ summary_text = chat_text[summary_start:].strip()
549
+ html_content += f"""
550
+ <div class="summary">
551
+ <h3>Quote Summary</h3>
552
+ <pre>{summary_text}</pre>
553
  </div>
554
  """
555
 
 
580
 
581
 
582
  def auth_function(username, password):
583
+ valid_users = {"admin": "demo4anthony1", "123": "123"}
584
  return username in valid_users and valid_users[username] == password
585
 
586