thrag commited on
Commit
17b5ac6
1 Parent(s): 9d48963

Got working with checkboxes

Browse files
demo-tools-1.ipynb CHANGED
@@ -2,7 +2,7 @@
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
- "execution_count": 11,
6
  "metadata": {},
7
  "outputs": [
8
  {
@@ -40,7 +40,7 @@
40
  },
41
  {
42
  "cell_type": "code",
43
- "execution_count": 12,
44
  "metadata": {},
45
  "outputs": [],
46
  "source": [
@@ -91,9 +91,12 @@
91
  " \n",
92
  " soup = BeautifulSoup(html)\n",
93
  " script = soup.find_all(\"script\", {\"id\": \"allrecipes-schema_1-0\"})\n",
94
- " #print(f'script: {script}')\n",
 
 
95
  " \n",
96
  " recipeDict = json.loads(script[0].text)[0]\n",
 
97
  " print(recipeDict)\n",
98
  " remove_keys(recipeDict, ['review', 'image', 'mainEntityOfPage', 'publisher'])\n",
99
  " \n",
@@ -108,16 +111,6 @@
108
  "# print(x)"
109
  ]
110
  },
111
- {
112
- "cell_type": "code",
113
- "execution_count": 13,
114
- "metadata": {},
115
- "outputs": [],
116
- "source": [
117
- "# blah = requests.get('https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/').text\n",
118
- "# print(blah)"
119
- ]
120
- },
121
  {
122
  "cell_type": "markdown",
123
  "metadata": {},
@@ -127,7 +120,7 @@
127
  },
128
  {
129
  "cell_type": "code",
130
- "execution_count": 14,
131
  "metadata": {},
132
  "outputs": [],
133
  "source": [
@@ -167,7 +160,7 @@
167
  },
168
  {
169
  "cell_type": "code",
170
- "execution_count": 15,
171
  "metadata": {},
172
  "outputs": [],
173
  "source": [
@@ -179,14 +172,21 @@
179
  "def list_chicken_recipes(query: str): \n",
180
  " return chickenDishList\n",
181
  "\n",
182
- "list_chicken_recipes_tool = Tool(name='Chicken Recipes tool', func= list_chicken_recipes, description=\"This tools lists the available Chicken Recipes it returns a list of recipes with a TITLE and a URL where you can fetch the recipe.\")\n",
 
 
 
 
183
  "\n",
184
  "# Dessert functions\n",
185
  "def list_dessert_recipes(query: str): \n",
186
  " return dessertList\n",
187
  "\n",
188
  "list_dessert_recipes_tool = Tool(name='Dessert Recipes tool', func=list_dessert_recipes, \n",
189
- " description=\"This tools lists the available Dessert Recipes it returns a list of recipes with a TITLE and a URL where you can fetch the recipe.\")\n",
 
 
 
190
  "\n",
191
  "# Recipe fetcher functions\n",
192
  "def get_recipe(fully_qualified_url: str): \n",
@@ -195,18 +195,19 @@
195
  "get_recipe_as_json_tool = Tool(name='Get a Recipe tool', func=get_recipe, description=\"\"\"\n",
196
  " Useful for fetching a particular recipe by passing in a fully qualified url. \n",
197
  " It is important that the parameter to pass in must be a fully qualified url and nothing else. \n",
 
198
  " Parameter: \n",
199
  " url (str): A fully qualified URL, including the scheme (e.g., \"https://\").\n",
200
  " The tool uses the https://schema.org/Recipe format to store it's recipes. \n",
201
  " \"\"\")\n",
202
  "\n",
203
  "# Tool list\n",
204
- "tools = [list_chicken_recipes_tool, list_dessert_recipes_tool, get_recipe_as_json_tool]"
205
  ]
206
  },
207
  {
208
  "cell_type": "code",
209
- "execution_count": 16,
210
  "metadata": {},
211
  "outputs": [],
212
  "source": [
@@ -233,7 +234,7 @@
233
  },
234
  {
235
  "cell_type": "code",
236
- "execution_count": 17,
237
  "metadata": {},
238
  "outputs": [],
239
  "source": [
@@ -269,7 +270,7 @@
269
  },
270
  {
271
  "cell_type": "code",
272
- "execution_count": 18,
273
  "metadata": {},
274
  "outputs": [],
275
  "source": [
@@ -279,11 +280,29 @@
279
  "from langchain.chat_models import ChatOpenAI\n",
280
  "from langchain.load.dump import dumps\n",
281
  "\n",
282
- "def ask_query(model, apiKey, query):\n",
283
  " \n",
284
  " if len(apiKey) > 0:\n",
285
  " os.environ['OPENAI_API_KEY'] = apiKey\n",
286
  " \n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
  " print(model)\n",
288
  " \n",
289
  " # LLM \n",
@@ -297,9 +316,10 @@
297
  "\n",
298
  " # Show response \n",
299
  " stepsDict = json.loads(dumps(response[\"intermediate_steps\"], pretty=True))\n",
300
- " resp = 'Below are the steps the agent took to get to the Final Answer. \\n\"Thought\" is the LLMs internal dialogue, \\n\"Action\" is the tool it will use to fetch the next piece of information. \\n\"Action Input\" is the input it passes the tool to fetch this information. \\n\"Action Response\" is what was returned from the tool to the LLM at that given step. '\n",
301
  " resp += '\\n\\n'\n",
302
  " resp += 'Steps to solve answer using ReAct\\n'\n",
 
303
  " for i in range(len(stepsDict)):\n",
304
  " resp += '##########################################\\n'\n",
305
  " resp += f'Step: {i+1} of {len(stepsDict)}\\n'\n",
@@ -313,22 +333,6 @@
313
  " return resp"
314
  ]
315
  },
316
- {
317
- "cell_type": "code",
318
- "execution_count": 19,
319
- "metadata": {},
320
- "outputs": [],
321
- "source": [
322
- "# import re \n",
323
- "\n",
324
- "# #url = \"fetch url https://www.allrecipes.com/recipe/212498/easy-chicken-and-broccoli-alfredo/\"\n",
325
- "# url = '{ \"url\": \"https://www.allrecipes.com/recipe/235153/easy-baked-chicken-thighs/\" }'\n",
326
- "# url = 'https://www.allrecipes.com/recipe/235151/crispy-and-tender-baked-chicken-thighs/'\n",
327
- "\n",
328
- "# result = re.findall(r'(https?://\\S+)', url)\n",
329
- "# print(result)"
330
- ]
331
- },
332
  {
333
  "cell_type": "markdown",
334
  "metadata": {},
@@ -338,14 +342,14 @@
338
  },
339
  {
340
  "cell_type": "code",
341
- "execution_count": 20,
342
  "metadata": {},
343
  "outputs": [
344
  {
345
  "name": "stdout",
346
  "output_type": "stream",
347
  "text": [
348
- "Running on local URL: http://127.0.0.1:7861\n",
349
  "\n",
350
  "To create a public link, set `share=True` in `launch()`.\n"
351
  ]
@@ -353,7 +357,7 @@
353
  {
354
  "data": {
355
  "text/html": [
356
- "<div><iframe src=\"http://127.0.0.1:7861/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
357
  ],
358
  "text/plain": [
359
  "<IPython.core.display.HTML object>"
@@ -366,7 +370,7 @@
366
  "data": {
367
  "text/plain": []
368
  },
369
- "execution_count": 20,
370
  "metadata": {},
371
  "output_type": "execute_result"
372
  },
@@ -374,6 +378,34 @@
374
  "name": "stdout",
375
  "output_type": "stream",
376
  "text": [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
377
  "gpt-3.5-turbo\n",
378
  "\n",
379
  "\n",
@@ -381,1456 +413,66 @@
381
  "\u001b[32;1m\u001b[1;3mI need to find the first baked chicken recipe and retrieve its ingredients.\n",
382
  "Action: Chicken Recipes tool\n",
383
  "Action Input: None\u001b[0m\n",
384
- "Observation: \u001b[36;1m\u001b[1;3m['https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/', 'https://www.allrecipes.com/recipe/254877/roasted-spatchcocked-chicken-with-potatoes/', 'https://www.allrecipes.com/recipe/235153/easy-baked-chicken-thighs/', 'https://www.allrecipes.com/recipe/258878/crispy-baked-chicken-thighs/', 'https://www.allrecipes.com/recipe/235151/crispy-and-tender-baked-chicken-thighs/', 'https://www.allrecipes.com/recipe/233953/million-dollar-chicken/', 'https://www.allrecipes.com/recipe/70679/simple-whole-roasted-chicken/', 'https://www.allrecipes.com/recipe/214618/beer-can-chicken/', 'https://www.allrecipes.com/recipe/272858/air-fryer-chicken-thighs/', 'https://www.allrecipes.com/recipe/214478/happy-roast-chicken/']\u001b[0m\n",
385
- "Thought:\u001b[32;1m\u001b[1;3mI have a list of baked chicken recipes. I need to retrieve the first recipe and its ingredients.\n",
386
  "Action: Get a Recipe tool\n",
387
  "Action Input: 'https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/'\u001b[0m\n",
388
  "url: https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/\n",
389
- "script: [<script class=\"comp allrecipes-schema mntl-schema-unified\" id=\"allrecipes-schema_1-0\" type=\"application/ld+json\">\t\t\t\t\n",
390
- "[\n",
391
- "{\n",
392
- "\"@context\": \"http://schema.org\",\n",
393
- "\"@type\": [\"Recipe\"]\n",
394
- ",\"headline\": \"Crispy Roasted Chicken\"\n",
395
- ",\"datePublished\": \"2014-08-26T18:22:55.000-04:00\"\n",
396
- ",\"dateModified\": \"2023-01-30T04:44:54.000-05:00\"\n",
397
- ",\"author\": [\n",
398
- "{\"@type\": \"Person\"\n",
399
- ",\"name\": \"Doc Simonson\"\n",
400
- ",\"url\": \"https://www.allrecipes.com/cook/docsimonson\"\n",
401
- "}\n",
402
- "]\n",
403
- ",\"description\": \"This roasted half chicken is prepared Bavarian-style with spices and herbs, including caraway, sage, fennel, garlic, rosemary, coriander, and paprika.\"\n",
404
- ",\"image\": {\n",
405
- "\"@type\": \"ImageObject\",\n",
406
- "\"url\": \"https://www.allrecipes.com/thmb/8hPikquK0V2-_htLPpRIjIxjGi8=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/1000798-4e3d039417144434840824b5d5f5708c.jpg\",\n",
407
- "\"height\": 960,\n",
408
- "\"width\": 960\n",
409
- "}\n",
410
- ",\"publisher\": {\n",
411
- "\"@type\": \"Organization\",\n",
412
- "\"name\": \"Allrecipes\",\n",
413
- "\"url\": \"https://www.allrecipes.com\",\n",
414
- "\"logo\": {\n",
415
- "\"@type\": \"ImageObject\",\n",
416
- "\"url\": \"https://www.allrecipes.com/thmb/Z9lwz1y0B5aX-cemPiTgpn5YB0k=/112x112/filters:no_upscale():max_bytes(150000):strip_icc()/allrecipes_logo_schema-867c69d2999b439a9eba923a445ccfe3.png\",\n",
417
- "\"width\": 112,\n",
418
- "\"height\": 112\n",
419
- "},\n",
420
- "\"brand\": \"Allrecipes\"\n",
421
- ", \"publishingPrinciples\": \"https://www.allrecipes.com/about-us-6648102#toc-editorial-guidelines\"\n",
422
- ", \"sameAs\" : [\n",
423
- "\"https://www.facebook.com/allrecipes\",\n",
424
- "\"https://www.instagram.com/allrecipes/\",\n",
425
- "\"https://www.pinterest.com/allrecipes/\",\n",
426
- "\"https://www.tiktok.com/@allrecipes\",\n",
427
- "\"https://www.youtube.com/user/allrecipes/videos\",\n",
428
- "\"https://twitter.com/Allrecipes\",\n",
429
- "\"https://flipboard.com/@Allrecipes\",\n",
430
- "\"https://en.wikipedia.org/wiki/Allrecipes.com\",\n",
431
- "\"https://apps.apple.com/us/app/allrecipes-dinner-spinner/id299515267\",\n",
432
- "\"https://play.google.com/store/apps/details?id=com.allrecipes.spinner.free&hl=en_US&gl=US\",\n",
433
- "\"https://www.youtube.com/c/foodwishes\",\n",
434
- "\"https://www.linkedin.com/company/19312/admin/\"\n",
435
- "]\n",
436
- "}\n",
437
- ",\"name\": \"Crispy Roasted Chicken\"\n",
438
- ",\"aggregateRating\": {\n",
439
- "\"@type\": \"AggregateRating\",\n",
440
- "\"ratingValue\": \"4.7\",\n",
441
- "\"ratingCount\": \"134\"\n",
442
- "}\n",
443
- ",\"cookTime\": \"PT60M\"\n",
444
- ",\"nutrition\": {\n",
445
- "\"@type\": \"NutritionInformation\"\n",
446
- ",\"calories\": \"495 kcal\"\n",
447
- ",\"carbohydrateContent\": \"3 g\"\n",
448
- ",\"cholesterolContent\": \"129 mg\"\n",
449
- ",\"fiberContent\": \"1 g\"\n",
450
- ",\"proteinContent\": \"42 g\"\n",
451
- ",\"saturatedFatContent\": \"8 g\"\n",
452
- ",\"sodiumContent\": \"446 mg\"\n",
453
- ",\"sugarContent\": \"1 g\"\n",
454
- ",\"fatContent\": \"35 g\"\n",
455
- ",\"unsaturatedFatContent\": \"0 g\"\n",
456
- "}\n",
457
- ",\"prepTime\": \"PT20M\"\n",
458
- ", \"recipeCategory\": [\"Dinner\",\"Drink\"]\n",
459
- ",\"recipeCuisine\": [\"German\"]\n",
460
- ",\"recipeIngredient\": [\n",
461
- "\"1 teaspoon kosher salt\",\n",
462
- "\"0.5 teaspoon caraway seeds\",\n",
463
- "\"0.5 teaspoon dried sage\",\n",
464
- "\"0.25 teaspoon fennel seeds\",\n",
465
- "\"0.25 teaspoon coriander seeds\",\n",
466
- "\"0.25 teaspoon dried rosemary\",\n",
467
- "\"2 tablespoons paprika\",\n",
468
- "\"2 teaspoons garlic powder\",\n",
469
- "\"2 teaspoons all-purpose flour\",\n",
470
- "\"1 teaspoon onion powder\",\n",
471
- "\"5 tablespoons vegetable oil\",\n",
472
- "\"1 (4 pound) broiler-fryer chicken, cut in half lengthwise\" ]\n",
473
- ",\"recipeInstructions\": [\n",
474
- "{\n",
475
- "\"@type\": \"HowToStep\"\n",
476
- ",\"text\": \"Preheat the oven to 425 degrees F (220 degrees C).\"\n",
477
- "} ,{\n",
478
- "\"@type\": \"HowToStep\"\n",
479
- ",\"text\": \"Combine kosher salt, caraway, sage, fennel, coriander, and rosemary in a spice grinder or mortar. Grind to a coarse powder. Transfer spice mixture to a bowl; stir in paprika, garlic powder, flour, and onion powder. Mix in vegetable oil to make a smooth paste.\"\n",
480
- "} ,{\n",
481
- "\"@type\": \"HowToStep\"\n",
482
- ",\"text\": \"Pat chicken halves dry with paper towels and tuck wing tips behind the back. Brush spice paste onto chicken halves, coating all sides and seasoning under wings and legs. Place chicken halves, skin-sides up, in a baking dish or roasting pan, leaving space around chickens so halves aren&#39;t touching.\"\n",
483
- "} ,{\n",
484
- "\"@type\": \"HowToStep\"\n",
485
- ",\"text\": \"Roast in the preheated oven until no longer pink at the bone and the juices run clear, about 1 hour. An instant-read thermometer inserted into the thickest part of the thigh, near the bone, should read 165 degrees F (74 degrees C). Remove from the oven and let rest for 10 minutes before slicing.\"\n",
486
- "} ]\n",
487
- ",\"recipeYield\": [\"6\"]\n",
488
- ",\"totalTime\": \"PT90M\"\n",
489
- ",\"review\": [\n",
490
- "{\n",
491
- "\"@type\": \"Review\",\n",
492
- "\"reviewRating\": {\n",
493
- "\"@type\": \"Rating\",\n",
494
- "\"ratingValue\": \"5\"\n",
495
- "},\n",
496
- "\"author\": {\n",
497
- "\"@type\": \"Person\",\n",
498
- "\"name\": \"Allrecipes Member\"\n",
499
- "},\n",
500
- "\"reviewBody\": \"I've made this many times as per the recipe and it is a favorite. I've not had problems with the meat drying out. It's always moist. I make sure to get as far under the skin as possible when basting, not just on the surface.\"\n",
501
- "}\n",
502
- ",\n",
503
- "{\n",
504
- "\"@type\": \"Review\",\n",
505
- "\"reviewRating\": {\n",
506
- "\"@type\": \"Rating\",\n",
507
- "\"ratingValue\": \"5\"\n",
508
- "},\n",
509
- "\"author\": {\n",
510
- "\"@type\": \"Person\",\n",
511
- "\"name\": \"janc\"\n",
512
- "},\n",
513
- "\"reviewBody\": \"Fabulous, just fabulous. I see a lot of reviewers cook it on a lower heat. I was skeptical as well but did it at 425 degrees per recipe. I'll never cook chicken at a low heat again. No more 350 degrees for me!! Some say it was dry. You need to use a meat thermometer. Pull it out at 165 degrees. Don't take the cooking time literal as there are many factors involved, like size of chicken. These spices are just wonderful. I made it exactly as written and love it. I make it all the time. Use all of the spices, that's what makes this such a great recipe!\"\n",
514
- "}\n",
515
- ",\n",
516
- "{\n",
517
- "\"@type\": \"Review\",\n",
518
- "\"reviewRating\": {\n",
519
- "\"@type\": \"Rating\",\n",
520
- "\"ratingValue\": \"4\"\n",
521
- "},\n",
522
- "\"author\": {\n",
523
- "\"@type\": \"Person\",\n",
524
- "\"name\": \"Birdalone\"\n",
525
- "},\n",
526
- "\"reviewBody\": \"This was a big hit with my husband and kids, even my picky kid. I couldn't find caraway so I substituted a smaller amount of anise. It was great!\"\n",
527
- "}\n",
528
- ",\n",
529
- "{\n",
530
- "\"@type\": \"Review\",\n",
531
- "\"reviewRating\": {\n",
532
- "\"@type\": \"Rating\",\n",
533
- "\"ratingValue\": \"4\"\n",
534
- "},\n",
535
- "\"author\": {\n",
536
- "\"@type\": \"Person\",\n",
537
- "\"name\": \"Allrecipes Member\"\n",
538
- "},\n",
539
- "\"reviewBody\": \"This is a great recipe. I have tried it on a spatchcocked chicken and on turkey wings. I would double the spices. Maybe spread spread spices morning or evening. We place carrots and small peppers in with it the last 45 minute. And then mix in brown rice. Spice blend is excellent.\"\n",
540
- "}\n",
541
- ",\n",
542
- "{\n",
543
- "\"@type\": \"Review\",\n",
544
- "\"reviewRating\": {\n",
545
- "\"@type\": \"Rating\",\n",
546
- "\"ratingValue\": \"4\"\n",
547
- "},\n",
548
- "\"author\": {\n",
549
- "\"@type\": \"Person\",\n",
550
- "\"name\": \"Deane Karstaedt\"\n",
551
- "},\n",
552
- "\"reviewBody\": \"It was good, but I doubled up on the paste.\"\n",
553
- "}\n",
554
- ",\n",
555
- "{\n",
556
- "\"@type\": \"Review\",\n",
557
- "\"reviewRating\": {\n",
558
- "\"@type\": \"Rating\",\n",
559
- "\"ratingValue\": \"1\"\n",
560
- "},\n",
561
- "\"author\": {\n",
562
- "\"@type\": \"Person\",\n",
563
- "\"name\": \"theancientones2424\"\n",
564
- "},\n",
565
- "\"reviewBody\": \"Your Chicken is too dry\"\n",
566
- "}\n",
567
- ",\n",
568
- "{\n",
569
- "\"@type\": \"Review\",\n",
570
- "\"reviewRating\": {\n",
571
- "\"@type\": \"Rating\",\n",
572
- "\"ratingValue\": \"5\"\n",
573
- "},\n",
574
- "\"author\": {\n",
575
- "\"@type\": \"Person\",\n",
576
- "\"name\": \"jskoke09\"\n",
577
- "},\n",
578
- "\"reviewBody\": \"Cooked at 430* for 1 hr and 5 min on convection roast in an electric oven (because my gas oven is broken), sat for 10 mins, perfectly cooked and juicy, fall-off-the-bone dark meat and flavorful white meat. Love this recipe!\"\n",
579
- "}\n",
580
- ",\n",
581
- "{\n",
582
- "\"@type\": \"Review\",\n",
583
- "\"reviewRating\": {\n",
584
- "\"@type\": \"Rating\",\n",
585
- "\"ratingValue\": \"5\"\n",
586
- "},\n",
587
- "\"author\": {\n",
588
- "\"@type\": \"Person\",\n",
589
- "\"name\": \"mamamia28\"\n",
590
- "},\n",
591
- "\"reviewBody\": \"I had two 6LB whole chickens. Tripled the recipe and rubbed all over the whole chicken (didn't cut chicken in half). Roasted on a rack in a roasting pan at 450 for 15 mins. then 350 for 2 hours. The chicken was moist and so flavorful. Will definitely make again and you can use this spice rub on any cut of chicken.\"\n",
592
- "}\n",
593
- ",\n",
594
- "{\n",
595
- "\"@type\": \"Review\",\n",
596
- "\"reviewRating\": {\n",
597
- "\"@type\": \"Rating\",\n",
598
- "\"ratingValue\": \"5\"\n",
599
- "},\n",
600
- "\"author\": {\n",
601
- "\"@type\": \"Person\",\n",
602
- "\"name\": \"Leslie Maturin\"\n",
603
- "},\n",
604
- "\"reviewBody\": \"I’ve made this several times! Just as recommended! I do actually double the seasoning! I’ve used whole chicken and with split breasts. But you must use skin on!\"\n",
605
- "}\n",
606
- ",\n",
607
- "{\n",
608
- "\"@type\": \"Review\",\n",
609
- "\"reviewRating\": {\n",
610
- "\"@type\": \"Rating\",\n",
611
- "\"ratingValue\": \"5\"\n",
612
- "},\n",
613
- "\"author\": {\n",
614
- "\"@type\": \"Person\",\n",
615
- "\"name\": \"Daniela Miller\"\n",
616
- "},\n",
617
- "\"reviewBody\": \"I was born and raised in Bavaria and I have to say that this recipe is superb!!! It's the only way I make my whole fryer chicken now. YUMMY!\"\n",
618
- "}\n",
619
- ",\n",
620
- "{\n",
621
- "\"@type\": \"Review\",\n",
622
- "\"reviewRating\": {\n",
623
- "\"@type\": \"Rating\",\n",
624
- "\"ratingValue\": \"5\"\n",
625
- "},\n",
626
- "\"author\": {\n",
627
- "\"@type\": \"Person\",\n",
628
- "\"name\": \"Jlee\"\n",
629
- "},\n",
630
- "\"reviewBody\": \"It was delicious. Husband liked also. I didn't have a couple of the ingredients, so substituted. I did bake it longer, actually a lot longer, and lower temperature cause I was working in my flower gardens, and just wanted to get it in the oven. Almost 2 1/2 hours at 325 degrees, and it was so tender and good and would do that again. Crispy too.\"\n",
631
- "}\n",
632
- ",\n",
633
- "{\n",
634
- "\"@type\": \"Review\",\n",
635
- "\"reviewRating\": {\n",
636
- "\"@type\": \"Rating\",\n",
637
- "\"ratingValue\": \"4\"\n",
638
- "},\n",
639
- "\"author\": {\n",
640
- "\"@type\": \"Person\",\n",
641
- "\"name\": \"Nanci McFarland\"\n",
642
- "},\n",
643
- "\"reviewBody\": \"I used boneless chicken breasts and they were done in 20 minutes. I did not have any rosemary and did not pay attention to ratios of the spices. The flavor combo was good but really thickly concentrated on the top of the breast. I would probably use less the next time I make this.\"\n",
644
- "}\n",
645
- ",\n",
646
- "{\n",
647
- "\"@type\": \"Review\",\n",
648
- "\"reviewRating\": {\n",
649
- "\"@type\": \"Rating\",\n",
650
- "\"ratingValue\": \"5\"\n",
651
- "},\n",
652
- "\"author\": {\n",
653
- "\"@type\": \"Person\",\n",
654
- "\"name\": \"usjet333\"\n",
655
- "},\n",
656
- "\"reviewBody\": \"Outstanding recipe! This is the best tasting roast chicken I've ever made. The white meat was the most moist I've ever experienced, and the flavor was awesome. I didn't have the carraway, sage, or fennel, so I just substituted some tyme, oregano, and Italian seasoning, and it tasted great. This is the only recipe I'll use from now on when I roast chicken.\"\n",
657
- "}\n",
658
- ",\n",
659
- "{\n",
660
- "\"@type\": \"Review\",\n",
661
- "\"reviewRating\": {\n",
662
- "\"@type\": \"Rating\",\n",
663
- "\"ratingValue\": \"5\"\n",
664
- "},\n",
665
- "\"author\": {\n",
666
- "\"@type\": \"Person\",\n",
667
- "\"name\": \"Leah\"\n",
668
- "},\n",
669
- "\"reviewBody\": \"I thought it was very flavorful and moist. Turned out fantastic. I wouldn't change a thing. I did find out that I could of had the meat department split my chicken in half before I left the store. They told me best to use a kitchen scissors and cut to the side of the breast bone through the ribs. It worked ok.\"\n",
670
- "}\n",
671
- ",\n",
672
- "{\n",
673
- "\"@type\": \"Review\",\n",
674
- "\"reviewRating\": {\n",
675
- "\"@type\": \"Rating\",\n",
676
- "\"ratingValue\": \"5\"\n",
677
- "},\n",
678
- "\"author\": {\n",
679
- "\"@type\": \"Person\",\n",
680
- "\"name\": \"Nursetink\"\n",
681
- "},\n",
682
- "\"reviewBody\": \"crispy delicious skin. Very moist flavorful chicken\"\n",
683
- "}\n",
684
- ",\n",
685
- "{\n",
686
- "\"@type\": \"Review\",\n",
687
- "\"reviewRating\": {\n",
688
- "\"@type\": \"Rating\",\n",
689
- "\"ratingValue\": \"5\"\n",
690
- "},\n",
691
- "\"author\": {\n",
692
- "\"@type\": \"Person\",\n",
693
- "\"name\": \"Catherine Donohue\"\n",
694
- "},\n",
695
- "\"reviewBody\": \"We loved it! Made some changes to the spice rub to suit our tastes and what we had on hand, but I will definitely make it again and again.\"\n",
696
- "}\n",
697
- ",\n",
698
- "{\n",
699
- "\"@type\": \"Review\",\n",
700
- "\"reviewRating\": {\n",
701
- "\"@type\": \"Rating\",\n",
702
- "\"ratingValue\": \"5\"\n",
703
- "},\n",
704
- "\"author\": {\n",
705
- "\"@type\": \"Person\",\n",
706
- "\"name\": \"Melinda Markham Walker\"\n",
707
- "},\n",
708
- "\"reviewBody\": \"This was a fairly easy recipe that produced a moist and flavorful roasted chicken. When I make it again (which I definitely will!) I will omit the fennel seeds as I dislike them and they add no real value to the flavor. I might add some finely minced garlic to the paste since I do Iove garlic and think it will add more dimension to the taste. Overall, the roasted chicken was a delicious success.\"\n",
709
- "}\n",
710
- ",\n",
711
- "{\n",
712
- "\"@type\": \"Review\",\n",
713
- "\"reviewRating\": {\n",
714
- "\"@type\": \"Rating\",\n",
715
- "\"ratingValue\": \"5\"\n",
716
- "},\n",
717
- "\"author\": {\n",
718
- "\"@type\": \"Person\",\n",
719
- "\"name\": \"Daniel Garuti\"\n",
720
- "},\n",
721
- "\"reviewBody\": \"This recipe is very easy and delicious.\"\n",
722
- "}\n",
723
- ",\n",
724
- "{\n",
725
- "\"@type\": \"Review\",\n",
726
- "\"reviewRating\": {\n",
727
- "\"@type\": \"Rating\",\n",
728
- "\"ratingValue\": \"5\"\n",
729
- "},\n",
730
- "\"author\": {\n",
731
- "\"@type\": \"Person\",\n",
732
- "\"name\": \"Candy\"\n",
733
- "},\n",
734
- "\"reviewBody\": \"Delicious rub eventhough I didn't have all the spices listed..omitted the sage, rosemary and caraway seeds and it was still excellent. The chicken was moist, soft, tender and flavorful. I made the same rub and mixed it over baby new red potatoes and baked it separately. Yum...this is definitely a keeper, hands down.\"\n",
735
- "}\n",
736
- ",\n",
737
- "{\n",
738
- "\"@type\": \"Review\",\n",
739
- "\"reviewRating\": {\n",
740
- "\"@type\": \"Rating\",\n",
741
- "\"ratingValue\": \"5\"\n",
742
- "},\n",
743
- "\"author\": {\n",
744
- "\"@type\": \"Person\",\n",
745
- "\"name\": \"Ryan\"\n",
746
- "},\n",
747
- "\"reviewBody\": \"Loved it! Made a few changes. I substituted two fully cooked beef patties for the chicken. Instead of the roasting pan, I used two buns, one on either side of the meat. Instead of the spices listed I used mayo, mustard, cheese, tomato, pickle and lettuce. Instead of actually cooking anything I just placed my order at the drive thru at the fast food place. But I did read this recipe while I was eating the hamburger so there’s that.\"\n",
748
- "}\n",
749
- ",\n",
750
- "{\n",
751
- "\"@type\": \"Review\",\n",
752
- "\"reviewRating\": {\n",
753
- "\"@type\": \"Rating\",\n",
754
- "\"ratingValue\": \"5\"\n",
755
- "},\n",
756
- "\"author\": {\n",
757
- "\"@type\": \"Person\",\n",
758
- "\"name\": \"Cydney Bulger\"\n",
759
- "},\n",
760
- "\"reviewBody\": \"I have made many roast chicken recipes over the years, and this one stands above the rest. I made the recipe as written, and was very happy with result. This recipe will replace my go-to roast chicken recipe. Thank you for sharing this!\"\n",
761
- "}\n",
762
- ",\n",
763
- "{\n",
764
- "\"@type\": \"Review\",\n",
765
- "\"reviewRating\": {\n",
766
- "\"@type\": \"Rating\",\n",
767
- "\"ratingValue\": \"5\"\n",
768
- "},\n",
769
- "\"author\": {\n",
770
- "\"@type\": \"Person\",\n",
771
- "\"name\": \"Teresa Holden\"\n",
772
- "},\n",
773
- "\"reviewBody\": \"I made this using my Ronco “Set it and forget it” rotisserie cooker. I dry brined it with the seasonings (minus the oil) for approx. 4 hours. It came out amaaaazing! Thank you so much for this delicious recipe!\"\n",
774
- "}\n",
775
- ",\n",
776
- "{\n",
777
- "\"@type\": \"Review\",\n",
778
- "\"reviewRating\": {\n",
779
- "\"@type\": \"Rating\",\n",
780
- "\"ratingValue\": \"5\"\n",
781
- "},\n",
782
- "\"author\": {\n",
783
- "\"@type\": \"Person\",\n",
784
- "\"name\": \"Helen Ivanenko\"\n",
785
- "},\n",
786
- "\"reviewBody\": \"OMG, this was so good! I roasted the whole 4lb chicken using this recipe and cooked for 2 hrs at 350F. Definitely making this again and again\"\n",
787
- "}\n",
788
- ",\n",
789
- "{\n",
790
- "\"@type\": \"Review\",\n",
791
- "\"reviewRating\": {\n",
792
- "\"@type\": \"Rating\",\n",
793
- "\"ratingValue\": \"5\"\n",
794
- "},\n",
795
- "\"author\": {\n",
796
- "\"@type\": \"Person\",\n",
797
- "\"name\": \"Karri Holmes Butler\"\n",
798
- "},\n",
799
- "\"reviewBody\": \"So easy! So good!!\"\n",
800
- "}\n",
801
- ",\n",
802
- "{\n",
803
- "\"@type\": \"Review\",\n",
804
- "\"reviewRating\": {\n",
805
- "\"@type\": \"Rating\",\n",
806
- "\"ratingValue\": \"5\"\n",
807
- "},\n",
808
- "\"author\": {\n",
809
- "\"@type\": \"Person\",\n",
810
- "\"name\": \"Toni Carver\"\n",
811
- "},\n",
812
- "\"reviewBody\": \"This was fantastic. It was very juicy. The only thing I would try next time is cook it for 5 min. Less and then broil it to crisp the skin.\"\n",
813
- "}\n",
814
- ",\n",
815
- "{\n",
816
- "\"@type\": \"Review\",\n",
817
- "\"reviewRating\": {\n",
818
- "\"@type\": \"Rating\",\n",
819
- "\"ratingValue\": \"5\"\n",
820
- "},\n",
821
- "\"author\": {\n",
822
- "\"@type\": \"Person\",\n",
823
- "\"name\": \"OhioWolverine\"\n",
824
- "},\n",
825
- "\"reviewBody\": \"Update to my previous review... I really enjoyed the burst of fennel and caraway in each bite of the skin.\"\n",
826
- "}\n",
827
- ",\n",
828
- "{\n",
829
- "\"@type\": \"Review\",\n",
830
- "\"reviewRating\": {\n",
831
- "\"@type\": \"Rating\",\n",
832
- "\"ratingValue\": \"5\"\n",
833
- "},\n",
834
- "\"author\": {\n",
835
- "\"@type\": \"Person\",\n",
836
- "\"name\": \"Barb Sprague\"\n",
837
- "},\n",
838
- "\"reviewBody\": \"great recipe. followed the instructions and baked it in a cast iron skillet in the oven. tasty &amp; a keeper!\"\n",
839
- "}\n",
840
- ",\n",
841
- "{\n",
842
- "\"@type\": \"Review\",\n",
843
- "\"reviewRating\": {\n",
844
- "\"@type\": \"Rating\",\n",
845
- "\"ratingValue\": \"4\"\n",
846
- "},\n",
847
- "\"author\": {\n",
848
- "\"@type\": \"Person\",\n",
849
- "\"name\": \"BethK\"\n",
850
- "},\n",
851
- "\"reviewBody\": \"Delicious. Did not come out as crispy as indicated, and a thermometer got to 165F in a bit over 30 minutes - and I turned the oven down after 20 as the chicken was about to burn.\\n\\nNext time, I'll try baking it at 400F.\"\n",
852
- "}\n",
853
- ",\n",
854
- "{\n",
855
- "\"@type\": \"Review\",\n",
856
- "\"reviewRating\": {\n",
857
- "\"@type\": \"Rating\",\n",
858
- "\"ratingValue\": \"4\"\n",
859
- "},\n",
860
- "\"author\": {\n",
861
- "\"@type\": \"Person\",\n",
862
- "\"name\": \"nadiafrank\"\n",
863
- "},\n",
864
- "\"reviewBody\": \"The recipe turned out great, with the wonderful flavor. The reason I gave four stars is because the chicken wasn't quite done after one hour, it needed about another 15 minutes.\"\n",
865
- "}\n",
866
- ",\n",
867
- "{\n",
868
- "\"@type\": \"Review\",\n",
869
- "\"reviewRating\": {\n",
870
- "\"@type\": \"Rating\",\n",
871
- "\"ratingValue\": \"4\"\n",
872
- "},\n",
873
- "\"author\": {\n",
874
- "\"@type\": \"Person\",\n",
875
- "\"name\": \"car\"\n",
876
- "},\n",
877
- "\"reviewBody\": \"I guess I added a little too much spice and found I didn't need to cook as long. First time splatting a chicken so it was probably a bit over cooked\"\n",
878
- "}\n",
879
- ",\n",
880
- "{\n",
881
- "\"@type\": \"Review\",\n",
882
- "\"reviewRating\": {\n",
883
- "\"@type\": \"Rating\",\n",
884
- "\"ratingValue\": \"5\"\n",
885
- "},\n",
886
- "\"author\": {\n",
887
- "\"@type\": \"Person\",\n",
888
- "\"name\": \"Roni Schmidt\"\n",
889
- "},\n",
890
- "\"reviewBody\": \"I made this with skinless boneless chicken breasts. Cooked in a convection oven at 425 for 15 minutes. So juicy and tender and absolutely delicious. I had two large chicken breasts and halved everything in the recipe. Used 2 T vegetable oil.\"\n",
891
- "}\n",
892
- ",\n",
893
- "{\n",
894
- "\"@type\": \"Review\",\n",
895
- "\"reviewRating\": {\n",
896
- "\"@type\": \"Rating\",\n",
897
- "\"ratingValue\": \"5\"\n",
898
- "},\n",
899
- "\"author\": {\n",
900
- "\"@type\": \"Person\",\n",
901
- "\"name\": \"Traci\"\n",
902
- "},\n",
903
- "\"reviewBody\": \"Followed pretty much step by step but roasted red potatoes under the chicken. This recipe is amazing!\"\n",
904
- "}\n",
905
- ",\n",
906
- "{\n",
907
- "\"@type\": \"Review\",\n",
908
- "\"reviewRating\": {\n",
909
- "\"@type\": \"Rating\",\n",
910
- "\"ratingValue\": \"5\"\n",
911
- "},\n",
912
- "\"author\": {\n",
913
- "\"@type\": \"Person\",\n",
914
- "\"name\": \"Stephan Tuchman\"\n",
915
- "},\n",
916
- "\"reviewBody\": \"absolutely fabulous.....mixing spices is the biggest job. Into the oven for 1 hour and magic.....terrific and easy dish which your guests will love.\"\n",
917
- "}\n",
918
- ",\n",
919
- "{\n",
920
- "\"@type\": \"Review\",\n",
921
- "\"reviewRating\": {\n",
922
- "\"@type\": \"Rating\",\n",
923
- "\"ratingValue\": \"5\"\n",
924
- "},\n",
925
- "\"author\": {\n",
926
- "\"@type\": \"Person\",\n",
927
- "\"name\": \"DAVETRAY16\"\n",
928
- "},\n",
929
- "\"reviewBody\": \"Love this recipe! Chicken comes out juicy and delicious. We're excited to try this on ribs. Thanks for sharing!!\"\n",
930
- "}\n",
931
- ",\n",
932
- "{\n",
933
- "\"@type\": \"Review\",\n",
934
- "\"reviewRating\": {\n",
935
- "\"@type\": \"Rating\",\n",
936
- "\"ratingValue\": \"5\"\n",
937
- "},\n",
938
- "\"author\": {\n",
939
- "\"@type\": \"Person\",\n",
940
- "\"name\": \"Carol Reimer\"\n",
941
- "},\n",
942
- "\"reviewBody\": \"Great flavor &amp; texture. My husband loved it I roasted it in aluminum pan on the grill outdoors to avoid heating up the kitchen. The ingredients were a surprising taste treat. We buy whole chickens on sale &amp; freeze them in halves for just my husband &amp; I and this was an easy way to prepare with great crispy skin.\"\n",
943
- "}\n",
944
- ",\n",
945
- "{\n",
946
- "\"@type\": \"Review\",\n",
947
- "\"reviewRating\": {\n",
948
- "\"@type\": \"Rating\",\n",
949
- "\"ratingValue\": \"4\"\n",
950
- "},\n",
951
- "\"author\": {\n",
952
- "\"@type\": \"Person\",\n",
953
- "\"name\": \"Kevin\"\n",
954
- "},\n",
955
- "\"reviewBody\": \"Juicy and easy to make, but not as crispy as I want.\"\n",
956
- "}\n",
957
- ",\n",
958
- "{\n",
959
- "\"@type\": \"Review\",\n",
960
- "\"reviewRating\": {\n",
961
- "\"@type\": \"Rating\",\n",
962
- "\"ratingValue\": \"5\"\n",
963
- "},\n",
964
- "\"author\": {\n",
965
- "\"@type\": \"Person\",\n",
966
- "\"name\": \"Debra Ray\"\n",
967
- "},\n",
968
- "\"reviewBody\": \"It was moist and delicious. One of my favorites!\"\n",
969
- "}\n",
970
- ",\n",
971
- "{\n",
972
- "\"@type\": \"Review\",\n",
973
- "\"reviewRating\": {\n",
974
- "\"@type\": \"Rating\",\n",
975
- "\"ratingValue\": \"5\"\n",
976
- "},\n",
977
- "\"author\": {\n",
978
- "\"@type\": \"Person\",\n",
979
- "\"name\": \"Orlando A. Williams\"\n",
980
- "},\n",
981
- "\"reviewBody\": \"Other than varying the seasonings, the only semi-major change I did was to increase the amount of the coating. I will never again roast a whole chicken. I have used several variations of the season - spicy, heavy, BBQish etc - and every time come out with thoroughly cooked, moist chicken (I'm tempted to cut a turkey in half and see how that works out). This is forever my method to roast chickens.\"\n",
982
- "}\n",
983
- ",\n",
984
- "{\n",
985
- "\"@type\": \"Review\",\n",
986
- "\"reviewRating\": {\n",
987
- "\"@type\": \"Rating\",\n",
988
- "\"ratingValue\": \"5\"\n",
989
- "},\n",
990
- "\"author\": {\n",
991
- "\"@type\": \"Person\",\n",
992
- "\"name\": \"crystal\"\n",
993
- "},\n",
994
- "\"reviewBody\": \"My Husband and I just love this recipe and make it almost every week.\"\n",
995
- "}\n",
996
- ",\n",
997
- "{\n",
998
- "\"@type\": \"Review\",\n",
999
- "\"reviewRating\": {\n",
1000
- "\"@type\": \"Rating\",\n",
1001
- "\"ratingValue\": \"5\"\n",
1002
- "},\n",
1003
- "\"author\": {\n",
1004
- "\"@type\": \"Person\",\n",
1005
- "\"name\": \"Sunsetfam\"\n",
1006
- "},\n",
1007
- "\"reviewBody\": \"This was fantastic - i don‘t think my family will ever want anything but this when it comes to roast chicken. Used a whole chicken the first time i made it, then just thighs and drumsticks because they were on sale. a big winner either way. Also, I made a delicious gravy from the pan drippings with a simple flour slurry on the stovetop while the chicken rested. My kids and husband loved it. Will be a repeat for sure!\"\n",
1008
- "}\n",
1009
- ",\n",
1010
- "{\n",
1011
- "\"@type\": \"Review\",\n",
1012
- "\"reviewRating\": {\n",
1013
- "\"@type\": \"Rating\",\n",
1014
- "\"ratingValue\": \"5\"\n",
1015
- "},\n",
1016
- "\"author\": {\n",
1017
- "\"@type\": \"Person\",\n",
1018
- "\"name\": \"JULIAGULIA3\"\n",
1019
- "},\n",
1020
- "\"reviewBody\": \"Easy, flavorful, juicy, and delicious. My family loves this recipe. Highly, highly recommend.\"\n",
1021
- "}\n",
1022
- ",\n",
1023
- "{\n",
1024
- "\"@type\": \"Review\",\n",
1025
- "\"reviewRating\": {\n",
1026
- "\"@type\": \"Rating\",\n",
1027
- "\"ratingValue\": \"4\"\n",
1028
- "},\n",
1029
- "\"author\": {\n",
1030
- "\"@type\": \"Person\",\n",
1031
- "\"name\": \"Dawn Heaney Green\"\n",
1032
- "},\n",
1033
- "\"reviewBody\": \"Good base recipe. I liked the seasoning mixture, but there was too much oil - it was more of a liquid than a paste. I had a 5lb chicken and it only needed 45 min. cooking time. I'll definitely make this again, but may tweak the topping and cooking time.\"\n",
1034
- "}\n",
1035
- ",\n",
1036
- "{\n",
1037
- "\"@type\": \"Review\",\n",
1038
- "\"reviewRating\": {\n",
1039
- "\"@type\": \"Rating\",\n",
1040
- "\"ratingValue\": \"3\"\n",
1041
- "},\n",
1042
- "\"author\": {\n",
1043
- "\"@type\": \"Person\",\n",
1044
- "\"name\": \"colleenw\"\n",
1045
- "},\n",
1046
- "\"reviewBody\": \"This recipe did not seem to have much flavor. The amount of salt was only 1 tsp for a whole chicken and I thing that is the biggest reason for the lack of flavor even though there are many herps and spices to this recipe. Next time I think I will use a Tbsp of salt and see if that helps.\"\n",
1047
- "}\n",
1048
- ",\n",
1049
- "{\n",
1050
- "\"@type\": \"Review\",\n",
1051
- "\"reviewRating\": {\n",
1052
- "\"@type\": \"Rating\",\n",
1053
- "\"ratingValue\": \"5\"\n",
1054
- "},\n",
1055
- "\"author\": {\n",
1056
- "\"@type\": \"Person\",\n",
1057
- "\"name\": \"Brian Bauch\"\n",
1058
- "},\n",
1059
- "\"reviewBody\": \"The chicken was perfectly tender and moist with a crispy well seasoned skin. All around amazing!\"\n",
1060
- "}\n",
1061
- ",\n",
1062
- "{\n",
1063
- "\"@type\": \"Review\",\n",
1064
- "\"reviewRating\": {\n",
1065
- "\"@type\": \"Rating\",\n",
1066
- "\"ratingValue\": \"5\"\n",
1067
- "},\n",
1068
- "\"author\": {\n",
1069
- "\"@type\": \"Person\",\n",
1070
- "\"name\": \"Keith White\"\n",
1071
- "},\n",
1072
- "\"reviewBody\": \"Really tasty. I substituted the sage with parsley and added peppercorn. I wouldn't grind spices to finely either, a little bit of texture gives the chicken a little \\\"fried\\\" chicken vibe. Important, don't overcook it. I know this goes without saying but the moist chicken paired with the seasoning is key. Spoon some of the drippings over the chicken before serving.\"\n",
1073
- "}\n",
1074
- ",\n",
1075
- "{\n",
1076
- "\"@type\": \"Review\",\n",
1077
- "\"reviewRating\": {\n",
1078
- "\"@type\": \"Rating\",\n",
1079
- "\"ratingValue\": \"5\"\n",
1080
- "},\n",
1081
- "\"author\": {\n",
1082
- "\"@type\": \"Person\",\n",
1083
- "\"name\": \"Jenerfer Okarski\"\n",
1084
- "},\n",
1085
- "\"reviewBody\": \"I followed the recipe exactly except I did not have any coriander so I do not add any. After reading other reviews they said an hour of baking was too long. I checked the temperature of the chicken after 30 minutes. Then I checked it again another 15 minutes later. Chicken was at 165 so I pulled it out and tented it with foil to let it rest. My husband absolutely loved it along with my kids. It was so tender and Juicy and Delicious. I definitely wants to use this recipe again. My husband is usually the cook of the house. So I was worried that it was not going to meet his expectations. But it did!\"\n",
1086
- "}\n",
1087
- ",\n",
1088
- "{\n",
1089
- "\"@type\": \"Review\",\n",
1090
- "\"reviewRating\": {\n",
1091
- "\"@type\": \"Rating\",\n",
1092
- "\"ratingValue\": \"5\"\n",
1093
- "},\n",
1094
- "\"author\": {\n",
1095
- "\"@type\": \"Person\",\n",
1096
- "\"name\": \"martamohan\"\n",
1097
- "},\n",
1098
- "\"reviewBody\": \"Followed the recipe but only cooked a few pieces of chicken, fabulous and will make again\"\n",
1099
- "}\n",
1100
- ",\n",
1101
- "{\n",
1102
- "\"@type\": \"Review\",\n",
1103
- "\"reviewRating\": {\n",
1104
- "\"@type\": \"Rating\",\n",
1105
- "\"ratingValue\": \"5\"\n",
1106
- "},\n",
1107
- "\"author\": {\n",
1108
- "\"@type\": \"Person\",\n",
1109
- "\"name\": \"lindasinn\"\n",
1110
- "},\n",
1111
- "\"reviewBody\": \"Surprisingly I had all the spices! It was so moist and delicious I won't change anything. DH keeps asking if there is anything else I can put the spice mixture on and licking his fingers. First time he has ever raved about my roast chicken.\"\n",
1112
- "}\n",
1113
- ",\n",
1114
- "{\n",
1115
- "\"@type\": \"Review\",\n",
1116
- "\"reviewRating\": {\n",
1117
- "\"@type\": \"Rating\",\n",
1118
- "\"ratingValue\": \"5\"\n",
1119
- "},\n",
1120
- "\"author\": {\n",
1121
- "\"@type\": \"Person\",\n",
1122
- "\"name\": \"ransom_nf\"\n",
1123
- "},\n",
1124
- "\"reviewBody\": \"Turned out great. As I like spice I also added some siracha spice and African pili pili.\"\n",
1125
- "}\n",
1126
- ",\n",
1127
- "{\n",
1128
- "\"@type\": \"Review\",\n",
1129
- "\"reviewRating\": {\n",
1130
- "\"@type\": \"Rating\",\n",
1131
- "\"ratingValue\": \"4\"\n",
1132
- "},\n",
1133
- "\"author\": {\n",
1134
- "\"@type\": \"Person\",\n",
1135
- "\"name\": \"HERNAN\"\n",
1136
- "},\n",
1137
- "\"reviewBody\": \"Great flavor...suggest doubling down on ingredients to have enough rub for entire chicken.\"\n",
1138
- "}\n",
1139
- ",\n",
1140
- "{\n",
1141
- "\"@type\": \"Review\",\n",
1142
- "\"reviewRating\": {\n",
1143
- "\"@type\": \"Rating\",\n",
1144
- "\"ratingValue\": \"5\"\n",
1145
- "},\n",
1146
- "\"author\": {\n",
1147
- "\"@type\": \"Person\",\n",
1148
- "\"name\": \"Doug McClelland\"\n",
1149
- "},\n",
1150
- "\"reviewBody\": \"I didn't have the fennel seeds or onion powder, but otherwise I followed the recipe exactly. Delicious and juicy.\"\n",
1151
- "}\n",
1152
- ",\n",
1153
- "{\n",
1154
- "\"@type\": \"Review\",\n",
1155
- "\"reviewRating\": {\n",
1156
- "\"@type\": \"Rating\",\n",
1157
- "\"ratingValue\": \"5\"\n",
1158
- "},\n",
1159
- "\"author\": {\n",
1160
- "\"@type\": \"Person\",\n",
1161
- "\"name\": \"Kit-e-kat\"\n",
1162
- "},\n",
1163
- "\"reviewBody\": \"Fabulous! This tasted just like the roasted chicken in Bavarian Bier halls!\"\n",
1164
- "}\n",
1165
- ",\n",
1166
- "{\n",
1167
- "\"@type\": \"Review\",\n",
1168
- "\"reviewRating\": {\n",
1169
- "\"@type\": \"Rating\",\n",
1170
- "\"ratingValue\": \"3\"\n",
1171
- "},\n",
1172
- "\"author\": {\n",
1173
- "\"@type\": \"Person\",\n",
1174
- "\"name\": \"parndee\"\n",
1175
- "},\n",
1176
- "\"reviewBody\": \"The spice rub was pretty good. I used 1 tsp of garlic powder instead of two (and that was plenty of garlic for my taste). I used split chicken breasts and baked for 45 minutes. I would give this recipe 3.5 stars.\"\n",
1177
- "}\n",
1178
- ",\n",
1179
- "{\n",
1180
- "\"@type\": \"Review\",\n",
1181
- "\"reviewRating\": {\n",
1182
- "\"@type\": \"Rating\",\n",
1183
- "\"ratingValue\": \"5\"\n",
1184
- "},\n",
1185
- "\"author\": {\n",
1186
- "\"@type\": \"Person\",\n",
1187
- "\"name\": \"Audrey Noyb\"\n",
1188
- "},\n",
1189
- "\"reviewBody\": \"Made as written. Fabulous! Thanks for sharing.\"\n",
1190
- "}\n",
1191
- ",\n",
1192
- "{\n",
1193
- "\"@type\": \"Review\",\n",
1194
- "\"reviewRating\": {\n",
1195
- "\"@type\": \"Rating\",\n",
1196
- "\"ratingValue\": \"4\"\n",
1197
- "},\n",
1198
- "\"author\": {\n",
1199
- "\"@type\": \"Person\",\n",
1200
- "\"name\": \"Chris\"\n",
1201
- "},\n",
1202
- "\"reviewBody\": \"Cooked with slight alterations, quartered and de-boned the chicken before broiling, was popular with everyone. Can see making this again.\"\n",
1203
- "}\n",
1204
- ",\n",
1205
- "{\n",
1206
- "\"@type\": \"Review\",\n",
1207
- "\"reviewRating\": {\n",
1208
- "\"@type\": \"Rating\",\n",
1209
- "\"ratingValue\": \"4\"\n",
1210
- "},\n",
1211
- "\"author\": {\n",
1212
- "\"@type\": \"Person\",\n",
1213
- "\"name\": \"ldavido\"\n",
1214
- "},\n",
1215
- "\"reviewBody\": \"probably our 2nd favorite dry rub\"\n",
1216
- "}\n",
1217
- ",\n",
1218
- "{\n",
1219
- "\"@type\": \"Review\",\n",
1220
- "\"reviewRating\": {\n",
1221
- "\"@type\": \"Rating\",\n",
1222
- "\"ratingValue\": \"5\"\n",
1223
- "},\n",
1224
- "\"author\": {\n",
1225
- "\"@type\": \"Person\",\n",
1226
- "\"name\": \"Karen Lindower\"\n",
1227
- "},\n",
1228
- "\"reviewBody\": \"I made the recipe exactly as written and we loved it! I made gravy from the pan drippings by adding chicken broth and flour. The gravy was wonderful with flavor from the spice rub. Will put this recipe in rotation.\"\n",
1229
- "}\n",
1230
- ",\n",
1231
- "{\n",
1232
- "\"@type\": \"Review\",\n",
1233
- "\"reviewRating\": {\n",
1234
- "\"@type\": \"Rating\",\n",
1235
- "\"ratingValue\": \"5\"\n",
1236
- "},\n",
1237
- "\"author\": {\n",
1238
- "\"@type\": \"Person\",\n",
1239
- "\"name\": \"34sdad\"\n",
1240
- "},\n",
1241
- "\"reviewBody\": \"Followed directions except that I made it on barbeque. Sear both sides for 5 minutes or so. Indirect heat for an hour.\"\n",
1242
- "}\n",
1243
- ",\n",
1244
- "{\n",
1245
- "\"@type\": \"Review\",\n",
1246
- "\"reviewRating\": {\n",
1247
- "\"@type\": \"Rating\",\n",
1248
- "\"ratingValue\": \"5\"\n",
1249
- "},\n",
1250
- "\"author\": {\n",
1251
- "\"@type\": \"Person\",\n",
1252
- "\"name\": \"Alexis Johnson\"\n",
1253
- "},\n",
1254
- "\"reviewBody\": \"We loved this, didn't have the fennel and I didn't miss it. Used legs so cooking time wasn't as long, served with rice and glazed carrots and had a wonderful meal.\"\n",
1255
- "}\n",
1256
- ",\n",
1257
- "{\n",
1258
- "\"@type\": \"Review\",\n",
1259
- "\"reviewRating\": {\n",
1260
- "\"@type\": \"Rating\",\n",
1261
- "\"ratingValue\": \"5\"\n",
1262
- "},\n",
1263
- "\"author\": {\n",
1264
- "\"@type\": \"Person\",\n",
1265
- "\"name\": \"Arlene Byram Slobecheski\"\n",
1266
- "},\n",
1267
- "\"reviewBody\": \"OMG! This is just as I remember from living in Germany. The best recipe you could ever use for roast chicken.\"\n",
1268
- "}\n",
1269
- ",\n",
1270
- "{\n",
1271
- "\"@type\": \"Review\",\n",
1272
- "\"reviewRating\": {\n",
1273
- "\"@type\": \"Rating\",\n",
1274
- "\"ratingValue\": \"5\"\n",
1275
- "},\n",
1276
- "\"author\": {\n",
1277
- "\"@type\": \"Person\",\n",
1278
- "\"name\": \"Clayton Maricle\"\n",
1279
- "},\n",
1280
- "\"reviewBody\": \"Very moist and tender!\"\n",
1281
- "}\n",
1282
- ",\n",
1283
- "{\n",
1284
- "\"@type\": \"Review\",\n",
1285
- "\"reviewRating\": {\n",
1286
- "\"@type\": \"Rating\",\n",
1287
- "\"ratingValue\": \"5\"\n",
1288
- "},\n",
1289
- "\"author\": {\n",
1290
- "\"@type\": \"Person\",\n",
1291
- "\"name\": \"Teri\"\n",
1292
- "},\n",
1293
- "\"reviewBody\": \"I lowered the temp to 375 and baked for almost an hour and a half. It was perfectly done on the inside &amp; amazingly crispy on the outside!\"\n",
1294
- "}\n",
1295
- ",\n",
1296
- "{\n",
1297
- "\"@type\": \"Review\",\n",
1298
- "\"reviewRating\": {\n",
1299
- "\"@type\": \"Rating\",\n",
1300
- "\"ratingValue\": \"5\"\n",
1301
- "},\n",
1302
- "\"author\": {\n",
1303
- "\"@type\": \"Person\",\n",
1304
- "\"name\": \"ka me ka thee\"\n",
1305
- "},\n",
1306
- "\"reviewBody\": \"Seriously delicious. I used a spice grinder for the whole spices, but followed the recipe exactly aside from that. The meat was so moist and tender, and everyone loved the flavor. I will definitely be making this again and again. I may try making a pan gravy with the drippings next time for mashed potatoes.\"\n",
1307
- "}\n",
1308
- ",\n",
1309
- "{\n",
1310
- "\"@type\": \"Review\",\n",
1311
- "\"reviewRating\": {\n",
1312
- "\"@type\": \"Rating\",\n",
1313
- "\"ratingValue\": \"4\"\n",
1314
- "},\n",
1315
- "\"author\": {\n",
1316
- "\"@type\": \"Person\",\n",
1317
- "\"name\": \"Misterblutarsky\"\n",
1318
- "},\n",
1319
- "\"reviewBody\": \"I made the rub per the recipe. I did make it in an iron skillet with another skillet on top for quicker cooking. It turned out great!\"\n",
1320
- "}\n",
1321
- ",\n",
1322
- "{\n",
1323
- "\"@type\": \"Review\",\n",
1324
- "\"reviewRating\": {\n",
1325
- "\"@type\": \"Rating\",\n",
1326
- "\"ratingValue\": \"5\"\n",
1327
- "},\n",
1328
- "\"author\": {\n",
1329
- "\"@type\": \"Person\",\n",
1330
- "\"name\": \"DanaG\"\n",
1331
- "},\n",
1332
- "\"reviewBody\": \"Made this tonight for the first time and it was a huge hit! I didn't have caraway seeds, fennel, or coriander but I did use all the other spices mentioned. I also replaced the vegetable oil with olive oil which I prefer for health reasons. I basted the chicken throughout the cooking process. The breast meat turned out a little dry so next time I will take it out probably five minutes earlier. either way it turned out to be absolutely delicious and my husband asked me to put a regular rotation!\"\n",
1333
- "}\n",
1334
- ",\n",
1335
- "{\n",
1336
- "\"@type\": \"Review\",\n",
1337
- "\"reviewRating\": {\n",
1338
- "\"@type\": \"Rating\",\n",
1339
- "\"ratingValue\": \"5\"\n",
1340
- "},\n",
1341
- "\"author\": {\n",
1342
- "\"@type\": \"Person\",\n",
1343
- "\"name\": \"Marquita Cooper\"\n",
1344
- "},\n",
1345
- "\"reviewBody\": \"I loved this recipe pluses it was a different way of doing chicken for my family and they enjoyed it as especially my picky eater.\"\n",
1346
- "}\n",
1347
- ",\n",
1348
- "{\n",
1349
- "\"@type\": \"Review\",\n",
1350
- "\"reviewRating\": {\n",
1351
- "\"@type\": \"Rating\",\n",
1352
- "\"ratingValue\": \"5\"\n",
1353
- "},\n",
1354
- "\"author\": {\n",
1355
- "\"@type\": \"Person\",\n",
1356
- "\"name\": \"Mrs. Jones\"\n",
1357
- "},\n",
1358
- "\"reviewBody\": \"This is the BEST roasted chicken I have ever made... Only made a few adjustments... Used coconut oil instead of vegetable oil, garlic salt instead of kosher salt &amp; garlic powder, and minced onion instead of onion powder... Everything else as called for... The flavor was incredible and the meat was super juicy &amp; tender... I could have eaten the whole chicken all by myself... Yummm!!!!\"\n",
1359
- "}\n",
1360
- ",\n",
1361
- "{\n",
1362
- "\"@type\": \"Review\",\n",
1363
- "\"reviewRating\": {\n",
1364
- "\"@type\": \"Rating\",\n",
1365
- "\"ratingValue\": \"5\"\n",
1366
- "},\n",
1367
- "\"author\": {\n",
1368
- "\"@type\": \"Person\",\n",
1369
- "\"name\": \"HappyInTheKitchen\"\n",
1370
- "},\n",
1371
- "\"reviewBody\": \"This is a great spice combo. Delicious. Thanks for posting, Doc!\\n\\nI put the chickens in the oven breast-side down and roast for about 45? minutes or so. Turn over so the breast side is up, then another 45 or so (all depending on how many and how big are your chickens. I always do 2 at once to make good use of the energy expended). \\n\\nThis method seems to keep the white meat nice and moist.\\n\\nBon appetite!!\"\n",
1372
- "}\n",
1373
- ",\n",
1374
- "{\n",
1375
- "\"@type\": \"Review\",\n",
1376
- "\"reviewRating\": {\n",
1377
- "\"@type\": \"Rating\",\n",
1378
- "\"ratingValue\": \"4\"\n",
1379
- "},\n",
1380
- "\"author\": {\n",
1381
- "\"@type\": \"Person\",\n",
1382
- "\"name\": \"Larry Okumu\"\n",
1383
- "},\n",
1384
- "\"reviewBody\": \"Such an amazing taste.so good\"\n",
1385
- "}\n",
1386
- ",\n",
1387
- "{\n",
1388
- "\"@type\": \"Review\",\n",
1389
- "\"reviewRating\": {\n",
1390
- "\"@type\": \"Rating\",\n",
1391
- "\"ratingValue\": \"4\"\n",
1392
- "},\n",
1393
- "\"author\": {\n",
1394
- "\"@type\": \"Person\",\n",
1395
- "\"name\": \"Mikhael Ray Burton\"\n",
1396
- "},\n",
1397
- "\"reviewBody\": \"So good!\"\n",
1398
- "}\n",
1399
- ",\n",
1400
- "{\n",
1401
- "\"@type\": \"Review\",\n",
1402
- "\"reviewRating\": {\n",
1403
- "\"@type\": \"Rating\",\n",
1404
- "\"ratingValue\": \"5\"\n",
1405
- "},\n",
1406
- "\"author\": {\n",
1407
- "\"@type\": \"Person\",\n",
1408
- "\"name\": \"Lynn Quinlan\"\n",
1409
- "},\n",
1410
- "\"reviewBody\": \"One of the best things I've made from this site. But watch your cooking time. This recipe is for a 4 lb chicken. I used a 3lb chicken and should have only baked it for 45 minutes not an hour. It was a little dry but the flavor was outstanding!\"\n",
1411
- "}\n",
1412
- ",\n",
1413
- "{\n",
1414
- "\"@type\": \"Review\",\n",
1415
- "\"reviewRating\": {\n",
1416
- "\"@type\": \"Rating\",\n",
1417
- "\"ratingValue\": \"5\"\n",
1418
- "},\n",
1419
- "\"author\": {\n",
1420
- "\"@type\": \"Person\",\n",
1421
- "\"name\": \"HurdBird\"\n",
1422
- "},\n",
1423
- "\"reviewBody\": \"THE BEST CHICKEN I HAVE EVER HAD IN MY LIFE! I was completely 100% blown away by this recipe. I cannot wait to make it for the next boy that catches my eye. After eating this, he will certainly be mine!\"\n",
1424
- "}\n",
1425
- ",\n",
1426
- "{\n",
1427
- "\"@type\": \"Review\",\n",
1428
- "\"reviewRating\": {\n",
1429
- "\"@type\": \"Rating\",\n",
1430
- "\"ratingValue\": \"5\"\n",
1431
- "},\n",
1432
- "\"author\": {\n",
1433
- "\"@type\": \"Person\",\n",
1434
- "\"name\": \"Karen\"\n",
1435
- "},\n",
1436
- "\"reviewBody\": \"I've made this several times, initially as directed then subsequently different variations due to spices on-hand (or not on-hand). I've cooked the chicken both cut up and as a whole fryer, either way it has always been deliciously moist, and so flavorful! And as added bonuses, the carcass makes great stock and the left over chicken is wonderful in chicken wild rice soup. This recipe has become such a family favorite that two birds are always cooked in order to have left-overs!\"\n",
1437
- "}\n",
1438
- ",\n",
1439
- "{\n",
1440
- "\"@type\": \"Review\",\n",
1441
- "\"reviewRating\": {\n",
1442
- "\"@type\": \"Rating\",\n",
1443
- "\"ratingValue\": \"5\"\n",
1444
- "},\n",
1445
- "\"author\": {\n",
1446
- "\"@type\": \"Person\",\n",
1447
- "\"name\": \"margherite T\"\n",
1448
- "},\n",
1449
- "\"reviewBody\": \"Excellent! Chicken turned out tender &amp; very juicy. The herbs/spices were subtle, a wonderful tasty blend, next time I'll double them.\"\n",
1450
- "}\n",
1451
- ",\n",
1452
- "{\n",
1453
- "\"@type\": \"Review\",\n",
1454
- "\"reviewRating\": {\n",
1455
- "\"@type\": \"Rating\",\n",
1456
- "\"ratingValue\": \"5\"\n",
1457
- "},\n",
1458
- "\"author\": {\n",
1459
- "\"@type\": \"Person\",\n",
1460
- "\"name\": \"Amapelis\"\n",
1461
- "},\n",
1462
- "\"reviewBody\": \"Really awesome flavor, and have made this several times.\"\n",
1463
- "}\n",
1464
- ",\n",
1465
- "{\n",
1466
- "\"@type\": \"Review\",\n",
1467
- "\"reviewRating\": {\n",
1468
- "\"@type\": \"Rating\",\n",
1469
- "\"ratingValue\": \"3\"\n",
1470
- "},\n",
1471
- "\"author\": {\n",
1472
- "\"@type\": \"Person\",\n",
1473
- "\"name\": \"Andy House\"\n",
1474
- "},\n",
1475
- "\"reviewBody\": \"The spice rub is nice, but the cooking method isn't. The white meat will be WAY over cooked for that heat and time. Either (a) spatchcock the bird and remove when 160 (which will be ~15m earlier) (b) cut up the bird and test white meat around 30-40m and remove while dark meat finishes.\"\n",
1476
- "}\n",
1477
- ",\n",
1478
- "{\n",
1479
- "\"@type\": \"Review\",\n",
1480
- "\"reviewRating\": {\n",
1481
- "\"@type\": \"Rating\",\n",
1482
- "\"ratingValue\": \"5\"\n",
1483
- "},\n",
1484
- "\"author\": {\n",
1485
- "\"@type\": \"Person\",\n",
1486
- "\"name\": \"MO\"\n",
1487
- "},\n",
1488
- "\"reviewBody\": \"Mine didnt turn out really crispy but I really liked the spice mix and the meat was moist, if you don't plan on eating the skin make sure to rub some underneath the skin to get more flavor on the meat because it doesn't soak through much. I think im going to steal the spice mix for to make a similar rub for pork or something in my smoker bet it would go great with hickory.\"\n",
1489
- "}\n",
1490
- ",\n",
1491
- "{\n",
1492
- "\"@type\": \"Review\",\n",
1493
- "\"reviewRating\": {\n",
1494
- "\"@type\": \"Rating\",\n",
1495
- "\"ratingValue\": \"4\"\n",
1496
- "},\n",
1497
- "\"author\": {\n",
1498
- "\"@type\": \"Person\",\n",
1499
- "\"name\": \"Margot Groove\"\n",
1500
- "},\n",
1501
- "\"reviewBody\": \"Lots of flavor! I subbed out the flour with all purpose gluten free flower and that may be why it wasn't as crispy as I would have a liked. But, overall, delicious flavor, tender and juicy!\"\n",
1502
- "}\n",
1503
- ",\n",
1504
- "{\n",
1505
- "\"@type\": \"Review\",\n",
1506
- "\"reviewRating\": {\n",
1507
- "\"@type\": \"Rating\",\n",
1508
- "\"ratingValue\": \"5\"\n",
1509
- "},\n",
1510
- "\"author\": {\n",
1511
- "\"@type\": \"Person\",\n",
1512
- "\"name\": \"Janny\"\n",
1513
- "},\n",
1514
- "\"reviewBody\": \"Great flavor! Maybe I need to check my oven temp, but I had this in for 35 minutes at 400 degrees and it was done, so I'd watch the time and the temp. Worth the eagle eye, because this coating is wonderful!\"\n",
1515
- "}\n",
1516
- ",\n",
1517
- "{\n",
1518
- "\"@type\": \"Review\",\n",
1519
- "\"reviewRating\": {\n",
1520
- "\"@type\": \"Rating\",\n",
1521
- "\"ratingValue\": \"5\"\n",
1522
- "},\n",
1523
- "\"author\": {\n",
1524
- "\"@type\": \"Person\",\n",
1525
- "\"name\": \"Scott McClurg\"\n",
1526
- "},\n",
1527
- "\"reviewBody\": \"I followed this to the letter, worked great. Took a little less time in my oven but I didn't pay attention to the weight of the chicken first, seemed a tad small but it tastes amazing. I wouldn't change a thing.\"\n",
1528
- "}\n",
1529
- ",\n",
1530
- "{\n",
1531
- "\"@type\": \"Review\",\n",
1532
- "\"reviewRating\": {\n",
1533
- "\"@type\": \"Rating\",\n",
1534
- "\"ratingValue\": \"5\"\n",
1535
- "},\n",
1536
- "\"author\": {\n",
1537
- "\"@type\": \"Person\",\n",
1538
- "\"name\": \"Stephanie Moeller\"\n",
1539
- "},\n",
1540
- "\"reviewBody\": \"This was great!!! I just used spices I had on hand,I think it would work with about anything! Will make often. Thanks for a real keeper\"\n",
1541
- "}\n",
1542
- ",\n",
1543
- "{\n",
1544
- "\"@type\": \"Review\",\n",
1545
- "\"reviewRating\": {\n",
1546
- "\"@type\": \"Rating\",\n",
1547
- "\"ratingValue\": \"3\"\n",
1548
- "},\n",
1549
- "\"author\": {\n",
1550
- "\"@type\": \"Person\",\n",
1551
- "\"name\": \"Heide\"\n",
1552
- "},\n",
1553
- "\"reviewBody\": \"I feel the spice paste was too heavy on the paprika and way too many calories added with the oil. The texture on the baked skin was mealy (that's the best word I can find to describe it). Considering all the great reviews, we were disappointed. You should probably try it yourself at least once though. Lots of people love it.\"\n",
1554
- "}\n",
1555
- ",\n",
1556
- "{\n",
1557
- "\"@type\": \"Review\",\n",
1558
- "\"reviewRating\": {\n",
1559
- "\"@type\": \"Rating\",\n",
1560
- "\"ratingValue\": \"4\"\n",
1561
- "},\n",
1562
- "\"author\": {\n",
1563
- "\"@type\": \"Person\",\n",
1564
- "\"name\": \"Fran Thibodeau\"\n",
1565
- "},\n",
1566
- "\"reviewBody\": \"Very tasty. It didn't get crispy but the flavor more than made up for that. I'll definitely be making this again.\"\n",
1567
- "}\n",
1568
- ",\n",
1569
- "{\n",
1570
- "\"@type\": \"Review\",\n",
1571
- "\"reviewRating\": {\n",
1572
- "\"@type\": \"Rating\",\n",
1573
- "\"ratingValue\": \"5\"\n",
1574
- "},\n",
1575
- "\"author\": {\n",
1576
- "\"@type\": \"Person\",\n",
1577
- "\"name\": \"mag_cooks\"\n",
1578
- "},\n",
1579
- "\"reviewBody\": \"Chicken came out delicious and juicy. I did make a couple of changes to the recipe. I didn't cut the chickey in half and I added another teaspoon of salt. I cooked the chicken at the stated temperature for 45 minutesthen took the chicken out and poured its juices over it. After that I cooked the chicked for an additional 45 minutes.\"\n",
1580
- "}\n",
1581
- ",\n",
1582
- "{\n",
1583
- "\"@type\": \"Review\",\n",
1584
- "\"reviewRating\": {\n",
1585
- "\"@type\": \"Rating\",\n",
1586
- "\"ratingValue\": \"5\"\n",
1587
- "},\n",
1588
- "\"author\": {\n",
1589
- "\"@type\": \"Person\",\n",
1590
- "\"name\": \"pstevens22\"\n",
1591
- "},\n",
1592
- "\"reviewBody\": \"I followed the recipe exactly, except I didn't have any fennel or kosher salt so I used regular salt.\\n\\nCooked for 65 minutes. Took it out and let stand for five minutes then sat back and basked in the glow of the accolades. Definitely a keeper. I am going to mix up a batch of the powdered ingredients so I always have them on hand. Then prep time would be reduced to about 10 minutes...just mix in the veggy oil and spread it on the chicken halves. Normally we don't eat the skin on chickens but my wife couldn't resist, it looked and smelled so good. Scrumptious.\"\n",
1593
- "}\n",
1594
- ",\n",
1595
- "{\n",
1596
- "\"@type\": \"Review\",\n",
1597
- "\"reviewRating\": {\n",
1598
- "\"@type\": \"Rating\",\n",
1599
- "\"ratingValue\": \"5\"\n",
1600
- "},\n",
1601
- "\"author\": {\n",
1602
- "\"@type\": \"Person\",\n",
1603
- "\"name\": \"Marlene Taylor\"\n",
1604
- "},\n",
1605
- "\"reviewBody\": \"Used this for basic cooking time. Only made one half of a chicken (2 pounds) with salt and pepper. We roasted it in an 8 inch cast iron after cooking bacon. Excellent results!\"\n",
1606
- "}\n",
1607
- ",\n",
1608
- "{\n",
1609
- "\"@type\": \"Review\",\n",
1610
- "\"reviewRating\": {\n",
1611
- "\"@type\": \"Rating\",\n",
1612
- "\"ratingValue\": \"5\"\n",
1613
- "},\n",
1614
- "\"author\": {\n",
1615
- "\"@type\": \"Person\",\n",
1616
- "\"name\": \"angelface\"\n",
1617
- "},\n",
1618
- "\"reviewBody\": \"Tried this recipes and loved it. Put carrots, celery and parsnips around the edge of the chicken and they were cooked in the juices. Fabulous.\"\n",
1619
- "}\n",
1620
- ",\n",
1621
- "{\n",
1622
- "\"@type\": \"Review\",\n",
1623
- "\"reviewRating\": {\n",
1624
- "\"@type\": \"Rating\",\n",
1625
- "\"ratingValue\": \"5\"\n",
1626
- "},\n",
1627
- "\"author\": {\n",
1628
- "\"@type\": \"Person\",\n",
1629
- "\"name\": \"BOSSIER\"\n",
1630
- "},\n",
1631
- "\"reviewBody\": \"Best roast chicken! Juicy and flavorful throughout. I'm planning on doing my Thanksgiving turkey this way! Thanks for an awesome recipe :-)\"\n",
1632
- "}\n",
1633
- ",\n",
1634
- "{\n",
1635
- "\"@type\": \"Review\",\n",
1636
- "\"reviewRating\": {\n",
1637
- "\"@type\": \"Rating\",\n",
1638
- "\"ratingValue\": \"5\"\n",
1639
- "},\n",
1640
- "\"author\": {\n",
1641
- "\"@type\": \"Person\",\n",
1642
- "\"name\": \"Mrs. Cloud\"\n",
1643
- "},\n",
1644
- "\"reviewBody\": \"This is a quick, delicious recipe. The only thing I do differently is double the amount of salt. It is so good.\"\n",
1645
- "}\n",
1646
- ",\n",
1647
- "{\n",
1648
- "\"@type\": \"Review\",\n",
1649
- "\"reviewRating\": {\n",
1650
- "\"@type\": \"Rating\",\n",
1651
- "\"ratingValue\": \"5\"\n",
1652
- "},\n",
1653
- "\"author\": {\n",
1654
- "\"@type\": \"Person\",\n",
1655
- "\"name\": \"Faith N\"\n",
1656
- "},\n",
1657
- "\"reviewBody\": \"Yummy chicken, really enjoyed it!\"\n",
1658
- "}\n",
1659
- ",\n",
1660
- "{\n",
1661
- "\"@type\": \"Review\",\n",
1662
- "\"reviewRating\": {\n",
1663
- "\"@type\": \"Rating\",\n",
1664
- "\"ratingValue\": \"4\"\n",
1665
- "},\n",
1666
- "\"author\": {\n",
1667
- "\"@type\": \"Person\",\n",
1668
- "\"name\": \"Elaine Leithiser\"\n",
1669
- "},\n",
1670
- "\"reviewBody\": \"Spices were off I think it needs more paprika. Also, cooking was off too. It's hard to get the whole chicken done uniformly. Take out at 160 as it cooks out of the oven. It was over done.\"\n",
1671
- "}\n",
1672
- ",\n",
1673
- "{\n",
1674
- "\"@type\": \"Review\",\n",
1675
- "\"reviewRating\": {\n",
1676
- "\"@type\": \"Rating\",\n",
1677
- "\"ratingValue\": \"5\"\n",
1678
- "},\n",
1679
- "\"author\": {\n",
1680
- "\"@type\": \"Person\",\n",
1681
- "\"name\": \"GPCONLON\"\n",
1682
- "},\n",
1683
- "\"reviewBody\": \"I just logged on to save this to my recipe box. It was excellent. In reading a review about a gluten free version I realized I totally missed the flour in the recipe. It was still great! Thanks for sharing - and the spaetzle tip - perfect supper - all that could have made it better was having beer!\"\n",
1684
- "}\n",
1685
- ",\n",
1686
- "{\n",
1687
- "\"@type\": \"Review\",\n",
1688
- "\"reviewRating\": {\n",
1689
- "\"@type\": \"Rating\",\n",
1690
- "\"ratingValue\": \"5\"\n",
1691
- "},\n",
1692
- "\"author\": {\n",
1693
- "\"@type\": \"Person\",\n",
1694
- "\"name\": \"Jennifer Ingram\"\n",
1695
- "},\n",
1696
- "\"reviewBody\": \"delicious!\"\n",
1697
- "}\n",
1698
- ",\n",
1699
- "{\n",
1700
- "\"@type\": \"Review\",\n",
1701
- "\"reviewRating\": {\n",
1702
- "\"@type\": \"Rating\",\n",
1703
- "\"ratingValue\": \"5\"\n",
1704
- "},\n",
1705
- "\"author\": {\n",
1706
- "\"@type\": \"Person\",\n",
1707
- "\"name\": \"Jennifer Piel Welzenbach Taylo\"\n",
1708
- "},\n",
1709
- "\"reviewBody\": \"I followed this recipe exactly, with the exceptions of deciding to \\\"tent\\\" the chicken so it didn't get too brown and using a whole chicken.My family went nuts, it is honestly one of the very best recipes on this site. Excellent cold the next day too! Thanks a lot for a permanent addition to our dinner rotations!\"\n",
1710
- "}\n",
1711
- ",\n",
1712
- "{\n",
1713
- "\"@type\": \"Review\",\n",
1714
- "\"reviewRating\": {\n",
1715
- "\"@type\": \"Rating\",\n",
1716
- "\"ratingValue\": \"5\"\n",
1717
- "},\n",
1718
- "\"author\": {\n",
1719
- "\"@type\": \"Person\",\n",
1720
- "\"name\": \"csmitty111\"\n",
1721
- "},\n",
1722
- "\"reviewBody\": \"This combination of flavors is excellent. I was initially hesitant because of the combination of ingredients but it came out great! I adjusted the cooking technique a little bit, I cooked it on 250F for several hours and than broiled it at the end to get the crispness.\"\n",
1723
- "}\n",
1724
- ",\n",
1725
- "{\n",
1726
- "\"@type\": \"Review\",\n",
1727
- "\"reviewRating\": {\n",
1728
- "\"@type\": \"Rating\",\n",
1729
- "\"ratingValue\": \"3\"\n",
1730
- "},\n",
1731
- "\"author\": {\n",
1732
- "\"@type\": \"Person\",\n",
1733
- "\"name\": \"jeddie4444\"\n",
1734
- "},\n",
1735
- "\"reviewBody\": \"I followed this recipe exactly and I will say the seasoning blend was fabulous, I took it out of the oven when my thermometer beeped 165 and the white meat was very dry while the dark meat was perfect. I will make this again but with leg quarters only. Thank you for the recipe!\"\n",
1736
- "}\n",
1737
- ",\n",
1738
- "{\n",
1739
- "\"@type\": \"Review\",\n",
1740
- "\"reviewRating\": {\n",
1741
- "\"@type\": \"Rating\",\n",
1742
- "\"ratingValue\": \"5\"\n",
1743
- "},\n",
1744
- "\"author\": {\n",
1745
- "\"@type\": \"Person\",\n",
1746
- "\"name\": \"Jacquie\"\n",
1747
- "},\n",
1748
- "\"reviewBody\": \"BEST chicken marinade I've tried thus far on this site. Left out the oil since I'm watching fat intake &amp; did grilled chicken breasts instead. Flavor was FANTASTIC.\"\n",
1749
- "}\n",
1750
- ",\n",
1751
- "{\n",
1752
- "\"@type\": \"Review\",\n",
1753
- "\"reviewRating\": {\n",
1754
- "\"@type\": \"Rating\",\n",
1755
- "\"ratingValue\": \"5\"\n",
1756
- "},\n",
1757
- "\"author\": {\n",
1758
- "\"@type\": \"Person\",\n",
1759
- "\"name\": \"manjulam\"\n",
1760
- "},\n",
1761
- "\"reviewBody\": \"Just awesome!! I used chicken thighs instead of the whole chicken. Super easy and very flavorful. Didnt have sage but used all the other spices and added some cayenne pepper for some heat. 15 mins in a convection oven and it was ready to be devoured !!\"\n",
1762
- "}\n",
1763
- ",\n",
1764
- "{\n",
1765
- "\"@type\": \"Review\",\n",
1766
- "\"reviewRating\": {\n",
1767
- "\"@type\": \"Rating\",\n",
1768
- "\"ratingValue\": \"5\"\n",
1769
- "},\n",
1770
- "\"author\": {\n",
1771
- "\"@type\": \"Person\",\n",
1772
- "\"name\": \"Annie-Laurie Sheets Jankowski\"\n",
1773
- "},\n",
1774
- "\"reviewBody\": \"Very good and juicy! Only used the herbs that i normally do.. . .but love the method. Used salt, pepper, garlic, maybe a little Italian seasoning. Love that i finally have a surefire way to cook a chicken fast with a tasty result\"\n",
1775
- "}\n",
1776
- "]\n",
1777
- ",\"mainEntityOfPage\": {\n",
1778
- "\"@type\": [\"WebPage\"]\n",
1779
- ",\"@id\": \"https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/\"\n",
1780
- ",\"breadcrumb\": {\n",
1781
- "\"@type\": \"BreadcrumbList\",\n",
1782
- "\"itemListElement\": [\n",
1783
- "{\n",
1784
- "\"@type\": \"ListItem\",\n",
1785
- "\"position\": 1,\n",
1786
- "\"item\": {\n",
1787
- "\"@id\": \"https://www.allrecipes.com/recipes/231/world-cuisine/european/\",\n",
1788
- "\"name\": \"European\"\n",
1789
- "}\n",
1790
- "}\n",
1791
- ",\n",
1792
- "{\n",
1793
- "\"@type\": \"ListItem\",\n",
1794
- "\"position\": 2,\n",
1795
- "\"item\": {\n",
1796
- "\"@id\": \"https://www.allrecipes.com/recipes/722/world-cuisine/european/german/\",\n",
1797
- "\"name\": \"German\"\n",
1798
- "}\n",
1799
- "}\n",
1800
- ",\n",
1801
- "{\n",
1802
- "\"@type\": \"ListItem\",\n",
1803
- "\"position\": 3,\n",
1804
- "\"item\": {\n",
1805
- "\"@id\": \"https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/\",\n",
1806
- "\"name\": \"Crispy Roasted Chicken\"\n",
1807
- "}\n",
1808
- "}\n",
1809
- "]\n",
1810
- "}\n",
1811
- "}\n",
1812
- ", \"about\": [\n",
1813
- "]\n",
1814
- "}\n",
1815
- "]</script>]\n",
1816
  "\n",
1817
- "Observation: \u001b[38;5;200m\u001b[1;3m{'@context': 'http://schema.org', '@type': ['Recipe'], 'headline': 'Crispy Roasted Chicken', 'datePublished': '2014-08-26T18:22:55.000-04:00', 'dateModified': '2023-01-30T04:44:54.000-05:00', 'author': [{'@type': 'Person', 'name': 'Doc Simonson', 'url': 'https://www.allrecipes.com/cook/docsimonson'}], 'description': 'This roasted half chicken is prepared Bavarian-style with spices and herbs, including caraway, sage, fennel, garlic, rosemary, coriander, and paprika.', 'name': 'Crispy Roasted Chicken', 'aggregateRating': {'@type': 'AggregateRating', 'ratingValue': '4.7', 'ratingCount': '134'}, 'cookTime': 'PT60M', 'nutrition': {'@type': 'NutritionInformation', 'calories': '495 kcal', 'carbohydrateContent': '3 g', 'cholesterolContent': '129 mg', 'fiberContent': '1 g', 'proteinContent': '42 g', 'saturatedFatContent': '8 g', 'sodiumContent': '446 mg', 'sugarContent': '1 g', 'fatContent': '35 g', 'unsaturatedFatContent': '0 g'}, 'prepTime': 'PT20M', 'recipeCategory': ['Dinner', 'Drink'], 'recipeCuisine': ['German'], 'recipeIngredient': ['1 teaspoon kosher salt', '0.5 teaspoon caraway seeds', '0.5 teaspoon dried sage', '0.25 teaspoon fennel seeds', '0.25 teaspoon coriander seeds', '0.25 teaspoon dried rosemary', '2 tablespoons paprika', '2 teaspoons garlic powder', '2 teaspoons all-purpose flour', '1 teaspoon onion powder', '5 tablespoons vegetable oil', '1 (4 pound) broiler-fryer chicken, cut in half lengthwise'], 'recipeInstructions': [{'@type': 'HowToStep', 'text': 'Preheat the oven to 425 degrees F (220 degrees C).'}, {'@type': 'HowToStep', 'text': 'Combine kosher salt, caraway, sage, fennel, coriander, and rosemary in a spice grinder or mortar. Grind to a coarse powder. Transfer spice mixture to a bowl; stir in paprika, garlic powder, flour, and onion powder. Mix in vegetable oil to make a smooth paste.'}, {'@type': 'HowToStep', 'text': 'Pat chicken halves dry with paper towels and tuck wing tips behind the back. Brush spice paste onto chicken halves, coating all sides and seasoning under wings and legs. Place chicken halves, skin-sides up, in a baking dish or roasting pan, leaving space around chickens so halves aren&#39;t touching.'}, {'@type': 'HowToStep', 'text': 'Roast in the preheated oven until no longer pink at the bone and the juices run clear, about 1 hour. An instant-read thermometer inserted into the thickest part of the thigh, near the bone, should read 165 degrees F (74 degrees C). Remove from the oven and let rest for 10 minutes before slicing.'}], 'recipeYield': ['6'], 'totalTime': 'PT90M', 'about': []}\u001b[0m\n",
1818
- "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I have retrieved the first baked chicken recipe and its ingredients. I will now extract the ingredients.\n",
1819
- "Action: None`\u001b[0m\n",
1820
- "Observation: Check your output and make sure it conforms.\n",
1821
- "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I have retrieved the first baked chicken recipe and its ingredients. I will now extract the ingredients.\n",
1822
- "Action: None`\u001b[0m\n",
1823
- "Observation: Check your output and make sure it conforms.\n",
1824
- "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I have retrieved the first baked chicken recipe and its ingredients. I will now extract the ingredients.\n",
1825
- "Action: None`\u001b[0m\n",
1826
- "Observation: Check your output and make sure it conforms.\n",
1827
- "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I have retrieved the first baked chicken recipe and its ingredients. I will now extract the ingredients.\n",
1828
- "Action: None`\u001b[0m\n",
1829
- "Observation: Check your output and make sure it conforms.\n",
1830
- "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I have retrieved the first baked chicken recipe and its ingredients. I will now extract the ingredients.\n",
1831
- "Action: None`\u001b[0m\n",
1832
- "Observation: Check your output and make sure it conforms.\n",
1833
- "Thought:\u001b[32;1m\u001b[1;3m\u001b[0m\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1834
  "\n",
1835
  "\u001b[1m> Finished chain.\u001b[0m\n"
1836
  ]
@@ -1845,7 +487,8 @@
1845
  " with gr.Column():\n",
1846
  " modelDD = gr.Dropdown(['gpt-3.5-turbo', 'gpt-4'], value='gpt-3.5-turbo')\n",
1847
  " openAIKey = gr.Textbox(placeholder=\"Paste your OpenAI API Key Here\", label=\"OpenAI API Key\") \n",
1848
- " inp = gr.Textbox(placeholder=\"Type your question here...\", label=\"Question\") \n",
 
1849
  " btn = gr.Button(\"Run\") \n",
1850
  " examples = [\"Can you show tell me what ingredients I need for the first baked chicken recipe?\",\n",
1851
  " \"I have 15 guests coming to visit, if I make the 'Chocolate Snack Cake' recipe will there be enough? \",\n",
@@ -1860,10 +503,11 @@
1860
  " ] \n",
1861
  " gr.Examples(examples, [inp])\n",
1862
  " \n",
 
1863
  " with gr.Column():\n",
1864
  " out = gr.TextArea(label=\"ReAct Answer\", placeholder=\"The answer will go here...\")\n",
1865
  " \n",
1866
- " btn.click(fn=ask_query, inputs=[modelDD, openAIKey, inp], outputs=out)\n",
1867
  " \n",
1868
  "demo.launch(show_error=True)"
1869
  ]
 
2
  "cells": [
3
  {
4
  "cell_type": "code",
5
+ "execution_count": 78,
6
  "metadata": {},
7
  "outputs": [
8
  {
 
40
  },
41
  {
42
  "cell_type": "code",
43
+ "execution_count": 79,
44
  "metadata": {},
45
  "outputs": [],
46
  "source": [
 
91
  " \n",
92
  " soup = BeautifulSoup(html)\n",
93
  " script = soup.find_all(\"script\", {\"id\": \"allrecipes-schema_1-0\"})\n",
94
+ "\n",
95
+ " if len(script) == 0: \n",
96
+ " return \"No recipe found.\"\n",
97
  " \n",
98
  " recipeDict = json.loads(script[0].text)[0]\n",
99
+ " print(type(recipeDict))\n",
100
  " print(recipeDict)\n",
101
  " remove_keys(recipeDict, ['review', 'image', 'mainEntityOfPage', 'publisher'])\n",
102
  " \n",
 
111
  "# print(x)"
112
  ]
113
  },
 
 
 
 
 
 
 
 
 
 
114
  {
115
  "cell_type": "markdown",
116
  "metadata": {},
 
120
  },
121
  {
122
  "cell_type": "code",
123
+ "execution_count": 80,
124
  "metadata": {},
125
  "outputs": [],
126
  "source": [
 
160
  },
161
  {
162
  "cell_type": "code",
163
+ "execution_count": 81,
164
  "metadata": {},
165
  "outputs": [],
166
  "source": [
 
172
  "def list_chicken_recipes(query: str): \n",
173
  " return chickenDishList\n",
174
  "\n",
175
+ "list_chicken_recipes_tool = Tool(name='Chicken Recipes tool', func= list_chicken_recipes, \n",
176
+ " description=\"\"\"\n",
177
+ " This tools lists the available Chicken Recipes. \n",
178
+ " Only call this tool to fetch Chicken recipes. \n",
179
+ " \"\"\")\n",
180
  "\n",
181
  "# Dessert functions\n",
182
  "def list_dessert_recipes(query: str): \n",
183
  " return dessertList\n",
184
  "\n",
185
  "list_dessert_recipes_tool = Tool(name='Dessert Recipes tool', func=list_dessert_recipes, \n",
186
+ "description=\"\"\" \n",
187
+ " This tools lists the available Dessert Recipes.\n",
188
+ " Only call this tool for fetching Dessert Recipes.\n",
189
+ " \"\"\")\n",
190
  "\n",
191
  "# Recipe fetcher functions\n",
192
  "def get_recipe(fully_qualified_url: str): \n",
 
195
  "get_recipe_as_json_tool = Tool(name='Get a Recipe tool', func=get_recipe, description=\"\"\"\n",
196
  " Useful for fetching a particular recipe by passing in a fully qualified url. \n",
197
  " It is important that the parameter to pass in must be a fully qualified url and nothing else. \n",
198
+ " Don't call this function unless you have fetched a url from one of the other Tools first.\n",
199
  " Parameter: \n",
200
  " url (str): A fully qualified URL, including the scheme (e.g., \"https://\").\n",
201
  " The tool uses the https://schema.org/Recipe format to store it's recipes. \n",
202
  " \"\"\")\n",
203
  "\n",
204
  "# Tool list\n",
205
+ "#tools = [list_chicken_recipes_tool, list_dessert_recipes_tool, get_recipe_as_json_tool]"
206
  ]
207
  },
208
  {
209
  "cell_type": "code",
210
+ "execution_count": 82,
211
  "metadata": {},
212
  "outputs": [],
213
  "source": [
 
234
  },
235
  {
236
  "cell_type": "code",
237
+ "execution_count": 83,
238
  "metadata": {},
239
  "outputs": [],
240
  "source": [
 
270
  },
271
  {
272
  "cell_type": "code",
273
+ "execution_count": 89,
274
  "metadata": {},
275
  "outputs": [],
276
  "source": [
 
280
  "from langchain.chat_models import ChatOpenAI\n",
281
  "from langchain.load.dump import dumps\n",
282
  "\n",
283
+ "def ask_query(model, apiKey, query, accessList):\n",
284
  " \n",
285
  " if len(apiKey) > 0:\n",
286
  " os.environ['OPENAI_API_KEY'] = apiKey\n",
287
  " \n",
288
+ " #tools = [list_chicken_recipes_tool, list_dessert_recipes_tool, get_recipe_as_json_tool]\n",
289
+ " if len(accessList) == 0:\n",
290
+ " return \"Please select at least one recipe list from the Access List\"\n",
291
+ " \n",
292
+ " tools = [get_recipe_as_json_tool]\n",
293
+ " if \"Chicken recipes\" in accessList:\n",
294
+ " tools.append(list_chicken_recipes_tool)\n",
295
+ " \n",
296
+ " if \"Desert recipes\" in accessList:\n",
297
+ " tools.append(list_dessert_recipes_tool)\n",
298
+ " \n",
299
+ " print(len(accessList))\n",
300
+ " accessListMsg = ''\n",
301
+ " for i in accessList: \n",
302
+ " print(i)\n",
303
+ " accessListMsg += f'{i},'\n",
304
+ " \n",
305
+ " print(query)\n",
306
  " print(model)\n",
307
  " \n",
308
  " # LLM \n",
 
316
  "\n",
317
  " # Show response \n",
318
  " stepsDict = json.loads(dumps(response[\"intermediate_steps\"], pretty=True))\n",
319
+ " resp = 'Below are the steps the agent took to get to the Final Answer. \\n\"Thought\" is the LLMs internal dialogue, \\n\"Action\" is the tool it will use to fetch the next piece of information. \\n\"Action Input\" is the input it passes the tool to fetch this information. \\n\"Action Response\" is what was returned from the tool to the LLM at that given step.' \n",
320
  " resp += '\\n\\n'\n",
321
  " resp += 'Steps to solve answer using ReAct\\n'\n",
322
+ " resp += 'You have access to the following recipe lists: \\n' + accessListMsg\n",
323
  " for i in range(len(stepsDict)):\n",
324
  " resp += '##########################################\\n'\n",
325
  " resp += f'Step: {i+1} of {len(stepsDict)}\\n'\n",
 
333
  " return resp"
334
  ]
335
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
336
  {
337
  "cell_type": "markdown",
338
  "metadata": {},
 
342
  },
343
  {
344
  "cell_type": "code",
345
+ "execution_count": 90,
346
  "metadata": {},
347
  "outputs": [
348
  {
349
  "name": "stdout",
350
  "output_type": "stream",
351
  "text": [
352
+ "Running on local URL: http://127.0.0.1:7885\n",
353
  "\n",
354
  "To create a public link, set `share=True` in `launch()`.\n"
355
  ]
 
357
  {
358
  "data": {
359
  "text/html": [
360
+ "<div><iframe src=\"http://127.0.0.1:7885/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
361
  ],
362
  "text/plain": [
363
  "<IPython.core.display.HTML object>"
 
370
  "data": {
371
  "text/plain": []
372
  },
373
+ "execution_count": 90,
374
  "metadata": {},
375
  "output_type": "execute_result"
376
  },
 
378
  "name": "stdout",
379
  "output_type": "stream",
380
  "text": [
381
+ "1\n",
382
+ "Desert recipes\n",
383
+ "Can you show tell me what ingredients I need for the first baked chicken recipe?\n",
384
+ "gpt-3.5-turbo\n",
385
+ "\n",
386
+ "\n",
387
+ "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n",
388
+ "\u001b[32;1m\u001b[1;3mI need to find the recipe for the first baked chicken recipe and retrieve its ingredients.\n",
389
+ "Action: Get a Recipe tool\n",
390
+ "Action Input: url = \"https://www.example.com/recipes/baked-chicken\"\u001b[0m\n",
391
+ "url: https://www.example.com/recipes/baked-chicken\n",
392
+ "\n",
393
+ "Observation: \u001b[36;1m\u001b[1;3mNo recipe found.\u001b[0m\n",
394
+ "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I don't have the recipe for the first baked chicken recipe.`\u001b[0m\n",
395
+ "Observation: Check your output and make sure it conforms.\n",
396
+ "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I don't have the recipe for the first baked chicken recipe.`\u001b[0m\n",
397
+ "Observation: Check your output and make sure it conforms.\n",
398
+ "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I don't have the recipe for the first baked chicken recipe.`\u001b[0m\n",
399
+ "Observation: Check your output and make sure it conforms.\n",
400
+ "Thought:\u001b[32;1m\u001b[1;3mCould not parse LLM output: `I don't have the recipe for the first baked chicken recipe.`\u001b[0m\n",
401
+ "Observation: Check your output and make sure it conforms.\n",
402
+ "Thought:\u001b[32;1m\u001b[1;3mI now know the final answer\n",
403
+ "Final Answer: I don't have the recipe for the first baked chicken recipe.\u001b[0m\n",
404
+ "\n",
405
+ "\u001b[1m> Finished chain.\u001b[0m\n",
406
+ "1\n",
407
+ "Chicken recipes\n",
408
+ "Can you show tell me what ingredients I need for the first baked chicken recipe?\n",
409
  "gpt-3.5-turbo\n",
410
  "\n",
411
  "\n",
 
413
  "\u001b[32;1m\u001b[1;3mI need to find the first baked chicken recipe and retrieve its ingredients.\n",
414
  "Action: Chicken Recipes tool\n",
415
  "Action Input: None\u001b[0m\n",
416
+ "Observation: \u001b[33;1m\u001b[1;3m['https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/', 'https://www.allrecipes.com/recipe/254877/roasted-spatchcocked-chicken-with-potatoes/', 'https://www.allrecipes.com/recipe/235153/easy-baked-chicken-thighs/', 'https://www.allrecipes.com/recipe/258878/crispy-baked-chicken-thighs/', 'https://www.allrecipes.com/recipe/235151/crispy-and-tender-baked-chicken-thighs/', 'https://www.allrecipes.com/recipe/233953/million-dollar-chicken/', 'https://www.allrecipes.com/recipe/70679/simple-whole-roasted-chicken/', 'https://www.allrecipes.com/recipe/214618/beer-can-chicken/', 'https://www.allrecipes.com/recipe/272858/air-fryer-chicken-thighs/', 'https://www.allrecipes.com/recipe/214478/happy-roast-chicken/']\u001b[0m\n",
417
+ "Thought:\u001b[32;1m\u001b[1;3mI have a list of chicken recipes. I need to fetch the first one and retrieve its ingredients.\n",
418
  "Action: Get a Recipe tool\n",
419
  "Action Input: 'https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/'\u001b[0m\n",
420
  "url: https://www.allrecipes.com/recipe/228363/crispy-roasted-chicken/\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
421
  "\n",
422
+ "Observation: \u001b[36;1m\u001b[1;3m{'@context': 'http://schema.org', '@type': ['Recipe'], 'headline': 'Crispy Roasted Chicken', 'datePublished': '2014-08-26T18:22:55.000-04:00', 'dateModified': '2023-01-30T04:44:54.000-05:00', 'author': [{'@type': 'Person', 'name': 'Doc Simonson', 'url': 'https://www.allrecipes.com/cook/docsimonson'}], 'description': 'This roasted half chicken is prepared Bavarian-style with spices and herbs, including caraway, sage, fennel, garlic, rosemary, coriander, and paprika.', 'name': 'Crispy Roasted Chicken', 'aggregateRating': {'@type': 'AggregateRating', 'ratingValue': '4.7', 'ratingCount': '134'}, 'cookTime': 'PT60M', 'nutrition': {'@type': 'NutritionInformation', 'calories': '495 kcal', 'carbohydrateContent': '3 g', 'cholesterolContent': '129 mg', 'fiberContent': '1 g', 'proteinContent': '42 g', 'saturatedFatContent': '8 g', 'sodiumContent': '446 mg', 'sugarContent': '1 g', 'fatContent': '35 g', 'unsaturatedFatContent': '0 g'}, 'prepTime': 'PT20M', 'recipeCategory': ['Dinner', 'Drink'], 'recipeCuisine': ['German'], 'recipeIngredient': ['1 teaspoon kosher salt', '0.5 teaspoon caraway seeds', '0.5 teaspoon dried sage', '0.25 teaspoon fennel seeds', '0.25 teaspoon coriander seeds', '0.25 teaspoon dried rosemary', '2 tablespoons paprika', '2 teaspoons garlic powder', '2 teaspoons all-purpose flour', '1 teaspoon onion powder', '5 tablespoons vegetable oil', '1 (4 pound) broiler-fryer chicken, cut in half lengthwise'], 'recipeInstructions': [{'@type': 'HowToStep', 'text': 'Preheat the oven to 425 degrees F (220 degrees C).'}, {'@type': 'HowToStep', 'text': 'Combine kosher salt, caraway, sage, fennel, coriander, and rosemary in a spice grinder or mortar. Grind to a coarse powder. Transfer spice mixture to a bowl; stir in paprika, garlic powder, flour, and onion powder. Mix in vegetable oil to make a smooth paste.'}, {'@type': 'HowToStep', 'text': 'Pat chicken halves dry with paper towels and tuck wing tips behind the back. Brush spice paste onto chicken halves, coating all sides and seasoning under wings and legs. Place chicken halves, skin-sides up, in a baking dish or roasting pan, leaving space around chickens so halves aren&#39;t touching.'}, {'@type': 'HowToStep', 'text': 'Roast in the preheated oven until no longer pink at the bone and the juices run clear, about 1 hour. An instant-read thermometer inserted into the thickest part of the thigh, near the bone, should read 165 degrees F (74 degrees C). Remove from the oven and let rest for 10 minutes before slicing.'}], 'recipeYield': ['6'], 'totalTime': 'PT90M', 'about': []}\u001b[0m\n",
423
+ "Thought:"
424
+ ]
425
+ },
426
+ {
427
+ "name": "stderr",
428
+ "output_type": "stream",
429
+ "text": [
430
+ "Retrying langchain.chat_models.openai.ChatOpenAI.completion_with_retry.<locals>._completion_with_retry in 4.0 seconds as it raised APIConnectionError: Error communicating with OpenAI: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')).\n",
431
+ "Retrying langchain.chat_models.openai.ChatOpenAI.completion_with_retry.<locals>._completion_with_retry in 4.0 seconds as it raised APIError: HTTP code 502 from API (<html>\n",
432
+ "<head><title>502 Bad Gateway</title></head>\n",
433
+ "<body>\n",
434
+ "<center><h1>502 Bad Gateway</h1></center>\n",
435
+ "<hr><center>cloudflare</center>\n",
436
+ "</body>\n",
437
+ "</html>\n",
438
+ ").\n"
439
+ ]
440
+ },
441
+ {
442
+ "name": "stdout",
443
+ "output_type": "stream",
444
+ "text": [
445
+ "\u001b[32;1m\u001b[1;3mI have retrieved the first baked chicken recipe and its ingredients. I can now provide the answer.\n",
446
+ "Final Answer: The ingredients needed for the first baked chicken recipe, \"Crispy Roasted Chicken,\" are:\n",
447
+ "- 1 teaspoon kosher salt\n",
448
+ "- 0.5 teaspoon caraway seeds\n",
449
+ "- 0.5 teaspoon dried sage\n",
450
+ "- 0.25 teaspoon fennel seeds\n",
451
+ "- 0.25 teaspoon coriander seeds\n",
452
+ "- 0.25 teaspoon dried rosemary\n",
453
+ "- 2 tablespoons paprika\n",
454
+ "- 2 teaspoons garlic powder\n",
455
+ "- 2 teaspoons all-purpose flour\n",
456
+ "- 1 teaspoon onion powder\n",
457
+ "- 5 tablespoons vegetable oil\n",
458
+ "- 1 (4 pound) broiler-fryer chicken, cut in half lengthwise\u001b[0m\n",
459
+ "\n",
460
+ "\u001b[1m> Finished chain.\u001b[0m\n",
461
+ "1\n",
462
+ "Desert recipes\n",
463
+ "How good are the apple pie cookies?\n",
464
+ "gpt-3.5-turbo\n",
465
+ "\n",
466
+ "\n",
467
+ "\u001b[1m> Entering new AgentExecutor chain...\u001b[0m\n",
468
+ "\u001b[32;1m\u001b[1;3mI need to find the recipe for apple pie cookies to determine how good they are.\n",
469
+ "Action: Get a Recipe tool\n",
470
+ "Action Input: url = \"https://www.example.com/apple-pie-cookies\"\u001b[0m\n",
471
+ "url: https://www.example.com/apple-pie-cookies\n",
472
+ "\n",
473
+ "Observation: \u001b[36;1m\u001b[1;3mNo recipe found.\u001b[0m\n",
474
+ "Thought:\u001b[32;1m\u001b[1;3mI don't have the recipe for apple pie cookies, so I can't determine how good they are.\n",
475
+ "Final Answer: I don't know how good the apple pie cookies are.\u001b[0m\n",
476
  "\n",
477
  "\u001b[1m> Finished chain.\u001b[0m\n"
478
  ]
 
487
  " with gr.Column():\n",
488
  " modelDD = gr.Dropdown(['gpt-3.5-turbo', 'gpt-4'], value='gpt-3.5-turbo')\n",
489
  " openAIKey = gr.Textbox(placeholder=\"Paste your OpenAI API Key Here\", label=\"OpenAI API Key\") \n",
490
+ " inp = gr.Textbox(placeholder=\"Type your question here...\", label=\"Question\") \n",
491
+ " accessCG = gr.CheckboxGroup([\"Chicken recipes\", \"Desert recipes\"], label=\"Access List\", info=\"The recipes below are what you have access to\")\n",
492
  " btn = gr.Button(\"Run\") \n",
493
  " examples = [\"Can you show tell me what ingredients I need for the first baked chicken recipe?\",\n",
494
  " \"I have 15 guests coming to visit, if I make the 'Chocolate Snack Cake' recipe will there be enough? \",\n",
 
503
  " ] \n",
504
  " gr.Examples(examples, [inp])\n",
505
  " \n",
506
+ " \n",
507
  " with gr.Column():\n",
508
  " out = gr.TextArea(label=\"ReAct Answer\", placeholder=\"The answer will go here...\")\n",
509
  " \n",
510
+ " btn.click(fn=ask_query, inputs=[modelDD, openAIKey, inp, accessCG], outputs=out)\n",
511
  " \n",
512
  "demo.launch(show_error=True)"
513
  ]
pics/What tools do I need for the Nutella Ice Cream.PNG ADDED