{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# L5 处理输入: Chaining Prompts"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在本视频中，我们将学习如何通过将复杂任务拆分为一系列简单的子任务来链接多个提示。\n",
    "\n",
    "你可能会想，为什么要将任务拆分为多个提示，而不是像我们在上一个视频中学习的那样使用思维链推理一次性完成呢？我们已经证明了语言模型非常擅长遵循复杂的指令，特别是像GPT-4这样的高级模型。\n",
    "\n",
    "那么让我用两个比喻来解释为什么我们要这样做，来比较思维链推理和链接多个提示。 \n",
    "\n",
    "将任务拆分为多个提示的第一个比喻是一次性烹饪复杂的餐点与分阶段烹饪的区别。使用一个长而复杂的指令可能就像一次性烹饪复杂的餐点，你必须同时管理多个成分、烹饪技巧和时间。这可能很具有挑战性，难以跟踪每个部分并确保每个组成部分都烹饪完美。另一方面，链接多个提示就像分阶段烹饪餐点，你专注于一个组成部分，确保每个部分都正确烹饪后再进行下一个。这种方法可以分解任务的复杂性，使其更易于管理，并减少错误的可能性。但是，对于非常简单的食谱，这种方法可能是不必要和过于复杂的。\n",
    "\n",
    "一个稍微更好的比喻是，一次性完成所有任务与分阶段完成任务的区别。在阅读一长串代码和一个简单的模块化程序之间，使代码变得糟糕和难以调试的是歧义和逻辑不同部分之间的复杂依赖关系。同样也适用于提交给语言模型的复杂单步任务。当您拥有可以在任何给定点维护系统状态并根据当前状态采取不同操作的工作流程时，链接提示是一种强大的策略。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 设置\n",
    "#### 加载 API key 和相关的 Python 库.\n",
    "在这门课程中，我们提供了一些代码，帮助你加载OpenAI API key。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import openai\n",
    "from dotenv import load_dotenv, find_dotenv\n",
    "_ = load_dotenv(find_dotenv()) # read local .env file\n",
    "\n",
    "openai.api_key  = os.environ['OPENAI_API_KEY']\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_completion_from_messages(messages, \n",
    "                                 model=\"gpt-3.5-turbo\", \n",
    "                                 temperature=0, \n",
    "                                 max_tokens=500):\n",
    "    response = openai.ChatCompletion.create(\n",
    "        model=model,\n",
    "        messages=messages,\n",
    "        temperature=temperature, \n",
    "        max_tokens=max_tokens, \n",
    "    )\n",
    "    return response.choices[0].message[\"content\"]"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实现一个包含多个提示的复杂任务\n",
    "\n",
    "### 提取相关产品和类别名称"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在您分类了传入的客户查询之后，将会得到查询的类别——这是一个账户问题还是一个产品问题。然后根据类别，您可能会做一些不同的事情。\n",
    "\n",
    "每个子任务仅包含任务的一个状态所需的指令，这使得系统更易于管理，确保模型具有执行任务所需的所有信息，并减少了错误的可能性。这种方法还可以降低成本，因为更长的提示和更多的标记会导致更高的运行成本，并且在某些情况下可能不需要概述所有步骤。\n",
    "\n",
    "这种方法的另一个好处是，它也更容易测试哪些步骤可能更经常失败，或者在特定步骤中有一个人参与。\n",
    "\n",
    "随着您与这些模型的构建和交互越来越多，您将获得何时使用此策略而不是以前的直觉。还有一个额外的好处是，它还允许模型在必要时使用外部工具。例如，它可能决定查找某些内容在产品目录中或调用API或搜索知识库，这是使用单个提示无法实现的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[\n",
      "    {'category': 'Smartphones and Accessories', 'products': ['SmartX ProPhone']},\n",
      "    {'category': 'Cameras and Camcorders', 'products': ['FotoSnap DSLR Camera']},\n",
      "    {'category': 'Televisions and Home Theater Systems'}\n",
      "]\n"
     ]
    }
   ],
   "source": [
    "delimiter = \"####\"\n",
    "system_message = f\"\"\"\n",
    "You will be provided with customer service queries. \\\n",
    "The customer service query will be delimited with \\\n",
    "{delimiter} characters.\n",
    "Output a python list of objects, where each object has \\\n",
    "the following format:\n",
    "    'category': <one of Computers and Laptops, \\\n",
    "    Smartphones and Accessories, \\\n",
    "    Televisions and Home Theater Systems, \\\n",
    "    Gaming Consoles and Accessories, \n",
    "    Audio Equipment, Cameras and Camcorders>,\n",
    "OR\n",
    "    'products': <a list of products that must \\\n",
    "    be found in the allowed products below>\n",
    "\n",
    "Where the categories and products must be found in \\\n",
    "the customer service query.\n",
    "If a product is mentioned, it must be associated with \\\n",
    "the correct category in the allowed products list below.\n",
    "If no products or categories are found, output an \\\n",
    "empty list.\n",
    "\n",
    "Allowed products: \n",
    "\n",
    "Computers and Laptops category:\n",
    "TechPro Ultrabook\n",
    "BlueWave Gaming Laptop\n",
    "PowerLite Convertible\n",
    "TechPro Desktop\n",
    "BlueWave Chromebook\n",
    "\n",
    "Smartphones and Accessories category:\n",
    "SmartX ProPhone\n",
    "MobiTech PowerCase\n",
    "SmartX MiniPhone\n",
    "MobiTech Wireless Charger\n",
    "SmartX EarBuds\n",
    "\n",
    "Televisions and Home Theater Systems category:\n",
    "CineView 4K TV\n",
    "SoundMax Home Theater\n",
    "CineView 8K TV\n",
    "SoundMax Soundbar\n",
    "CineView OLED TV\n",
    "\n",
    "Gaming Consoles and Accessories category:\n",
    "GameSphere X\n",
    "ProGamer Controller\n",
    "GameSphere Y\n",
    "ProGamer Racing Wheel\n",
    "GameSphere VR Headset\n",
    "\n",
    "Audio Equipment category:\n",
    "AudioPhonic Noise-Canceling Headphones\n",
    "WaveSound Bluetooth Speaker\n",
    "AudioPhonic True Wireless Earbuds\n",
    "WaveSound Soundbar\n",
    "AudioPhonic Turntable\n",
    "\n",
    "Cameras and Camcorders category:\n",
    "FotoSnap DSLR Camera\n",
    "ActionCam 4K\n",
    "FotoSnap Mirrorless Camera\n",
    "ZoomMaster Camcorder\n",
    "FotoSnap Instant Camera\n",
    "\n",
    "Only output the list of objects, with nothing else.\n",
    "\"\"\"\n",
    "user_message_1 = f\"\"\"\n",
    " tell me about the smartx pro phone and \\\n",
    " the fotosnap camera, the dslr one. \\\n",
    " Also tell me about your tvs \"\"\"\n",
    "messages =  [  \n",
    "{'role':'system', \n",
    " 'content': system_message},    \n",
    "{'role':'user', \n",
    " 'content': f\"{delimiter}{user_message_1}{delimiter}\"},  \n",
    "] \n",
    "category_and_product_response_1 = get_completion_from_messages(messages)\n",
    "print(category_and_product_response_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[]\n"
     ]
    }
   ],
   "source": [
    "user_message_2 = f\"\"\"\n",
    "my router isn't working\"\"\"\n",
    "messages =  [  \n",
    "{'role':'system',\n",
    " 'content': system_message},    \n",
    "{'role':'user',\n",
    " 'content': f\"{delimiter}{user_message_2}{delimiter}\"},  \n",
    "] \n",
    "response = get_completion_from_messages(messages)\n",
    "print(response)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'category': '智能手机和配件', 'products': ['SmartX ProPhone']}, {'category': '相机和摄像机', 'products': ['FotoSnap DSLR Camera', 'FotoSnap Mirrorless Camera']}, {'category': '电视和家庭影院系统', 'products': ['CineView 4K TV', 'SoundMax Home Theater', 'CineView 8K TV', 'SoundMax Soundbar', 'CineView OLED TV']}]\n"
     ]
    }
   ],
   "source": [
    "delimiter = \"####\"\n",
    "system_message = f\"\"\"\n",
    "你将提供服务查询。\n",
    "服务查询将使用{delimiter}字符分隔。\n",
    "\n",
    "仅输出一个Python对象列表，其中每个对象具有以下格式：\n",
    "    'category': <计算机和笔记本电脑、智能手机和配件、电视和家庭影院系统、游戏机和配件、音频设备、相机和摄像机中的一个>,\n",
    "或者\n",
    "    'products': <必须在下面的允许产品列表中找到的产品列表>\n",
    "\n",
    "类别和产品必须在客户服务查询中找到。\n",
    "如果提及了产品，则必须将其与允许产品列表中的正确类别相关联。\n",
    "如果未找到产品或类别，则输出空列表。\n",
    "\n",
    "允许的产品：\n",
    "\n",
    "计算机和笔记本电脑类别：\n",
    "TechPro Ultrabook\n",
    "BlueWave Gaming Laptop\n",
    "PowerLite Convertible\n",
    "TechPro Desktop\n",
    "BlueWave Chromebook\n",
    "\n",
    "智能手机和配件类别：\n",
    "SmartX ProPhone\n",
    "MobiTech PowerCase\n",
    "SmartX MiniPhone\n",
    "MobiTech Wireless Charger\n",
    "SmartX EarBuds\n",
    "\n",
    "电视和家庭影院系统类别：\n",
    "CineView 4K TV\n",
    "SoundMax Home Theater\n",
    "CineView 8K TV\n",
    "SoundMax Soundbar\n",
    "CineView OLED TV\n",
    "c\n",
    "游戏机和配件类别：\n",
    "GameSphere X\n",
    "ProGamer Controller\n",
    "GameSphere Y\n",
    "ProGamer Racing Wheel\n",
    "GameSphere VR Headset\n",
    "\n",
    "音频设备类别：\n",
    "AudioPhonic Noise-Canceling Headphones\n",
    "WaveSound Bluetooth Speaker\n",
    "AudioPhonic True Wireless Earbuds\n",
    "WaveSound Soundbar\n",
    "AudioPhonic Turntable\n",
    "\n",
    "相机和摄像机类别：\n",
    "FotoSnap DSLR Camera\n",
    "ActionCam 4K\n",
    "FotoSnap Mirrorless Camera\n",
    "ZoomMaster Camcorder\n",
    "FotoSnap Instant Camera\n",
    "\n",
    "仅输出Python对象列表，不包含其他字符信息。\n",
    "\"\"\"\n",
    "user_message_1 = f\"\"\"\n",
    " 请查询SmartX ProPhone智能手机和FotoSnap相机，包括单反相机。\n",
    " 另外，请查询关于电视产品的信息。 \"\"\"\n",
    "messages =  [  \n",
    "{'role':'system', \n",
    " 'content': system_message},    \n",
    "{'role':'user', \n",
    " 'content': f\"{delimiter}{user_message_1}{delimiter}\"},  \n",
    "] \n",
    "category_and_product_response_1 = get_completion_from_messages(messages)\n",
    "print(category_and_product_response_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[]\n"
     ]
    }
   ],
   "source": [
    "user_message_2 = f\"\"\"我的路由器坏了\"\"\"\n",
    "messages =  [  \n",
    "{'role':'system',\n",
    " 'content': system_message},    \n",
    "{'role':'user',\n",
    " 'content': f\"{delimiter}{user_message_2}{delimiter}\"},  \n",
    "] \n",
    "response = get_completion_from_messages(messages)\n",
    "print(response)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 召回提取的产品和类别的详细信息"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们提供大量的产品信息作为示例，要求模型提取产品和对应的详细信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# product information\n",
    "products = {\n",
    "    \"TechPro Ultrabook\": {\n",
    "        \"name\": \"TechPro Ultrabook\",\n",
    "        \"category\": \"Computers and Laptops\",\n",
    "        \"brand\": \"TechPro\",\n",
    "        \"model_number\": \"TP-UB100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.5,\n",
    "        \"features\": [\"13.3-inch display\", \"8GB RAM\", \"256GB SSD\", \"Intel Core i5 processor\"],\n",
    "        \"description\": \"A sleek and lightweight ultrabook for everyday use.\",\n",
    "        \"price\": 799.99\n",
    "    },\n",
    "    \"BlueWave Gaming Laptop\": {\n",
    "        \"name\": \"BlueWave Gaming Laptop\",\n",
    "        \"category\": \"Computers and Laptops\",\n",
    "        \"brand\": \"BlueWave\",\n",
    "        \"model_number\": \"BW-GL200\",\n",
    "        \"warranty\": \"2 years\",\n",
    "        \"rating\": 4.7,\n",
    "        \"features\": [\"15.6-inch display\", \"16GB RAM\", \"512GB SSD\", \"NVIDIA GeForce RTX 3060\"],\n",
    "        \"description\": \"A high-performance gaming laptop for an immersive experience.\",\n",
    "        \"price\": 1199.99\n",
    "    },\n",
    "    \"PowerLite Convertible\": {\n",
    "        \"name\": \"PowerLite Convertible\",\n",
    "        \"category\": \"Computers and Laptops\",\n",
    "        \"brand\": \"PowerLite\",\n",
    "        \"model_number\": \"PL-CV300\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"14-inch touchscreen\", \"8GB RAM\", \"256GB SSD\", \"360-degree hinge\"],\n",
    "        \"description\": \"A versatile convertible laptop with a responsive touchscreen.\",\n",
    "        \"price\": 699.99\n",
    "    },\n",
    "    \"TechPro Desktop\": {\n",
    "        \"name\": \"TechPro Desktop\",\n",
    "        \"category\": \"Computers and Laptops\",\n",
    "        \"brand\": \"TechPro\",\n",
    "        \"model_number\": \"TP-DT500\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"Intel Core i7 processor\", \"16GB RAM\", \"1TB HDD\", \"NVIDIA GeForce GTX 1660\"],\n",
    "        \"description\": \"A powerful desktop computer for work and play.\",\n",
    "        \"price\": 999.99\n",
    "    },\n",
    "    \"BlueWave Chromebook\": {\n",
    "        \"name\": \"BlueWave Chromebook\",\n",
    "        \"category\": \"Computers and Laptops\",\n",
    "        \"brand\": \"BlueWave\",\n",
    "        \"model_number\": \"BW-CB100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.1,\n",
    "        \"features\": [\"11.6-inch display\", \"4GB RAM\", \"32GB eMMC\", \"Chrome OS\"],\n",
    "        \"description\": \"A compact and affordable Chromebook for everyday tasks.\",\n",
    "        \"price\": 249.99\n",
    "    },\n",
    "    \"SmartX ProPhone\": {\n",
    "        \"name\": \"SmartX ProPhone\",\n",
    "        \"category\": \"Smartphones and Accessories\",\n",
    "        \"brand\": \"SmartX\",\n",
    "        \"model_number\": \"SX-PP10\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.6,\n",
    "        \"features\": [\"6.1-inch display\", \"128GB storage\", \"12MP dual camera\", \"5G\"],\n",
    "        \"description\": \"A powerful smartphone with advanced camera features.\",\n",
    "        \"price\": 899.99\n",
    "    },\n",
    "    \"MobiTech PowerCase\": {\n",
    "        \"name\": \"MobiTech PowerCase\",\n",
    "        \"category\": \"Smartphones and Accessories\",\n",
    "        \"brand\": \"MobiTech\",\n",
    "        \"model_number\": \"MT-PC20\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"5000mAh battery\", \"Wireless charging\", \"Compatible with SmartX ProPhone\"],\n",
    "        \"description\": \"A protective case with built-in battery for extended usage.\",\n",
    "        \"price\": 59.99\n",
    "    },\n",
    "    \"SmartX MiniPhone\": {\n",
    "        \"name\": \"SmartX MiniPhone\",\n",
    "        \"category\": \"Smartphones and Accessories\",\n",
    "        \"brand\": \"SmartX\",\n",
    "        \"model_number\": \"SX-MP5\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.2,\n",
    "        \"features\": [\"4.7-inch display\", \"64GB storage\", \"8MP camera\", \"4G\"],\n",
    "        \"description\": \"A compact and affordable smartphone for basic tasks.\",\n",
    "        \"price\": 399.99\n",
    "    },\n",
    "    \"MobiTech Wireless Charger\": {\n",
    "        \"name\": \"MobiTech Wireless Charger\",\n",
    "        \"category\": \"Smartphones and Accessories\",\n",
    "        \"brand\": \"MobiTech\",\n",
    "        \"model_number\": \"MT-WC10\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.5,\n",
    "        \"features\": [\"10W fast charging\", \"Qi-compatible\", \"LED indicator\", \"Compact design\"],\n",
    "        \"description\": \"A convenient wireless charger for a clutter-free workspace.\",\n",
    "        \"price\": 29.99\n",
    "    },\n",
    "    \"SmartX EarBuds\": {\n",
    "        \"name\": \"SmartX EarBuds\",\n",
    "        \"category\": \"Smartphones and Accessories\",\n",
    "        \"brand\": \"SmartX\",\n",
    "        \"model_number\": \"SX-EB20\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"True wireless\", \"Bluetooth 5.0\", \"Touch controls\", \"24-hour battery life\"],\n",
    "        \"description\": \"Experience true wireless freedom with these comfortable earbuds.\",\n",
    "        \"price\": 99.99\n",
    "    },\n",
    "\n",
    "    \"CineView 4K TV\": {\n",
    "        \"name\": \"CineView 4K TV\",\n",
    "        \"category\": \"Televisions and Home Theater Systems\",\n",
    "        \"brand\": \"CineView\",\n",
    "        \"model_number\": \"CV-4K55\",\n",
    "        \"warranty\": \"2 years\",\n",
    "        \"rating\": 4.8,\n",
    "        \"features\": [\"55-inch display\", \"4K resolution\", \"HDR\", \"Smart TV\"],\n",
    "        \"description\": \"A stunning 4K TV with vibrant colors and smart features.\",\n",
    "        \"price\": 599.99\n",
    "    },\n",
    "    \"SoundMax Home Theater\": {\n",
    "        \"name\": \"SoundMax Home Theater\",\n",
    "        \"category\": \"Televisions and Home Theater Systems\",\n",
    "        \"brand\": \"SoundMax\",\n",
    "        \"model_number\": \"SM-HT100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"5.1 channel\", \"1000W output\", \"Wireless subwoofer\", \"Bluetooth\"],\n",
    "        \"description\": \"A powerful home theater system for an immersive audio experience.\",\n",
    "        \"price\": 399.99\n",
    "    },\n",
    "    \"CineView 8K TV\": {\n",
    "        \"name\": \"CineView 8K TV\",\n",
    "        \"category\": \"Televisions and Home Theater Systems\",\n",
    "        \"brand\": \"CineView\",\n",
    "        \"model_number\": \"CV-8K65\",\n",
    "        \"warranty\": \"2 years\",\n",
    "        \"rating\": 4.9,\n",
    "        \"features\": [\"65-inch display\", \"8K resolution\", \"HDR\", \"Smart TV\"],\n",
    "        \"description\": \"Experience the future of television with this stunning 8K TV.\",\n",
    "        \"price\": 2999.99\n",
    "    },\n",
    "    \"SoundMax Soundbar\": {\n",
    "        \"name\": \"SoundMax Soundbar\",\n",
    "        \"category\": \"Televisions and Home Theater Systems\",\n",
    "        \"brand\": \"SoundMax\",\n",
    "        \"model_number\": \"SM-SB50\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"2.1 channel\", \"300W output\", \"Wireless subwoofer\", \"Bluetooth\"],\n",
    "        \"description\": \"Upgrade your TV's audio with this sleek and powerful soundbar.\",\n",
    "        \"price\": 199.99\n",
    "    },\n",
    "    \"CineView OLED TV\": {\n",
    "        \"name\": \"CineView OLED TV\",\n",
    "        \"category\": \"Televisions and Home Theater Systems\",\n",
    "        \"brand\": \"CineView\",\n",
    "        \"model_number\": \"CV-OLED55\",\n",
    "        \"warranty\": \"2 years\",\n",
    "        \"rating\": 4.7,\n",
    "        \"features\": [\"55-inch display\", \"4K resolution\", \"HDR\", \"Smart TV\"],\n",
    "        \"description\": \"Experience true blacks and vibrant colors with this OLED TV.\",\n",
    "        \"price\": 1499.99\n",
    "    },\n",
    "\n",
    "    \"GameSphere X\": {\n",
    "        \"name\": \"GameSphere X\",\n",
    "        \"category\": \"Gaming Consoles and Accessories\",\n",
    "        \"brand\": \"GameSphere\",\n",
    "        \"model_number\": \"GS-X\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.9,\n",
    "        \"features\": [\"4K gaming\", \"1TB storage\", \"Backward compatibility\", \"Online multiplayer\"],\n",
    "        \"description\": \"A next-generation gaming console for the ultimate gaming experience.\",\n",
    "        \"price\": 499.99\n",
    "    },\n",
    "    \"ProGamer Controller\": {\n",
    "        \"name\": \"ProGamer Controller\",\n",
    "        \"category\": \"Gaming Consoles and Accessories\",\n",
    "        \"brand\": \"ProGamer\",\n",
    "        \"model_number\": \"PG-C100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.2,\n",
    "        \"features\": [\"Ergonomic design\", \"Customizable buttons\", \"Wireless\", \"Rechargeable battery\"],\n",
    "        \"description\": \"A high-quality gaming controller for precision and comfort.\",\n",
    "        \"price\": 59.99\n",
    "    },\n",
    "    \"GameSphere Y\": {\n",
    "        \"name\": \"GameSphere Y\",\n",
    "        \"category\": \"Gaming Consoles and Accessories\",\n",
    "        \"brand\": \"GameSphere\",\n",
    "        \"model_number\": \"GS-Y\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.8,\n",
    "        \"features\": [\"4K gaming\", \"500GB storage\", \"Backward compatibility\", \"Online multiplayer\"],\n",
    "        \"description\": \"A compact gaming console with powerful performance.\",\n",
    "        \"price\": 399.99\n",
    "    },\n",
    "    \"ProGamer Racing Wheel\": {\n",
    "        \"name\": \"ProGamer Racing Wheel\",\n",
    "        \"category\": \"Gaming Consoles and Accessories\",\n",
    "        \"brand\": \"ProGamer\",\n",
    "        \"model_number\": \"PG-RW200\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.5,\n",
    "        \"features\": [\"Force feedback\", \"Adjustable pedals\", \"Paddle shifters\", \"Compatible with GameSphere X\"],\n",
    "        \"description\": \"Enhance your racing games with this realistic racing wheel.\",\n",
    "        \"price\": 249.99\n",
    "    },\n",
    "    \"GameSphere VR Headset\": {\n",
    "        \"name\": \"GameSphere VR Headset\",\n",
    "        \"category\": \"Gaming Consoles and Accessories\",\n",
    "        \"brand\": \"GameSphere\",\n",
    "        \"model_number\": \"GS-VR\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.6,\n",
    "        \"features\": [\"Immersive VR experience\", \"Built-in headphones\", \"Adjustable headband\", \"Compatible with GameSphere X\"],\n",
    "        \"description\": \"Step into the world of virtual reality with this comfortable VR headset.\",\n",
    "        \"price\": 299.99\n",
    "    },\n",
    "\n",
    "    \"AudioPhonic Noise-Canceling Headphones\": {\n",
    "        \"name\": \"AudioPhonic Noise-Canceling Headphones\",\n",
    "        \"category\": \"Audio Equipment\",\n",
    "        \"brand\": \"AudioPhonic\",\n",
    "        \"model_number\": \"AP-NC100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.6,\n",
    "        \"features\": [\"Active noise-canceling\", \"Bluetooth\", \"20-hour battery life\", \"Comfortable fit\"],\n",
    "        \"description\": \"Experience immersive sound with these noise-canceling headphones.\",\n",
    "        \"price\": 199.99\n",
    "    },\n",
    "    \"WaveSound Bluetooth Speaker\": {\n",
    "        \"name\": \"WaveSound Bluetooth Speaker\",\n",
    "        \"category\": \"Audio Equipment\",\n",
    "        \"brand\": \"WaveSound\",\n",
    "        \"model_number\": \"WS-BS50\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.5,\n",
    "        \"features\": [\"Portable\", \"10-hour battery life\", \"Water-resistant\", \"Built-in microphone\"],\n",
    "        \"description\": \"A compact and versatile Bluetooth speaker for music on the go.\",\n",
    "        \"price\": 49.99\n",
    "    },\n",
    "    \"AudioPhonic True Wireless Earbuds\": {\n",
    "        \"name\": \"AudioPhonic True Wireless Earbuds\",\n",
    "        \"category\": \"Audio Equipment\",\n",
    "        \"brand\": \"AudioPhonic\",\n",
    "        \"model_number\": \"AP-TW20\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"True wireless\", \"Bluetooth 5.0\", \"Touch controls\", \"18-hour battery life\"],\n",
    "        \"description\": \"Enjoy music without wires with these comfortable true wireless earbuds.\",\n",
    "        \"price\": 79.99\n",
    "    },\n",
    "    \"WaveSound Soundbar\": {\n",
    "        \"name\": \"WaveSound Soundbar\",\n",
    "        \"category\": \"Audio Equipment\",\n",
    "        \"brand\": \"WaveSound\",\n",
    "        \"model_number\": \"WS-SB40\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"2.0 channel\", \"80W output\", \"Bluetooth\", \"Wall-mountable\"],\n",
    "        \"description\": \"Upgrade your TV's audio with this slim and powerful soundbar.\",\n",
    "        \"price\": 99.99\n",
    "    },\n",
    "    \"AudioPhonic Turntable\": {\n",
    "        \"name\": \"AudioPhonic Turntable\",\n",
    "        \"category\": \"Audio Equipment\",\n",
    "        \"brand\": \"AudioPhonic\",\n",
    "        \"model_number\": \"AP-TT10\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.2,\n",
    "        \"features\": [\"3-speed\", \"Built-in speakers\", \"Bluetooth\", \"USB recording\"],\n",
    "        \"description\": \"Rediscover your vinyl collection with this modern turntable.\",\n",
    "        \"price\": 149.99\n",
    "    },\n",
    "\n",
    "    \"FotoSnap DSLR Camera\": {\n",
    "        \"name\": \"FotoSnap DSLR Camera\",\n",
    "        \"category\": \"Cameras and Camcorders\",\n",
    "        \"brand\": \"FotoSnap\",\n",
    "        \"model_number\": \"FS-DSLR200\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.7,\n",
    "        \"features\": [\"24.2MP sensor\", \"1080p video\", \"3-inch LCD\", \"Interchangeable lenses\"],\n",
    "        \"description\": \"Capture stunning photos and videos with this versatile DSLR camera.\",\n",
    "        \"price\": 599.99\n",
    "    },\n",
    "    \"ActionCam 4K\": {\n",
    "        \"name\": \"ActionCam 4K\",\n",
    "        \"category\": \"Cameras and Camcorders\",\n",
    "        \"brand\": \"ActionCam\",\n",
    "        \"model_number\": \"AC-4K\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"4K video\", \"Waterproof\", \"Image stabilization\", \"Wi-Fi\"],\n",
    "        \"description\": \"Record your adventures with this rugged and compact 4K action camera.\",\n",
    "        \"price\": 299.99\n",
    "    },\n",
    "    \"FotoSnap Mirrorless Camera\": {\n",
    "        \"name\": \"FotoSnap Mirrorless Camera\",\n",
    "        \"category\": \"Cameras and Camcorders\",\n",
    "        \"brand\": \"FotoSnap\",\n",
    "        \"model_number\": \"FS-ML100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.6,\n",
    "        \"features\": [\"20.1MP sensor\", \"4K video\", \"3-inch touchscreen\", \"Interchangeable lenses\"],\n",
    "        \"description\": \"A compact and lightweight mirrorless camera with advanced features.\",\n",
    "        \"price\": 799.99\n",
    "    },\n",
    "    \"ZoomMaster Camcorder\": {\n",
    "        \"name\": \"ZoomMaster Camcorder\",\n",
    "        \"category\": \"Cameras and Camcorders\",\n",
    "        \"brand\": \"ZoomMaster\",\n",
    "        \"model_number\": \"ZM-CM50\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"1080p video\", \"30x optical zoom\", \"3-inch LCD\", \"Image stabilization\"],\n",
    "        \"description\": \"Capture life's moments with this easy-to-use camcorder.\",\n",
    "        \"price\": 249.99\n",
    "    },\n",
    "    \"FotoSnap Instant Camera\": {\n",
    "        \"name\": \"FotoSnap Instant Camera\",\n",
    "        \"category\": \"Cameras and Camcorders\",\n",
    "        \"brand\": \"FotoSnap\",\n",
    "        \"model_number\": \"FS-IC10\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.1,\n",
    "        \"features\": [\"Instant prints\", \"Built-in flash\", \"Selfie mirror\", \"Battery-powered\"],\n",
    "        \"description\": \"Create instant memories with this fun and portable instant camera.\",\n",
    "        \"price\": 69.99\n",
    "    }\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_product_by_name(name):\n",
    "    return products.get(name, None)\n",
    "\n",
    "def get_products_by_category(category):\n",
    "    return [product for product in products.values() if product[\"category\"] == category]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'name': 'TechPro Ultrabook', 'category': 'Computers and Laptops', 'brand': 'TechPro', 'model_number': 'TP-UB100', 'warranty': '1 year', 'rating': 4.5, 'features': ['13.3-inch display', '8GB RAM', '256GB SSD', 'Intel Core i5 processor'], 'description': 'A sleek and lightweight ultrabook for everyday use.', 'price': 799.99}\n"
     ]
    }
   ],
   "source": [
    "print(get_product_by_name(\"TechPro Ultrabook\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'name': 'TechPro Ultrabook', 'category': 'Computers and Laptops', 'brand': 'TechPro', 'model_number': 'TP-UB100', 'warranty': '1 year', 'rating': 4.5, 'features': ['13.3-inch display', '8GB RAM', '256GB SSD', 'Intel Core i5 processor'], 'description': 'A sleek and lightweight ultrabook for everyday use.', 'price': 799.99}, {'name': 'BlueWave Gaming Laptop', 'category': 'Computers and Laptops', 'brand': 'BlueWave', 'model_number': 'BW-GL200', 'warranty': '2 years', 'rating': 4.7, 'features': ['15.6-inch display', '16GB RAM', '512GB SSD', 'NVIDIA GeForce RTX 3060'], 'description': 'A high-performance gaming laptop for an immersive experience.', 'price': 1199.99}, {'name': 'PowerLite Convertible', 'category': 'Computers and Laptops', 'brand': 'PowerLite', 'model_number': 'PL-CV300', 'warranty': '1 year', 'rating': 4.3, 'features': ['14-inch touchscreen', '8GB RAM', '256GB SSD', '360-degree hinge'], 'description': 'A versatile convertible laptop with a responsive touchscreen.', 'price': 699.99}, {'name': 'TechPro Desktop', 'category': 'Computers and Laptops', 'brand': 'TechPro', 'model_number': 'TP-DT500', 'warranty': '1 year', 'rating': 4.4, 'features': ['Intel Core i7 processor', '16GB RAM', '1TB HDD', 'NVIDIA GeForce GTX 1660'], 'description': 'A powerful desktop computer for work and play.', 'price': 999.99}, {'name': 'BlueWave Chromebook', 'category': 'Computers and Laptops', 'brand': 'BlueWave', 'model_number': 'BW-CB100', 'warranty': '1 year', 'rating': 4.1, 'features': ['11.6-inch display', '4GB RAM', '32GB eMMC', 'Chrome OS'], 'description': 'A compact and affordable Chromebook for everyday tasks.', 'price': 249.99}]\n"
     ]
    }
   ],
   "source": [
    "print(get_products_by_category(\"Computers and Laptops\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " tell me about the smartx pro phone and  the fotosnap camera, the dslr one.  Also tell me about your tvs \n"
     ]
    }
   ],
   "source": [
    "print(user_message_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[\n",
      "    {'category': 'Smartphones and Accessories', 'products': ['SmartX ProPhone']},\n",
      "    {'category': 'Cameras and Camcorders', 'products': ['FotoSnap DSLR Camera']},\n",
      "    {'category': 'Televisions and Home Theater Systems'}\n",
      "]\n"
     ]
    }
   ],
   "source": [
    "print(category_and_product_response_1)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "中文版prompt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# product information\n",
    "products = {\n",
    "    \"TechPro Ultrabook\": {\n",
    "        \"name\": \"TechPro 超极本\",\n",
    "        \"category\": \"电脑和笔记本\",\n",
    "        \"brand\": \"TechPro\",\n",
    "        \"model_number\": \"TP-UB100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.5,\n",
    "        \"features\": [\"13.3-inch display\", \"8GB RAM\", \"256GB SSD\", \"Intel Core i5 处理器\"],\n",
    "        \"description\": \"一款时尚轻便的超极本，适合日常使用。\",\n",
    "        \"price\": 799.99\n",
    "    },\n",
    "    \"BlueWave Gaming Laptop\": {\n",
    "        \"name\": \"BlueWave 游戏本\",\n",
    "        \"category\": \"电脑和笔记本\",\n",
    "        \"brand\": \"BlueWave\",\n",
    "        \"model_number\": \"BW-GL200\",\n",
    "        \"warranty\": \"2 years\",\n",
    "        \"rating\": 4.7,\n",
    "        \"features\": [\"15.6-inch display\", \"16GB RAM\", \"512GB SSD\", \"NVIDIA GeForce RTX 3060\"],\n",
    "        \"description\": \"一款高性能的游戏笔记本电脑，提供沉浸式体验。\",\n",
    "        \"price\": 1199.99\n",
    "    },\n",
    "    \"PowerLite Convertible\": {\n",
    "        \"name\": \"PowerLite Convertible\",\n",
    "        \"category\": \"电脑和笔记本\",\n",
    "        \"brand\": \"PowerLite\",\n",
    "        \"model_number\": \"PL-CV300\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"14-inch touchscreen\", \"8GB RAM\", \"256GB SSD\", \"360-degree hinge\"],\n",
    "        \"description\": \"一款多功能的可转换笔记本电脑，具有灵敏的触摸屏。\",\n",
    "        \"price\": 699.99\n",
    "    },\n",
    "    \"TechPro Desktop\": {\n",
    "        \"name\": \"TechPro Desktop\",\n",
    "        \"category\": \"电脑和笔记本\",\n",
    "        \"brand\": \"TechPro\",\n",
    "        \"model_number\": \"TP-DT500\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"Intel Core i7 processor\", \"16GB RAM\", \"1TB HDD\", \"NVIDIA GeForce GTX 1660\"],\n",
    "        \"description\": \"一款功能强大的台式电脑，适用于工作和娱乐。\",\n",
    "        \"price\": 999.99\n",
    "    },\n",
    "    \"BlueWave Chromebook\": {\n",
    "        \"name\": \"BlueWave Chromebook\",\n",
    "        \"category\": \"电脑和笔记本\",\n",
    "        \"brand\": \"BlueWave\",\n",
    "        \"model_number\": \"BW-CB100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.1,\n",
    "        \"features\": [\"11.6-inch display\", \"4GB RAM\", \"32GB eMMC\", \"Chrome OS\"],\n",
    "        \"description\": \"一款紧凑而价格实惠的Chromebook，适用于日常任务。\",\n",
    "        \"price\": 249.99\n",
    "    },\n",
    "    \"SmartX ProPhone\": {\n",
    "        \"name\": \"SmartX ProPhone\",\n",
    "        \"category\": \"智能手机和配件\",\n",
    "        \"brand\": \"SmartX\",\n",
    "        \"model_number\": \"SX-PP10\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.6,\n",
    "        \"features\": [\"6.1-inch display\", \"128GB storage\", \"12MP dual camera\", \"5G\"],\n",
    "        \"description\": \"一款拥有先进摄像功能的强大智能手机。\",\n",
    "        \"price\": 899.99\n",
    "    },\n",
    "    \"MobiTech PowerCase\": {\n",
    "        \"name\": \"MobiTech PowerCase\",\n",
    "        \"category\": \"专业手机\",\n",
    "        \"brand\": \"MobiTech\",\n",
    "        \"model_number\": \"MT-PC20\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"5000mAh battery\", \"Wireless charging\", \"Compatible with SmartX ProPhone\"],\n",
    "        \"description\": \"一款带有内置电池的保护手机壳，可延长使用时间。\",\n",
    "        \"price\": 59.99\n",
    "    },\n",
    "    \"SmartX MiniPhone\": {\n",
    "        \"name\": \"SmartX MiniPhone\",\n",
    "        \"category\": \"专业手机\",\n",
    "        \"brand\": \"SmartX\",\n",
    "        \"model_number\": \"SX-MP5\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.2,\n",
    "        \"features\": [\"4.7-inch display\", \"64GB storage\", \"8MP camera\", \"4G\"],\n",
    "        \"description\": \"一款紧凑而价格实惠的智能手机，适用于基本任务。\",\n",
    "        \"price\": 399.99\n",
    "    },\n",
    "    \"MobiTech Wireless Charger\": {\n",
    "        \"name\": \"MobiTech Wireless Charger\",\n",
    "        \"category\": \"专业手机\",\n",
    "        \"brand\": \"MobiTech\",\n",
    "        \"model_number\": \"MT-WC10\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.5,\n",
    "        \"features\": [\"10W fast charging\", \"Qi-compatible\", \"LED indicator\", \"Compact design\"],\n",
    "        \"description\": \"一款方便的无线充电器，使工作区域整洁无杂物。\",\n",
    "        \"price\": 29.99\n",
    "    },\n",
    "    \"SmartX EarBuds\": {\n",
    "        \"name\": \"SmartX EarBuds\",\n",
    "        \"category\": \"专业手机\",\n",
    "        \"brand\": \"SmartX\",\n",
    "        \"model_number\": \"SX-EB20\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"True wireless\", \"Bluetooth 5.0\", \"Touch controls\", \"24-hour battery life\"],\n",
    "        \"description\": \"通过这些舒适的耳塞体验真正的无线自由。\",\n",
    "        \"price\": 99.99\n",
    "    },\n",
    "\n",
    "    \"CineView 4K TV\": {\n",
    "        \"name\": \"CineView 4K TV\",\n",
    "        \"category\": \"电视和家庭影院系统\",\n",
    "        \"brand\": \"CineView\",\n",
    "        \"model_number\": \"CV-4K55\",\n",
    "        \"warranty\": \"2 years\",\n",
    "        \"rating\": 4.8,\n",
    "        \"features\": [\"55-inch display\", \"4K resolution\", \"HDR\", \"Smart TV\"],\n",
    "        \"description\": \"一款色彩鲜艳、智能功能丰富的惊艳4K电视。\",\n",
    "        \"price\": 599.99\n",
    "    },\n",
    "    \"SoundMax Home Theater\": {\n",
    "        \"name\": \"SoundMax Home Theater\",\n",
    "        \"category\": \"电视和家庭影院系统\",\n",
    "        \"brand\": \"SoundMax\",\n",
    "        \"model_number\": \"SM-HT100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"5.1 channel\", \"1000W output\", \"Wireless subwoofer\", \"Bluetooth\"],\n",
    "        \"description\": \"一款强大的家庭影院系统，提供沉浸式音频体验。\",\n",
    "        \"price\": 399.99\n",
    "    },\n",
    "    \"CineView 8K TV\": {\n",
    "        \"name\": \"CineView 8K TV\",\n",
    "        \"category\": \"电视和家庭影院系统\",\n",
    "        \"brand\": \"CineView\",\n",
    "        \"model_number\": \"CV-8K65\",\n",
    "        \"warranty\": \"2 years\",\n",
    "        \"rating\": 4.9,\n",
    "        \"features\": [\"65-inch display\", \"8K resolution\", \"HDR\", \"Smart TV\"],\n",
    "        \"description\": \"通过这款惊艳的8K电视，体验未来。\",\n",
    "        \"price\": 2999.99\n",
    "    },\n",
    "    \"SoundMax Soundbar\": {\n",
    "        \"name\": \"SoundMax Soundbar\",\n",
    "        \"category\": \"电视和家庭影院系统\",\n",
    "        \"brand\": \"SoundMax\",\n",
    "        \"model_number\": \"SM-SB50\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"2.1 channel\", \"300W output\", \"Wireless subwoofer\", \"Bluetooth\"],\n",
    "        \"description\": \"使用这款时尚而功能强大的声音，升级您电视的音频体验。\",\n",
    "        \"price\": 199.99\n",
    "    },\n",
    "    \"CineView OLED TV\": {\n",
    "        \"name\": \"CineView OLED TV\",\n",
    "        \"category\": \"电视和家庭影院系统\",\n",
    "        \"brand\": \"CineView\",\n",
    "        \"model_number\": \"CV-OLED55\",\n",
    "        \"warranty\": \"2 years\",\n",
    "        \"rating\": 4.7,\n",
    "        \"features\": [\"55-inch display\", \"4K resolution\", \"HDR\", \"Smart TV\"],\n",
    "        \"description\": \"通过这款OLED电视，体验真正的五彩斑斓。\",\n",
    "        \"price\": 1499.99\n",
    "    },\n",
    "\n",
    "    \"GameSphere X\": {\n",
    "        \"name\": \"GameSphere X\",\n",
    "        \"category\": \"游戏机和配件\",\n",
    "        \"brand\": \"GameSphere\",\n",
    "        \"model_number\": \"GS-X\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.9,\n",
    "        \"features\": [\"4K gaming\", \"1TB storage\", \"Backward compatibility\", \"Online multiplayer\"],\n",
    "        \"description\": \"一款下一代游戏机，提供终极游戏体验。\",\n",
    "        \"price\": 499.99\n",
    "    },\n",
    "    \"ProGamer Controller\": {\n",
    "        \"name\": \"ProGamer Controller\",\n",
    "        \"category\": \"游戏机和配件\",\n",
    "        \"brand\": \"ProGamer\",\n",
    "        \"model_number\": \"PG-C100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.2,\n",
    "        \"features\": [\"Ergonomic design\", \"Customizable buttons\", \"Wireless\", \"Rechargeable battery\"],\n",
    "        \"description\": \"一款高品质的游戏手柄，提供精准和舒适的操作。\",\n",
    "        \"price\": 59.99\n",
    "    },\n",
    "    \"GameSphere Y\": {\n",
    "        \"name\": \"GameSphere Y\",\n",
    "        \"category\": \"游戏机和配件\",\n",
    "        \"brand\": \"GameSphere\",\n",
    "        \"model_number\": \"GS-Y\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.8,\n",
    "        \"features\": [\"4K gaming\", \"500GB storage\", \"Backward compatibility\", \"Online multiplayer\"],\n",
    "        \"description\": \"一款体积紧凑、性能强劲的游戏机。\",\n",
    "        \"price\": 399.99\n",
    "    },\n",
    "    \"ProGamer Racing Wheel\": {\n",
    "        \"name\": \"ProGamer Racing Wheel\",\n",
    "        \"category\": \"游戏机和配件\",\n",
    "        \"brand\": \"ProGamer\",\n",
    "        \"model_number\": \"PG-RW200\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.5,\n",
    "        \"features\": [\"Force feedback\", \"Adjustable pedals\", \"Paddle shifters\", \"Compatible with GameSphere X\"],\n",
    "        \"description\": \"使用这款逼真的赛车方向盘，提升您的赛车游戏体验。\",\n",
    "        \"price\": 249.99\n",
    "    },\n",
    "    \"GameSphere VR Headset\": {\n",
    "        \"name\": \"GameSphere VR Headset\",\n",
    "        \"category\": \"游戏机和配件\",\n",
    "        \"brand\": \"GameSphere\",\n",
    "        \"model_number\": \"GS-VR\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.6,\n",
    "        \"features\": [\"Immersive VR experience\", \"Built-in headphones\", \"Adjustable headband\", \"Compatible with GameSphere X\"],\n",
    "        \"description\": \"通过这款舒适的VR头戴设备，进入虚拟现实的世界。\",\n",
    "        \"price\": 299.99\n",
    "    },\n",
    "\n",
    "    \"AudioPhonic Noise-Canceling Headphones\": {\n",
    "        \"name\": \"AudioPhonic Noise-Canceling Headphones\",\n",
    "        \"category\": \"音频设备\",\n",
    "        \"brand\": \"AudioPhonic\",\n",
    "        \"model_number\": \"AP-NC100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.6,\n",
    "        \"features\": [\"Active noise-canceling\", \"Bluetooth\", \"20-hour battery life\", \"Comfortable fit\"],\n",
    "        \"description\": \"通过这款降噪耳机，体验沉浸式的音效。\",\n",
    "        \"price\": 199.99\n",
    "    },\n",
    "    \"WaveSound Bluetooth Speaker\": {\n",
    "        \"name\": \"WaveSound Bluetooth Speaker\",\n",
    "        \"category\": \"音频设备\",\n",
    "        \"brand\": \"WaveSound\",\n",
    "        \"model_number\": \"WS-BS50\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.5,\n",
    "        \"features\": [\"Portable\", \"10-hour battery life\", \"Water-resistant\", \"Built-in microphone\"],\n",
    "        \"description\": \"一款紧凑而多用途的蓝牙音箱，适用于随时随地收听音乐。\",\n",
    "        \"price\": 49.99\n",
    "    },\n",
    "    \"AudioPhonic True Wireless Earbuds\": {\n",
    "        \"name\": \"AudioPhonic True Wireless Earbuds\",\n",
    "        \"category\": \"音频设备\",\n",
    "        \"brand\": \"AudioPhonic\",\n",
    "        \"model_number\": \"AP-TW20\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"True wireless\", \"Bluetooth 5.0\", \"Touch controls\", \"18-hour battery life\"],\n",
    "        \"description\": \"通过这款舒适的真无线耳塞，无需线缆即可享受音乐。\",\n",
    "        \"price\": 79.99\n",
    "    },\n",
    "    \"WaveSound Soundbar\": {\n",
    "        \"name\": \"WaveSound Soundbar\",\n",
    "        \"category\": \"音频设备\",\n",
    "        \"brand\": \"WaveSound\",\n",
    "        \"model_number\": \"WS-SB40\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"2.0 channel\", \"80W output\", \"Bluetooth\", \"Wall-mountable\"],\n",
    "        \"description\": \"使用这款纤薄而功能强大的声音吧，升级您电视的音频体验。\",\n",
    "        \"price\": 99.99\n",
    "    },\n",
    "    \"AudioPhonic Turntable\": {\n",
    "        \"name\": \"AudioPhonic Turntable\",\n",
    "        \"category\": \"音频设备\",\n",
    "        \"brand\": \"AudioPhonic\",\n",
    "        \"model_number\": \"AP-TT10\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.2,\n",
    "        \"features\": [\"3-speed\", \"Built-in speakers\", \"Bluetooth\", \"USB recording\"],\n",
    "        \"description\": \"通过这款现代化的唱片机，重拾您的黑胶唱片收藏。\",\n",
    "        \"price\": 149.99\n",
    "    },\n",
    "\n",
    "    \"FotoSnap DSLR Camera\": {\n",
    "        \"name\": \"FotoSnap DSLR Camera\",\n",
    "        \"category\": \"相机和摄像机\",\n",
    "        \"brand\": \"FotoSnap\",\n",
    "        \"model_number\": \"FS-DSLR200\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.7,\n",
    "        \"features\": [\"24.2MP sensor\", \"1080p video\", \"3-inch LCD\", \"Interchangeable lenses\"],\n",
    "        \"description\": \"使用这款多功能的单反相机，捕捉惊艳的照片和视频。\",\n",
    "        \"price\": 599.99\n",
    "    },\n",
    "    \"ActionCam 4K\": {\n",
    "        \"name\": \"ActionCam 4K\",\n",
    "        \"category\": \"相机和摄像机\",\n",
    "        \"brand\": \"ActionCam\",\n",
    "        \"model_number\": \"AC-4K\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.4,\n",
    "        \"features\": [\"4K video\", \"Waterproof\", \"Image stabilization\", \"Wi-Fi\"],\n",
    "        \"description\": \"使用这款坚固而紧凑的4K运动相机，记录您的冒险旅程。\",\n",
    "        \"price\": 299.99\n",
    "    },\n",
    "    \"FotoSnap Mirrorless Camera\": {\n",
    "        \"name\": \"FotoSnap Mirrorless Camera\",\n",
    "        \"category\": \"相机和摄像机\",\n",
    "        \"brand\": \"FotoSnap\",\n",
    "        \"model_number\": \"FS-ML100\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.6,\n",
    "        \"features\": [\"20.1MP sensor\", \"4K video\", \"3-inch touchscreen\", \"Interchangeable lenses\"],\n",
    "        \"description\": \"一款具有先进功能的小巧轻便的无反相机。\",\n",
    "        \"price\": 799.99\n",
    "    },\n",
    "    \"ZoomMaster Camcorder\": {\n",
    "        \"name\": \"ZoomMaster Camcorder\",\n",
    "        \"category\": \"相机和摄像机\",\n",
    "        \"brand\": \"ZoomMaster\",\n",
    "        \"model_number\": \"ZM-CM50\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.3,\n",
    "        \"features\": [\"1080p video\", \"30x optical zoom\", \"3-inch LCD\", \"Image stabilization\"],\n",
    "        \"description\": \"使用这款易于使用的摄像机，捕捉生活的瞬间。\",\n",
    "        \"price\": 249.99\n",
    "    },\n",
    "    \"FotoSnap Instant Camera\": {\n",
    "        \"name\": \"FotoSnap Instant Camera\",\n",
    "        \"category\": \"相机和摄像机\",\n",
    "        \"brand\": \"FotoSnap\",\n",
    "        \"model_number\": \"FS-IC10\",\n",
    "        \"warranty\": \"1 year\",\n",
    "        \"rating\": 4.1,\n",
    "        \"features\": [\"Instant prints\", \"Built-in flash\", \"Selfie mirror\", \"Battery-powered\"],\n",
    "        \"description\": \"使用这款有趣且便携的即时相机，创造瞬间回忆。\",\n",
    "        \"price\": 69.99\n",
    "    }\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_product_by_name(name):\n",
    "    return products.get(name, None)\n",
    "\n",
    "def get_products_by_category(category):\n",
    "    return [product for product in products.values() if product[\"category\"] == category]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'name': 'TechPro 超极本', 'category': '电脑和笔记本', 'brand': 'TechPro', 'model_number': 'TP-UB100', 'warranty': '1 year', 'rating': 4.5, 'features': ['13.3-inch display', '8GB RAM', '256GB SSD', 'Intel Core i5 处理器'], 'description': '一款时尚轻便的超极本，适合日常使用。', 'price': 799.99}\n"
     ]
    }
   ],
   "source": [
    "print(get_product_by_name(\"TechPro Ultrabook\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'name': 'TechPro 超极本', 'category': '电脑和笔记本', 'brand': 'TechPro', 'model_number': 'TP-UB100', 'warranty': '1 year', 'rating': 4.5, 'features': ['13.3-inch display', '8GB RAM', '256GB SSD', 'Intel Core i5 处理器'], 'description': '一款时尚轻便的超极本，适合日常使用。', 'price': 799.99}, {'name': 'BlueWave 游戏本', 'category': '电脑和笔记本', 'brand': 'BlueWave', 'model_number': 'BW-GL200', 'warranty': '2 years', 'rating': 4.7, 'features': ['15.6-inch display', '16GB RAM', '512GB SSD', 'NVIDIA GeForce RTX 3060'], 'description': '一款高性能的游戏笔记本电脑，提供沉浸式体验。', 'price': 1199.99}, {'name': 'PowerLite Convertible', 'category': '电脑和笔记本', 'brand': 'PowerLite', 'model_number': 'PL-CV300', 'warranty': '1 year', 'rating': 4.3, 'features': ['14-inch touchscreen', '8GB RAM', '256GB SSD', '360-degree hinge'], 'description': '一款多功能的可转换笔记本电脑，具有灵敏的触摸屏。', 'price': 699.99}, {'name': 'TechPro Desktop', 'category': '电脑和笔记本', 'brand': 'TechPro', 'model_number': 'TP-DT500', 'warranty': '1 year', 'rating': 4.4, 'features': ['Intel Core i7 processor', '16GB RAM', '1TB HDD', 'NVIDIA GeForce GTX 1660'], 'description': '一款功能强大的台式电脑，适用于工作和娱乐。', 'price': 999.99}, {'name': 'BlueWave Chromebook', 'category': '电脑和笔记本', 'brand': 'BlueWave', 'model_number': 'BW-CB100', 'warranty': '1 year', 'rating': 4.1, 'features': ['11.6-inch display', '4GB RAM', '32GB eMMC', 'Chrome OS'], 'description': '一款紧凑而价格实惠的Chromebook，适用于日常任务。', 'price': 249.99}]\n"
     ]
    }
   ],
   "source": [
    "print(get_products_by_category(\"电脑和笔记本\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " 请查询SmartX ProPhone智能手机和FotoSnap相机，包括单反相机。\n",
      " 另外，请查询关于电视产品的信息。 \n"
     ]
    }
   ],
   "source": [
    "print(user_message_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'category': '智能手机和配件', 'products': ['SmartX ProPhone']}, {'category': '相机和摄像机', 'products': ['FotoSnap DSLR Camera', 'FotoSnap Mirrorless Camera']}, {'category': '电视和家庭影院系统', 'products': ['CineView 4K TV', 'SoundMax Home Theater', 'CineView 8K TV', 'SoundMax Soundbar', 'CineView OLED TV']}]\n"
     ]
    }
   ],
   "source": [
    "print(category_and_product_response_1)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 将Python字符串读取为Python字典列表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "import json \n",
    "\n",
    "def read_string_to_list(input_string):\n",
    "    if input_string is None:\n",
    "        return None\n",
    "\n",
    "    try:\n",
    "        input_string = input_string.replace(\"'\", \"\\\"\")  # Replace single quotes with double quotes for valid JSON\n",
    "        data = json.loads(input_string)\n",
    "        return data\n",
    "    except json.JSONDecodeError:\n",
    "        print(\"Error: Invalid JSON string\")\n",
    "        return None   \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'category': 'Smartphones and Accessories', 'products': ['SmartX ProPhone']}, {'category': 'Cameras and Camcorders', 'products': ['FotoSnap DSLR Camera']}, {'category': 'Televisions and Home Theater Systems'}]\n"
     ]
    }
   ],
   "source": [
    "category_and_product_list = read_string_to_list(category_and_product_response_1)\n",
    "print(category_and_product_list)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 召回相关产品和类别的详细信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def generate_output_string(data_list):\n",
    "    output_string = \"\"\n",
    "\n",
    "    if data_list is None:\n",
    "        return output_string\n",
    "\n",
    "    for data in data_list:\n",
    "        try:\n",
    "            if \"products\" in data:\n",
    "                products_list = data[\"products\"]\n",
    "                for product_name in products_list:\n",
    "                    product = get_product_by_name(product_name)\n",
    "                    if product:\n",
    "                        output_string += json.dumps(product, indent=4) + \"\\n\"\n",
    "                    else:\n",
    "                        print(f\"Error: Product '{product_name}' not found\")\n",
    "            elif \"category\" in data:\n",
    "                category_name = data[\"category\"]\n",
    "                category_products = get_products_by_category(category_name)\n",
    "                for product in category_products:\n",
    "                    output_string += json.dumps(product, indent=4) + \"\\n\"\n",
    "            else:\n",
    "                print(\"Error: Invalid object format\")\n",
    "        except Exception as e:\n",
    "            print(f\"Error: {e}\")\n",
    "\n",
    "    return output_string "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\n",
      "    \"name\": \"SmartX ProPhone\",\n",
      "    \"category\": \"Smartphones and Accessories\",\n",
      "    \"brand\": \"SmartX\",\n",
      "    \"model_number\": \"SX-PP10\",\n",
      "    \"warranty\": \"1 year\",\n",
      "    \"rating\": 4.6,\n",
      "    \"features\": [\n",
      "        \"6.1-inch display\",\n",
      "        \"128GB storage\",\n",
      "        \"12MP dual camera\",\n",
      "        \"5G\"\n",
      "    ],\n",
      "    \"description\": \"A powerful smartphone with advanced camera features.\",\n",
      "    \"price\": 899.99\n",
      "}\n",
      "{\n",
      "    \"name\": \"FotoSnap DSLR Camera\",\n",
      "    \"category\": \"Cameras and Camcorders\",\n",
      "    \"brand\": \"FotoSnap\",\n",
      "    \"model_number\": \"FS-DSLR200\",\n",
      "    \"warranty\": \"1 year\",\n",
      "    \"rating\": 4.7,\n",
      "    \"features\": [\n",
      "        \"24.2MP sensor\",\n",
      "        \"1080p video\",\n",
      "        \"3-inch LCD\",\n",
      "        \"Interchangeable lenses\"\n",
      "    ],\n",
      "    \"description\": \"Capture stunning photos and videos with this versatile DSLR camera.\",\n",
      "    \"price\": 599.99\n",
      "}\n",
      "{\n",
      "    \"name\": \"CineView 4K TV\",\n",
      "    \"category\": \"Televisions and Home Theater Systems\",\n",
      "    \"brand\": \"CineView\",\n",
      "    \"model_number\": \"CV-4K55\",\n",
      "    \"warranty\": \"2 years\",\n",
      "    \"rating\": 4.8,\n",
      "    \"features\": [\n",
      "        \"55-inch display\",\n",
      "        \"4K resolution\",\n",
      "        \"HDR\",\n",
      "        \"Smart TV\"\n",
      "    ],\n",
      "    \"description\": \"A stunning 4K TV with vibrant colors and smart features.\",\n",
      "    \"price\": 599.99\n",
      "}\n",
      "{\n",
      "    \"name\": \"SoundMax Home Theater\",\n",
      "    \"category\": \"Televisions and Home Theater Systems\",\n",
      "    \"brand\": \"SoundMax\",\n",
      "    \"model_number\": \"SM-HT100\",\n",
      "    \"warranty\": \"1 year\",\n",
      "    \"rating\": 4.4,\n",
      "    \"features\": [\n",
      "        \"5.1 channel\",\n",
      "        \"1000W output\",\n",
      "        \"Wireless subwoofer\",\n",
      "        \"Bluetooth\"\n",
      "    ],\n",
      "    \"description\": \"A powerful home theater system for an immersive audio experience.\",\n",
      "    \"price\": 399.99\n",
      "}\n",
      "{\n",
      "    \"name\": \"CineView 8K TV\",\n",
      "    \"category\": \"Televisions and Home Theater Systems\",\n",
      "    \"brand\": \"CineView\",\n",
      "    \"model_number\": \"CV-8K65\",\n",
      "    \"warranty\": \"2 years\",\n",
      "    \"rating\": 4.9,\n",
      "    \"features\": [\n",
      "        \"65-inch display\",\n",
      "        \"8K resolution\",\n",
      "        \"HDR\",\n",
      "        \"Smart TV\"\n",
      "    ],\n",
      "    \"description\": \"Experience the future of television with this stunning 8K TV.\",\n",
      "    \"price\": 2999.99\n",
      "}\n",
      "{\n",
      "    \"name\": \"SoundMax Soundbar\",\n",
      "    \"category\": \"Televisions and Home Theater Systems\",\n",
      "    \"brand\": \"SoundMax\",\n",
      "    \"model_number\": \"SM-SB50\",\n",
      "    \"warranty\": \"1 year\",\n",
      "    \"rating\": 4.3,\n",
      "    \"features\": [\n",
      "        \"2.1 channel\",\n",
      "        \"300W output\",\n",
      "        \"Wireless subwoofer\",\n",
      "        \"Bluetooth\"\n",
      "    ],\n",
      "    \"description\": \"Upgrade your TV's audio with this sleek and powerful soundbar.\",\n",
      "    \"price\": 199.99\n",
      "}\n",
      "{\n",
      "    \"name\": \"CineView OLED TV\",\n",
      "    \"category\": \"Televisions and Home Theater Systems\",\n",
      "    \"brand\": \"CineView\",\n",
      "    \"model_number\": \"CV-OLED55\",\n",
      "    \"warranty\": \"2 years\",\n",
      "    \"rating\": 4.7,\n",
      "    \"features\": [\n",
      "        \"55-inch display\",\n",
      "        \"4K resolution\",\n",
      "        \"HDR\",\n",
      "        \"Smart TV\"\n",
      "    ],\n",
      "    \"description\": \"Experience true blacks and vibrant colors with this OLED TV.\",\n",
      "    \"price\": 1499.99\n",
      "}\n",
      "\n"
     ]
    }
   ],
   "source": [
    "product_information_for_user_message_1 = generate_output_string(category_and_product_list)\n",
    "print(product_information_for_user_message_1)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 用户搜索基于产品详细信息生成回答"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The SmartX ProPhone has a 6.1-inch display, 128GB storage, 12MP dual camera, and 5G. The FotoSnap DSLR Camera has a 24.2MP sensor, 1080p video, 3-inch LCD, and interchangeable lenses. We have a variety of TVs, including the CineView 4K TV with a 55-inch display, 4K resolution, HDR, and smart TV features. We also have the SoundMax Home Theater system with 5.1 channel, 1000W output, wireless subwoofer, and Bluetooth. Do you have any specific questions about these products or any other products we offer?\n"
     ]
    }
   ],
   "source": [
    "system_message = f\"\"\"\n",
    "You are a customer service assistant for a \\\n",
    "large electronic store. \\\n",
    "Respond in a friendly and helpful tone, \\\n",
    "with very concise answers. \\\n",
    "Make sure to ask the user relevant follow up questions.\n",
    "\"\"\"\n",
    "user_message_1 = f\"\"\"\n",
    "tell me about the smartx pro phone and \\\n",
    "the fotosnap camera, the dslr one. \\\n",
    "Also tell me about your tvs\"\"\"\n",
    "messages =  [  \n",
    "{'role':'system',\n",
    " 'content': system_message},   \n",
    "{'role':'user',\n",
    " 'content': user_message_1},  \n",
    "{'role':'assistant',\n",
    " 'content': f\"\"\"Relevant product information:\\n\\\n",
    " {product_information_for_user_message_1}\"\"\"},   \n",
    "]\n",
    "final_response = get_completion_from_messages(messages)\n",
    "print(final_response)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SmartX ProPhone是一款功能强大的智能手机，拥有6.1英寸的显示屏、128GB的存储空间、12MP的双摄像头和5G网络。FotoSnap相机系列包括单反相机和无反相机，分别拥有不同的像素和视频分辨率，同时支持可更换镜头。电视产品包括CineView 4K TV、CineView 8K TV和CineView OLED TV，分别拥有不同的分辨率和尺寸，同时支持HDR和智能电视功能。此外，我们还提供SoundMax家庭影院和Soundbar音响，以提供更好的音频体验。您有什么关于这些产品的问题吗？\n"
     ]
    }
   ],
   "source": [
    "system_message = f\"\"\"\n",
    "您是一家大型电子商店的客服助理。\n",
    "请以友好和乐于助人的口吻回答问题，并尽量简洁明了。\n",
    "请确保向用户提出相关的后续问题。\n",
    "\"\"\"\n",
    "user_message_1 = f\"\"\"\n",
    "请介绍一下SmartX ProPhone智能手机和FotoSnap相机，包括单反相机。\n",
    "另外，介绍关于电视产品的信息。\"\"\"\n",
    "messages =  [  \n",
    "{'role':'system',\n",
    " 'content': system_message},   \n",
    "{'role':'user',\n",
    " 'content': user_message_1},  \n",
    "{'role':'assistant',\n",
    " 'content': f\"\"\"相关产品信息:\\n\\\n",
    " {product_information_for_user_message_1}\"\"\"},   \n",
    "]\n",
    "final_response = get_completion_from_messages(messages)\n",
    "print(final_response)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过一系列步骤，我们能够加载与用户查询相关的信息，为模型提供所需的相关上下文，以有效回答问题。\n",
    "\n",
    "你可能会想，为什么我们要有选择地将产品描述加载到提示中，而不是包含所有产品描述，让模型使用它所需的信息呢？\n",
    "\n",
    "这其中有几个原因。首先，包含所有产品描述可能会使上下文对模型更加混乱，就像对于试图一次处理大量信息的人一样。当然，对于像GPT-4这样更高级的模型来说，这个问题不太相关，特别是当上下文像这个例子一样结构良好时，模型足够聪明，只会忽略明显不相关的信息。接下来的原因更有说服力。\n",
    "\n",
    "第二个原因是，语言模型有上下文限制，即固定数量的标记允许作为输入和输出。因此，如果你有大量的产品，想象一下你有一个巨大的产品目录，你甚至无法将所有描述都放入上下文窗口中。\n",
    "\n",
    "最后一个原因是，包含所有产品描述可能会使模型过度拟合，因为它会记住所有的产品描述，而不是只记住与查询相关的信息。这可能会导致模型在处理新的查询时表现不佳。\n",
    " \n",
    "使用语言模型时，由于按标记付费，可能会很昂贵。因此，通过有选择地加载信息，可以减少生成响应的成本。一般来说，确定何时动态加载信息到模型的上下文中，并允许模型决定何时需要更多信息，是增强这些模型能力的最佳方法之一。\n",
    "\n",
    "并且要再次强调，您应该将语言模型视为需要必要上下文才能得出有用结论和执行有用任务的推理代理。因此，在这种情况下，我们必须向模型提供产品信息，然后它才能根据该产品信息进行推理，为用户创建有用的答案。\n",
    "\n",
    "在这个例子中，我们只添加了一个特定函数或函数的调用，以通过产品名称获取产品描述或通过类别名称获取类别产品。但是，模型实际上擅长决定何时使用各种不同的工具，并可以正确地使用它们。这就是chat GPT插件背后的思想。我们告诉模型它可以访问哪些工具以及它们的作用，它会在需要从特定来源获取信息或想要采取其他适当的操作时选择使用它们。在我们的例子中，我们只能通过精确的产品和类别名称匹配查找信息，但还有更高级的信息检索技术。检索信息的最有效方法之一是使用自然语言处理技术，例如命名实体识别和关系提取。\n",
    "\n",
    "或者使用文本嵌入来获取信息。嵌入可以用于实现对大型语料库的高效知识检索，以查找与给定查询相关的信息。使用文本嵌入的一个关键优势是它们可以实现模糊或语义搜索，这使您能够在不使用精确关键字的情况下找到相关信息。因此，在我们的例子中，我们不一定需要产品的确切名称，但我们可以使用更一般的查询，如“手机”进行搜索。我们计划很快创建一门全面的课程，介绍如何在各种应用中使用嵌入，敬请关注。\n",
    "\n",
    "接下来，让我们进入下一个视频，讨论如何评估语言模型的输出。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
