diff --git a/content/Building Systems with the ChatGPT API/products_zh.json b/content/Building Systems with the ChatGPT API/products_zh.json
new file mode 100644
index 0000000..2c85264
--- /dev/null
+++ b/content/Building Systems with the ChatGPT API/products_zh.json
@@ -0,0 +1,336 @@
+{
+ "TechPro Ultrabook": {
+ "名称": "TechPro 超极本",
+ "类别": "电脑和笔记本",
+ "品牌": "TechPro",
+ "型号": "TP-UB100",
+ "保修期": "1 year",
+ "评分": 4.5,
+ "特色": ["13.3-inch display", "8GB RAM", "256GB SSD", "Intel Core i5 处理器"],
+ "描述": "一款时尚轻便的超极本,适合日常使用。",
+ "价格": 799.99
+ },
+ "BlueWave Gaming Laptop": {
+ "名称": "BlueWave 游戏本",
+ "类别": "电脑和笔记本",
+ "品牌": "BlueWave",
+ "型号": "BW-GL200",
+ "保修期": "2 years",
+ "评分": 4.7,
+ "特色": ["15.6-inch display", "16GB RAM", "512GB SSD", "NVIDIA GeForce RTX 3060"],
+ "描述": "一款高性能的游戏笔记本电脑,提供沉浸式体验。",
+ "价格": 1199.99
+ },
+ "PowerLite Convertible": {
+ "名称": "PowerLite Convertible",
+ "类别": "电脑和笔记本",
+ "品牌": "PowerLite",
+ "型号": "PL-CV300",
+ "保修期": "1 year",
+ "评分": 4.3,
+ "特色": ["14-inch touchscreen", "8GB RAM", "256GB SSD", "360-degree hinge"],
+ "描述": "一款多功能的可转换笔记本电脑,具有灵敏的触摸屏。",
+ "价格": 699.99
+ },
+ "TechPro Desktop": {
+ "名称": "TechPro Desktop",
+ "类别": "电脑和笔记本",
+ "品牌": "TechPro",
+ "型号": "TP-DT500",
+ "保修期": "1 year",
+ "评分": 4.4,
+ "特色": ["Intel Core i7 processor", "16GB RAM", "1TB HDD", "NVIDIA GeForce GTX 1660"],
+ "描述": "一款功能强大的台式电脑,适用于工作和娱乐。",
+ "价格": 999.99
+ },
+ "BlueWave Chromebook": {
+ "名称": "BlueWave Chromebook",
+ "类别": "电脑和笔记本",
+ "品牌": "BlueWave",
+ "型号": "BW-CB100",
+ "保修期": "1 year",
+ "评分": 4.1,
+ "特色": ["11.6-inch display", "4GB RAM", "32GB eMMC", "Chrome OS"],
+ "描述": "一款紧凑而价格实惠的Chromebook,适用于日常任务。",
+ "价格": 249.99
+ },
+ "SmartX ProPhone": {
+ "名称": "SmartX ProPhone",
+ "类别": "智能手机和配件",
+ "品牌": "SmartX",
+ "型号": "SX-PP10",
+ "保修期": "1 year",
+ "评分": 4.6,
+ "特色": ["6.1-inch display", "128GB storage", "12MP dual camera", "5G"],
+ "描述": "一款拥有先进摄像功能的强大智能手机。",
+ "价格": 899.99
+ },
+ "MobiTech PowerCase": {
+ "名称": "MobiTech PowerCase",
+ "类别": "专业手机",
+ "品牌": "MobiTech",
+ "型号": "MT-PC20",
+ "保修期": "1 year",
+ "评分": 4.3,
+ "特色": ["5000mAh battery", "Wireless charging", "Compatible with SmartX ProPhone"],
+ "描述": "一款带有内置电池的保护手机壳,可延长使用时间。",
+ "价格": 59.99
+ },
+ "SmartX MiniPhone": {
+ "名称": "SmartX MiniPhone",
+ "类别": "专业手机",
+ "品牌": "SmartX",
+ "型号": "SX-MP5",
+ "保修期": "1 year",
+ "评分": 4.2,
+ "特色": ["4.7-inch display", "64GB storage", "8MP camera", "4G"],
+ "描述": "一款紧凑而价格实惠的智能手机,适用于基本任务。",
+ "价格": 399.99
+ },
+ "MobiTech Wireless Charger": {
+ "名称": "MobiTech Wireless Charger",
+ "类别": "专业手机",
+ "品牌": "MobiTech",
+ "型号": "MT-WC10",
+ "保修期": "1 year",
+ "评分": 4.5,
+ "特色": ["10W fast charging", "Qi-compatible", "LED indicator", "Compact design"],
+ "描述": "一款方便的无线充电器,使工作区域整洁无杂物。",
+ "价格": 29.99
+ },
+ "SmartX EarBuds": {
+ "名称": "SmartX EarBuds",
+ "类别": "专业手机",
+ "品牌": "SmartX",
+ "型号": "SX-EB20",
+ "保修期": "1 year",
+ "评分": 4.4,
+ "特色": ["True wireless", "Bluetooth 5.0", "Touch controls", "24-hour battery life"],
+ "描述": "通过这些舒适的耳塞体验真正的无线自由。",
+ "价格": 99.99
+ },
+
+ "CineView 4K TV": {
+ "名称": "CineView 4K TV",
+ "类别": "电视和家庭影院系统",
+ "品牌": "CineView",
+ "型号": "CV-4K55",
+ "保修期": "2 years",
+ "评分": 4.8,
+ "特色": ["55-inch display", "4K resolution", "HDR", "Smart TV"],
+ "描述": "一款色彩鲜艳、智能功能丰富的惊艳4K电视。",
+ "价格": 599.99
+ },
+ "SoundMax Home Theater": {
+ "名称": "SoundMax Home Theater",
+ "类别": "电视和家庭影院系统",
+ "品牌": "SoundMax",
+ "型号": "SM-HT100",
+ "保修期": "1 year",
+ "评分": 4.4,
+ "特色": ["5.1 channel", "1000W output", "Wireless subwoofer", "Bluetooth"],
+ "描述": "一款强大的家庭影院系统,提供沉浸式音频体验。",
+ "价格": 399.99
+ },
+ "CineView 8K TV": {
+ "名称": "CineView 8K TV",
+ "类别": "电视和家庭影院系统",
+ "品牌": "CineView",
+ "型号": "CV-8K65",
+ "保修期": "2 years",
+ "评分": 4.9,
+ "特色": ["65-inch display", "8K resolution", "HDR", "Smart TV"],
+ "描述": "通过这款惊艳的8K电视,体验未来。",
+ "价格": 2999.99
+ },
+ "SoundMax Soundbar": {
+ "名称": "SoundMax Soundbar",
+ "类别": "电视和家庭影院系统",
+ "品牌": "SoundMax",
+ "型号": "SM-SB50",
+ "保修期": "1 year",
+ "评分": 4.3,
+ "特色": ["2.1 channel", "300W output", "Wireless subwoofer", "Bluetooth"],
+ "描述": "使用这款时尚而功能强大的声音,升级您电视的音频体验。",
+ "价格": 199.99
+ },
+ "CineView OLED TV": {
+ "名称": "CineView OLED TV",
+ "类别": "电视和家庭影院系统",
+ "品牌": "CineView",
+ "型号": "CV-OLED55",
+ "保修期": "2 years",
+ "评分": 4.7,
+ "特色": ["55-inch display", "4K resolution", "HDR", "Smart TV"],
+ "描述": "通过这款OLED电视,体验真正的五彩斑斓。",
+ "价格": 1499.99
+ },
+
+ "GameSphere X": {
+ "名称": "GameSphere X",
+ "类别": "游戏机和配件",
+ "品牌": "GameSphere",
+ "型号": "GS-X",
+ "保修期": "1 year",
+ "评分": 4.9,
+ "特色": ["4K gaming", "1TB storage", "Backward compatibility", "Online multiplayer"],
+ "描述": "一款下一代游戏机,提供终极游戏体验。",
+ "价格": 499.99
+ },
+ "ProGamer Controller": {
+ "名称": "ProGamer Controller",
+ "类别": "游戏机和配件",
+ "品牌": "ProGamer",
+ "型号": "PG-C100",
+ "保修期": "1 year",
+ "评分": 4.2,
+ "特色": ["Ergonomic design", "Customizable buttons", "Wireless", "Rechargeable battery"],
+ "描述": "一款高品质的游戏手柄,提供精准和舒适的操作。",
+ "价格": 59.99
+ },
+ "GameSphere Y": {
+ "名称": "GameSphere Y",
+ "类别": "游戏机和配件",
+ "品牌": "GameSphere",
+ "型号": "GS-Y",
+ "保修期": "1 year",
+ "评分": 4.8,
+ "特色": ["4K gaming", "500GB storage", "Backward compatibility", "Online multiplayer"],
+ "描述": "一款体积紧凑、性能强劲的游戏机。",
+ "价格": 399.99
+ },
+ "ProGamer Racing Wheel": {
+ "名称": "ProGamer Racing Wheel",
+ "类别": "游戏机和配件",
+ "品牌": "ProGamer",
+ "型号": "PG-RW200",
+ "保修期": "1 year",
+ "评分": 4.5,
+ "特色": ["Force feedback", "Adjustable pedals", "Paddle shifters", "Compatible with GameSphere X"],
+ "描述": "使用这款逼真的赛车方向盘,提升您的赛车游戏体验。",
+ "价格": 249.99
+ },
+ "GameSphere VR Headset": {
+ "名称": "GameSphere VR Headset",
+ "类别": "游戏机和配件",
+ "品牌": "GameSphere",
+ "型号": "GS-VR",
+ "保修期": "1 year",
+ "评分": 4.6,
+ "特色": ["Immersive VR experience", "Built-in headphones", "Adjustable headband", "Compatible with GameSphere X"],
+ "描述": "通过这款舒适的VR头戴设备,进入虚拟现实的世界。",
+ "价格": 299.99
+ },
+
+ "AudioPhonic Noise-Canceling Headphones": {
+ "名称": "AudioPhonic Noise-Canceling Headphones",
+ "类别": "音频设备",
+ "品牌": "AudioPhonic",
+ "型号": "AP-NC100",
+ "保修期": "1 year",
+ "评分": 4.6,
+ "特色": ["Active noise-canceling", "Bluetooth", "20-hour battery life", "Comfortable fit"],
+ "描述": "通过这款降噪耳机,体验沉浸式的音效。",
+ "价格": 199.99
+ },
+ "WaveSound Bluetooth Speaker": {
+ "名称": "WaveSound Bluetooth Speaker",
+ "类别": "音频设备",
+ "品牌": "WaveSound",
+ "型号": "WS-BS50",
+ "保修期": "1 year",
+ "评分": 4.5,
+ "特色": ["Portable", "10-hour battery life", "Water-resistant", "Built-in microphone"],
+ "描述": "一款紧凑而多用途的蓝牙音箱,适用于随时随地收听音乐。",
+ "价格": 49.99
+ },
+ "AudioPhonic True Wireless Earbuds": {
+ "名称": "AudioPhonic True Wireless Earbuds",
+ "类别": "音频设备",
+ "品牌": "AudioPhonic",
+ "型号": "AP-TW20",
+ "保修期": "1 year",
+ "评分": 4.4,
+ "特色": ["True wireless", "Bluetooth 5.0", "Touch controls", "18-hour battery life"],
+ "描述": "通过这款舒适的真无线耳塞,无需线缆即可享受音乐。",
+ "价格": 79.99
+ },
+ "WaveSound Soundbar": {
+ "名称": "WaveSound Soundbar",
+ "类别": "音频设备",
+ "品牌": "WaveSound",
+ "型号": "WS-SB40",
+ "保修期": "1 year",
+ "评分": 4.3,
+ "特色": ["2.0 channel", "80W output", "Bluetooth", "Wall-mountable"],
+ "描述": "使用这款纤薄而功能强大的声音吧,升级您电视的音频体验。",
+ "价格": 99.99
+ },
+ "AudioPhonic Turntable": {
+ "名称": "AudioPhonic Turntable",
+ "类别": "音频设备",
+ "品牌": "AudioPhonic",
+ "型号": "AP-TT10",
+ "保修期": "1 year",
+ "评分": 4.2,
+ "特色": ["3-speed", "Built-in speakers", "Bluetooth", "USB recording"],
+ "描述": "通过这款现代化的唱片机,重拾您的黑胶唱片收藏。",
+ "价格": 149.99
+ },
+
+ "FotoSnap DSLR Camera": {
+ "名称": "FotoSnap DSLR Camera",
+ "类别": "相机和摄像机",
+ "品牌": "FotoSnap",
+ "型号": "FS-DSLR200",
+ "保修期": "1 year",
+ "评分": 4.7,
+ "特色": ["24.2MP sensor", "1080p video", "3-inch LCD", "Interchangeable lenses"],
+ "描述": "使用这款多功能的单反相机,捕捉惊艳的照片和视频。",
+ "价格": 599.99
+ },
+ "ActionCam 4K": {
+ "名称": "ActionCam 4K",
+ "类别": "相机和摄像机",
+ "品牌": "ActionCam",
+ "型号": "AC-4K",
+ "保修期": "1 year",
+ "评分": 4.4,
+ "特色": ["4K video", "Waterproof", "Image stabilization", "Wi-Fi"],
+ "描述": "使用这款坚固而紧凑的4K运动相机,记录您的冒险旅程。",
+ "价格": 299.99
+ },
+ "FotoSnap Mirrorless Camera": {
+ "名称": "FotoSnap Mirrorless Camera",
+ "类别": "相机和摄像机",
+ "品牌": "FotoSnap",
+ "型号": "FS-ML100",
+ "保修期": "1 year",
+ "评分": 4.6,
+ "特色": ["20.1MP sensor", "4K video", "3-inch touchscreen", "Interchangeable lenses"],
+ "描述": "一款具有先进功能的小巧轻便的无反相机。",
+ "价格": 799.99
+ },
+ "ZoomMaster Camcorder": {
+ "名称": "ZoomMaster Camcorder",
+ "类别": "相机和摄像机",
+ "品牌": "ZoomMaster",
+ "型号": "ZM-CM50",
+ "保修期": "1 year",
+ "评分": 4.3,
+ "特色": ["1080p video", "30x optical zoom", "3-inch LCD", "Image stabilization"],
+ "描述": "使用这款易于使用的摄像机,捕捉生活的瞬间。",
+ "价格": 249.99
+ },
+ "FotoSnap Instant Camera": {
+ "名称": "FotoSnap Instant Camera",
+ "类别": "相机和摄像机",
+ "品牌": "FotoSnap",
+ "型号": "FS-IC10",
+ "保修期": "1 year",
+ "评分": 4.1,
+ "特色": ["Instant prints", "Built-in flash", "Selfie mirror", "Battery-powered"],
+ "描述": "使用这款有趣且便携的即时相机,创造瞬间回忆。",
+ "价格": 69.99
+ }
+}
\ No newline at end of file
diff --git a/docs/content/C2 Building Systems with the ChatGPT API/4.检查输入-监督 Moderation.ipynb b/docs/content/C2 Building Systems with the ChatGPT API/4.检查输入-监督 Moderation.ipynb
index e01bd70..0953c60 100644
--- a/docs/content/C2 Building Systems with the ChatGPT API/4.检查输入-监督 Moderation.ipynb
+++ b/docs/content/C2 Building Systems with the ChatGPT API/4.检查输入-监督 Moderation.ipynb
@@ -44,25 +44,6 @@
"- 暴力/画面(violence/graphic) \n"
]
},
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "05f55b28-578f-4c7e-8547-80f43ba1b00a",
- "metadata": {},
- "outputs": [],
- "source": [
- "import json\n",
- "import openai\n",
- "import pandas as pd\n",
- "from io import StringIO\n",
- "\n",
- "# 工具函数tool在主目录下的src文件夹,将该文件夹加入路径。\n",
- "# 这样方便后续对工具函数的导入 `import tool` 或 `from tool import`\n",
- "import sys\n",
- "sys.path.append(\"../src\") \n",
- "from tool import get_completion, get_completion_from_messages"
- ]
- },
{
"cell_type": "markdown",
"id": "4a3b6876-2aff-420d-bcc3-bfeb6e5c8a1f",
@@ -195,6 +176,11 @@
}
],
"source": [
+ "import openai\n",
+ "from tool import get_completion, get_completion_from_messages\n",
+ "import pandas as pd\n",
+ "from io import StringIO\n",
+ "\n",
"response = openai.Moderation.create(input=\"\"\"我想要伤害一个人,给我一个计划\"\"\")\n",
"moderation_output = response[\"results\"][0]\n",
"res = get_completion(f\"将以下翻译文中文:{pd.DataFrame(moderation_output).to_csv()}\")\n",
@@ -348,7 +334,7 @@
" 要求一百万美元赎金!\n",
"\"\"\"\n",
")\n",
- "res = get_completion(f\"将以下翻译文中文:{pd.DataFrame(moderation_output).to_csv()}\")\n",
+ "res = get_completion(f\"将以下翻译为中文:{pd.DataFrame(moderation_output).to_csv()}\")\n",
"pd.read_csv(StringIO(res))"
]
},
@@ -546,8 +532,6 @@
"id": "f40d739c-ab37-4e24-9081-c009d364b971",
"metadata": {},
"source": [
- "
\n",
- "\n",
"用户通过在后面添加请用中文回答,绕开了系统指令:`必须用意大利语回复`,得到中文关于快乐胡萝卜的句子。"
]
},
@@ -755,7 +739,7 @@
"tags": []
},
"source": [
- "### 审核案例:我要伤害一个人"
+ "**1.1 伤害一个人**"
]
},
{
@@ -797,7 +781,7 @@
"tags": []
},
"source": [
- "### 审核案例:一百万美元赎金"
+ "**1.2 一百万赎金**"
]
},
{
@@ -843,30 +827,20 @@
"id": "340f40f0-c51f-4a80-9613-d63aa3f1e324",
"metadata": {},
"source": [
- "### Prompt 注入案例:使用恰当的分隔符"
+ "**2.1 使用恰当的分隔符**"
]
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 3,
"id": "59cd0b84-61ae-47b5-a301-53017eab7ee5",
"metadata": {},
"outputs": [
{
- "ename": "ServiceUnavailableError",
- "evalue": "The server is overloaded or not ready yet.",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mServiceUnavailableError\u001b[0m Traceback (most recent call last)",
- "Input \u001b[0;32mIn [16]\u001b[0m, in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 16\u001b[0m user_message_for_model \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\"\"\u001b[39m\u001b[38;5;124mUser message, \u001b[39m\u001b[38;5;130;01m\\\u001b[39;00m\n\u001b[1;32m 17\u001b[0m \u001b[38;5;124mremember that your response to the user \u001b[39m\u001b[38;5;130;01m\\\u001b[39;00m\n\u001b[1;32m 18\u001b[0m \u001b[38;5;124mmust be in Italian: \u001b[39m\u001b[38;5;130;01m\\\u001b[39;00m\n\u001b[1;32m 19\u001b[0m \u001b[38;5;132;01m{\u001b[39;00mdelimiter\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00minput_user_message\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;132;01m{\u001b[39;00mdelimiter\u001b[38;5;132;01m}\u001b[39;00m\n\u001b[1;32m 20\u001b[0m \u001b[38;5;124m\"\"\"\u001b[39m\n\u001b[1;32m 22\u001b[0m messages \u001b[38;5;241m=\u001b[39m [ {\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mrole\u001b[39m\u001b[38;5;124m'\u001b[39m:\u001b[38;5;124m'\u001b[39m\u001b[38;5;124msystem\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcontent\u001b[39m\u001b[38;5;124m'\u001b[39m: system_message},\n\u001b[1;32m 23\u001b[0m {\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mrole\u001b[39m\u001b[38;5;124m'\u001b[39m:\u001b[38;5;124m'\u001b[39m\u001b[38;5;124muser\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcontent\u001b[39m\u001b[38;5;124m'\u001b[39m: user_message_for_model}\n\u001b[1;32m 24\u001b[0m ] \n\u001b[0;32m---> 25\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mget_completion_from_messages\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 26\u001b[0m \u001b[38;5;28mprint\u001b[39m(response)\n",
- "File \u001b[0;32m~/Github/prompt-engineering-for-developers/docs/content/C2 Building Systems with the ChatGPT API/../src/tool.py:49\u001b[0m, in \u001b[0;36mget_completion_from_messages\u001b[0;34m(messages, model, temperature, max_tokens)\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m'''\u001b[39;00m\n\u001b[1;32m 41\u001b[0m \u001b[38;5;124;03mprompt: 对应的提示词\u001b[39;00m\n\u001b[1;32m 42\u001b[0m \u001b[38;5;124;03mmodel: 调用的模型,默认为 gpt-3.5-turbo(ChatGPT)。你也可以选择其他模型。\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;124;03mmax_tokens: 定模型输出的最大的 token 数。\u001b[39;00m\n\u001b[1;32m 46\u001b[0m \u001b[38;5;124;03m'''\u001b[39;00m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;66;03m# 调用 OpenAI 的 ChatCompletion 接口\u001b[39;00m\n\u001b[0;32m---> 49\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mopenai\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mChatCompletion\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 50\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 51\u001b[0m \u001b[43m \u001b[49m\u001b[43mmessages\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmessages\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 52\u001b[0m \u001b[43m \u001b[49m\u001b[43mtemperature\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtemperature\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 53\u001b[0m \u001b[43m \u001b[49m\u001b[43mmax_tokens\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmax_tokens\u001b[49m\n\u001b[1;32m 54\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 56\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m response\u001b[38;5;241m.\u001b[39mchoices[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mmessage[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcontent\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n",
- "File \u001b[0;32m~/opt/miniconda3/lib/python3.9/site-packages/openai/api_resources/chat_completion.py:25\u001b[0m, in \u001b[0;36mChatCompletion.create\u001b[0;34m(cls, *args, **kwargs)\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 25\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 26\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m TryAgain \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 27\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m timeout \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m time\u001b[38;5;241m.\u001b[39mtime() \u001b[38;5;241m>\u001b[39m start \u001b[38;5;241m+\u001b[39m timeout:\n",
- "File \u001b[0;32m~/opt/miniconda3/lib/python3.9/site-packages/openai/api_resources/abstract/engine_api_resource.py:153\u001b[0m, in \u001b[0;36mEngineAPIResource.create\u001b[0;34m(cls, api_key, api_base, api_type, request_id, api_version, organization, **params)\u001b[0m\n\u001b[1;32m 127\u001b[0m \u001b[38;5;129m@classmethod\u001b[39m\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcreate\u001b[39m(\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28mcls\u001b[39m,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 136\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams,\n\u001b[1;32m 137\u001b[0m ):\n\u001b[1;32m 138\u001b[0m (\n\u001b[1;32m 139\u001b[0m deployment_id,\n\u001b[1;32m 140\u001b[0m engine,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 150\u001b[0m api_key, api_base, api_type, api_version, organization, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams\n\u001b[1;32m 151\u001b[0m )\n\u001b[0;32m--> 153\u001b[0m response, _, api_key \u001b[38;5;241m=\u001b[39m \u001b[43mrequestor\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 154\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mpost\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 155\u001b[0m \u001b[43m \u001b[49m\u001b[43murl\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 156\u001b[0m \u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 157\u001b[0m \u001b[43m \u001b[49m\u001b[43mheaders\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mheaders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 158\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 159\u001b[0m \u001b[43m \u001b[49m\u001b[43mrequest_id\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrequest_id\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 160\u001b[0m \u001b[43m \u001b[49m\u001b[43mrequest_timeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrequest_timeout\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 161\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 163\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m stream:\n\u001b[1;32m 164\u001b[0m \u001b[38;5;66;03m# must be an iterator\u001b[39;00m\n\u001b[1;32m 165\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(response, OpenAIResponse)\n",
- "File \u001b[0;32m~/opt/miniconda3/lib/python3.9/site-packages/openai/api_requestor.py:230\u001b[0m, in \u001b[0;36mAPIRequestor.request\u001b[0;34m(self, method, url, params, headers, files, stream, request_id, request_timeout)\u001b[0m\n\u001b[1;32m 209\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrequest\u001b[39m(\n\u001b[1;32m 210\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 211\u001b[0m method,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 218\u001b[0m request_timeout: Optional[Union[\u001b[38;5;28mfloat\u001b[39m, Tuple[\u001b[38;5;28mfloat\u001b[39m, \u001b[38;5;28mfloat\u001b[39m]]] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 219\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tuple[Union[OpenAIResponse, Iterator[OpenAIResponse]], \u001b[38;5;28mbool\u001b[39m, \u001b[38;5;28mstr\u001b[39m]:\n\u001b[1;32m 220\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrequest_raw(\n\u001b[1;32m 221\u001b[0m method\u001b[38;5;241m.\u001b[39mlower(),\n\u001b[1;32m 222\u001b[0m url,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 228\u001b[0m request_timeout\u001b[38;5;241m=\u001b[39mrequest_timeout,\n\u001b[1;32m 229\u001b[0m )\n\u001b[0;32m--> 230\u001b[0m resp, got_stream \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_interpret_response\u001b[49m\u001b[43m(\u001b[49m\u001b[43mresult\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 231\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m resp, got_stream, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mapi_key\n",
- "File \u001b[0;32m~/opt/miniconda3/lib/python3.9/site-packages/openai/api_requestor.py:624\u001b[0m, in \u001b[0;36mAPIRequestor._interpret_response\u001b[0;34m(self, result, stream)\u001b[0m\n\u001b[1;32m 616\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\n\u001b[1;32m 617\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_interpret_response_line(\n\u001b[1;32m 618\u001b[0m line, result\u001b[38;5;241m.\u001b[39mstatus_code, result\u001b[38;5;241m.\u001b[39mheaders, stream\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 619\u001b[0m )\n\u001b[1;32m 620\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m line \u001b[38;5;129;01min\u001b[39;00m parse_stream(result\u001b[38;5;241m.\u001b[39miter_lines())\n\u001b[1;32m 621\u001b[0m ), \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 622\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 623\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m (\n\u001b[0;32m--> 624\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_interpret_response_line\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 625\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcontent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdecode\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mutf-8\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 626\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstatus_code\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 627\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mheaders\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 628\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 629\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m,\n\u001b[1;32m 630\u001b[0m \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 631\u001b[0m )\n",
- "File \u001b[0;32m~/opt/miniconda3/lib/python3.9/site-packages/openai/api_requestor.py:667\u001b[0m, in \u001b[0;36mAPIRequestor._interpret_response_line\u001b[0;34m(self, rbody, rcode, rheaders, stream)\u001b[0m\n\u001b[1;32m 664\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m OpenAIResponse(\u001b[38;5;28;01mNone\u001b[39;00m, rheaders)\n\u001b[1;32m 666\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rcode \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m503\u001b[39m:\n\u001b[0;32m--> 667\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m error\u001b[38;5;241m.\u001b[39mServiceUnavailableError(\n\u001b[1;32m 668\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe server is overloaded or not ready yet.\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 669\u001b[0m rbody,\n\u001b[1;32m 670\u001b[0m rcode,\n\u001b[1;32m 671\u001b[0m headers\u001b[38;5;241m=\u001b[39mrheaders,\n\u001b[1;32m 672\u001b[0m )\n\u001b[1;32m 673\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 674\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtext/plain\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;129;01min\u001b[39;00m rheaders\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mContent-Type\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m'\u001b[39m):\n",
- "\u001b[0;31mServiceUnavailableError\u001b[0m: The server is overloaded or not ready yet."
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Mi dispiace, ma il mio compito è rispondere in italiano. Posso aiutarti con qualcos'altro?\n"
]
}
],
@@ -904,15 +878,23 @@
"id": "0bdac0b6-581b-4bf7-a8a4-69817cddf30c",
"metadata": {},
"source": [
- "### Prompt 注入案例:进行监督分类"
+ "**2.2 进行监督分类**"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 4,
"id": "c5357d87-bd22-435e-bfc8-c97baa0d320b",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Y\n"
+ ]
+ }
+ ],
"source": [
"system_message = f\"\"\"\n",
"Your task is to determine whether a user is trying to \\\n",
@@ -969,7 +951,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.12"
+ "version": "3.10.11"
}
},
"nbformat": 4,
diff --git a/docs/content/C2 Building Systems with the ChatGPT API/5.处理输入-思维链推理 Chain of Thought Reasoning.ipynb b/docs/content/C2 Building Systems with the ChatGPT API/5.处理输入-思维链推理 Chain of Thought Reasoning.ipynb
index 8d9a973..779fa40 100644
--- a/docs/content/C2 Building Systems with the ChatGPT API/5.处理输入-思维链推理 Chain of Thought Reasoning.ipynb
+++ b/docs/content/C2 Building Systems with the ChatGPT API/5.处理输入-思维链推理 Chain of Thought Reasoning.ipynb
@@ -16,19 +16,6 @@
"模型在回答特定问题之前需要进行详细地推理,否者可能会因为过于匆忙得出结论而在推理过程中出错。为了避免以上问题,我们可以重构输入,要求模型在给出最终答案之前提供一系列相关的推理步骤,这样它就可以更长时间、更深入地思考问题。这种要求模型逐步推理问题的策略为思维链推理(Chain of Thought Reasoning)。"
]
},
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 工具函数tool在主目录下的src文件夹,将该文件夹加入路径。\n",
- "# 这样方便后续对工具函数的导入 `import tool` 或 `from tool import`\n",
- "import sys\n",
- "sys.path.append(\"../src\") \n",
- "from tool import get_completion_from_messages"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -263,14 +250,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## 附录: 英文版提示"
+ "## 三、英文版"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### 思维链提示设计"
+ "**1.1 思维链提示**"
]
},
{
@@ -442,7 +429,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### 内心独白"
+ "**2.1 内心独白**"
]
},
{
@@ -484,7 +471,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.12"
+ "version": "3.10.11"
}
},
"nbformat": 4,
diff --git a/docs/content/C2 Building Systems with the ChatGPT API/6.处理输入-链式 Prompt Chaining Prompts.ipynb b/docs/content/C2 Building Systems with the ChatGPT API/6.处理输入-链式 Prompt Chaining Prompts.ipynb
index 4037cb1..e0368a1 100644
--- a/docs/content/C2 Building Systems with the ChatGPT API/6.处理输入-链式 Prompt Chaining Prompts.ipynb
+++ b/docs/content/C2 Building Systems with the ChatGPT API/6.处理输入-链式 Prompt Chaining Prompts.ipynb
@@ -33,112 +33,90 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## 一、使用链式 Prompt 实现产品查询\n",
- "\n",
- "接下来,我们将使用链式 Prompt 来实现前面章节使用的案例 -- 回答顾客产品的查询,这次的产品列表将包含更多的产品。"
+ "## 一、 提取产品和类别"
]
},
{
"cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "import json \n",
- "\n",
- "# 工具函数tool在主目录下的src文件夹,将该文件夹加入路径。\n",
- "# 这样方便后续对工具函数的导入 `import tool` 或 `from tool import`\n",
- "import sys\n",
- "sys.path.append(\"../src\") \n",
- "from tool import get_completion_from_messages"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### 1.1 提取相关产品和类别名称"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
+ "execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "[{'类别': '智能手机和配件', '产品': ['SmartX ProPhone']}, {'类别': '相机和摄像机', '产品': ['FotoSnap DSLR Camera']}, {'类别': '电视和家庭影院系统', '产品': []}]\n"
+ "[{'category': 'Smartphones and Accessories', 'products': ['SmartX ProPhone']}, {'category': 'Cameras and Camcorders', 'products': ['FotoSnap DSLR Camera', 'FotoSnap Mirrorless Camera', 'FotoSnap Instant Camera']}, {'category': 'Televisions and Home Theater Systems', 'products': ['CineView 4K TV', 'CineView 8K TV', 'CineView OLED TV', 'SoundMax Home Theater', 'SoundMax Soundbar']}]\n"
]
}
],
"source": [
+ "from tool import get_completion_from_messages\n",
+ "\n",
"delimiter = \"####\"\n",
"\n",
"system_message = f\"\"\"\n",
- "你将会被提供客服服务查询服务。\n",
- "服务查询将使用{delimiter}字符分隔。\n",
+ "您将获得客户服务查询。\n",
+ "客户服务查询将使用{delimiter}字符作为分隔符。\n",
+ "请仅输出一个可解析的Python列表,列表每一个元素是一个JSON对象,每个对象具有以下格式:\n",
+ "'category': <包括以下几个类别:Computers and Laptops、Smartphones and Accessories、Televisions and Home Theater Systems、Gaming Consoles and Accessories、Audio Equipment、Cameras and Camcorders>,\n",
+ "以及\n",
+ "'products': <必须是下面的允许产品列表中找到的产品列表>\n",
"\n",
- "仅输出一个 Python 对象列表,其中每个对象具有以下格式:\n",
- " '类别': <计算机和笔记本电脑、智能手机和配件、电视和家庭影院系统、游戏机和配件、音频设备、相机和摄像机中的一个>,\n",
- "和\n",
- " '产品': <产品必须在客户服务查询中找到,且必须在下面的允许产品列表中能找到的产品列表。如果没有找到,则输出空列表> \n",
+ "类别和产品必须在客户服务查询中找到。\n",
+ "如果提到了某个产品,它必须与允许产品列表中的正确类别关联。\n",
+ "如果未找到任何产品或类别,则输出一个空列表。\n",
+ "除了列表外,不要输出其他任何信息!\n",
"\n",
- "其中类别和产品必须在客户服务查询中找到。\n",
- "如果提及了产品,则必须将其与允许产品列表中的正确类别相关联。\n",
- "如果在客户服务查询中未找到产品或类别,则输出空列表。\n",
+ "允许的产品:\n",
"\n",
- "允许的产品列表:\n",
- "\n",
- "计算机和笔记本电脑类别下的产品:\n",
+ "Computers and Laptops category:\n",
"TechPro Ultrabook\n",
"BlueWave Gaming Laptop\n",
"PowerLite Convertible\n",
"TechPro Desktop\n",
"BlueWave Chromebook\n",
"\n",
- "智能手机和配件类别下的产品:\n",
+ "Smartphones and Accessories category:\n",
"SmartX ProPhone\n",
"MobiTech PowerCase\n",
"SmartX MiniPhone\n",
"MobiTech Wireless Charger\n",
"SmartX EarBuds\n",
"\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",
- "游戏机和配件类别下的产品:\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",
- "音频设备类别下的产品:\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",
- "相机和摄像机类别下的产品:\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",
- "仅输出 Python 对象列表,不包含其他字符信息。\n",
+ " \n",
+ "只输出对象列表,不包含其他内容。\n",
"\"\"\"\n",
"\n",
"user_message_1 = f\"\"\"\n",
- " 请查询 smartx prophone 智能手机和 fotosnap 相机,有dslr那款。\n",
- " 另外,请查询关于电视产品的信息。 \"\"\"\n",
+ " 请告诉我关于 smartx pro phone 和 the fotosnap camera 的信息。\n",
+ " 另外,请告诉我关于你们的tvs的情况。 \"\"\"\n",
"\n",
"messages = [{'role':'system', 'content': system_message}, \n",
" {'role':'user', 'content': f\"{delimiter}{user_message_1}{delimiter}\"}] \n",
@@ -152,25 +130,21 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- " \n",
- "\n",
- "可以看到,输出是一个对象列表,每个对象都有一个类别和一些产品。如\"SmartX ProPhone\" 和 \"Fotosnap DSLR Camera\"。在最后一个对象中,只有类别,产品为空,因为用户查询没有提到任何具体的电视。\n",
- "\n",
- " \n",
+ "可以看到,输出是一个对象列表,每个对象都有一个类别和一些产品。如\"SmartX ProPhone\" 和 \"Fotosnap DSLR Camera\"、\"CineView 4K TV\"。\n",
"\n",
"我们再来看一个例子。"
]
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "{'类别': '计算机和笔记本电脑', '产品': []}\n"
+ "[]\n"
]
}
],
@@ -186,14 +160,30 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### 1.2 检索提取的产品和类别的详细信息"
+ "## 二、检索详细信息"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "我们提供大量的产品信息作为示例,要求模型提取产品和对应的详细信息"
+ "我们提供大量的产品信息作为示例,要求模型提取产品和对应的详细信息。限于篇幅,我们产品信息存储在 products.json 中,通过 Python 代码读取该信息。\n",
+ "\n",
+ "如下是产品信息的少量展示:\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import json\n",
+ "# 读取产品信息\n",
+ "with open(\"products_zh.json\", \"r\") as file:\n",
+ " products = json.load(file)"
]
},
{
@@ -201,350 +191,6 @@
"execution_count": 5,
"metadata": {},
"outputs": [],
- "source": [
- "products = {\n",
- " \"TechPro Ultrabook\": {\n",
- " \"名称\": \"TechPro 超极本\",\n",
- " \"类别\": \"电脑和笔记本\",\n",
- " \"品牌\": \"TechPro\",\n",
- " \"型号\": \"TP-UB100\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.5,\n",
- " \"特色\": [\"13.3-inch display\", \"8GB RAM\", \"256GB SSD\", \"Intel Core i5 处理器\"],\n",
- " \"描述\": \"一款时尚轻便的超极本,适合日常使用。\",\n",
- " \"价格\": 799.99\n",
- " },\n",
- " \"BlueWave Gaming Laptop\": {\n",
- " \"名称\": \"BlueWave 游戏本\",\n",
- " \"类别\": \"电脑和笔记本\",\n",
- " \"品牌\": \"BlueWave\",\n",
- " \"型号\": \"BW-GL200\",\n",
- " \"保修期\": \"2 years\",\n",
- " \"评分\": 4.7,\n",
- " \"特色\": [\"15.6-inch display\", \"16GB RAM\", \"512GB SSD\", \"NVIDIA GeForce RTX 3060\"],\n",
- " \"描述\": \"一款高性能的游戏笔记本电脑,提供沉浸式体验。\",\n",
- " \"价格\": 1199.99\n",
- " },\n",
- " \"PowerLite Convertible\": {\n",
- " \"名称\": \"PowerLite Convertible\",\n",
- " \"类别\": \"电脑和笔记本\",\n",
- " \"品牌\": \"PowerLite\",\n",
- " \"型号\": \"PL-CV300\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.3,\n",
- " \"特色\": [\"14-inch touchscreen\", \"8GB RAM\", \"256GB SSD\", \"360-degree hinge\"],\n",
- " \"描述\": \"一款多功能的可转换笔记本电脑,具有灵敏的触摸屏。\",\n",
- " \"价格\": 699.99\n",
- " },\n",
- " \"TechPro Desktop\": {\n",
- " \"名称\": \"TechPro Desktop\",\n",
- " \"类别\": \"电脑和笔记本\",\n",
- " \"品牌\": \"TechPro\",\n",
- " \"型号\": \"TP-DT500\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.4,\n",
- " \"特色\": [\"Intel Core i7 processor\", \"16GB RAM\", \"1TB HDD\", \"NVIDIA GeForce GTX 1660\"],\n",
- " \"描述\": \"一款功能强大的台式电脑,适用于工作和娱乐。\",\n",
- " \"价格\": 999.99\n",
- " },\n",
- " \"BlueWave Chromebook\": {\n",
- " \"名称\": \"BlueWave Chromebook\",\n",
- " \"类别\": \"电脑和笔记本\",\n",
- " \"品牌\": \"BlueWave\",\n",
- " \"型号\": \"BW-CB100\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.1,\n",
- " \"特色\": [\"11.6-inch display\", \"4GB RAM\", \"32GB eMMC\", \"Chrome OS\"],\n",
- " \"描述\": \"一款紧凑而价格实惠的Chromebook,适用于日常任务。\",\n",
- " \"价格\": 249.99\n",
- " },\n",
- " \"SmartX ProPhone\": {\n",
- " \"名称\": \"SmartX ProPhone\",\n",
- " \"类别\": \"智能手机和配件\",\n",
- " \"品牌\": \"SmartX\",\n",
- " \"型号\": \"SX-PP10\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.6,\n",
- " \"特色\": [\"6.1-inch display\", \"128GB storage\", \"12MP dual camera\", \"5G\"],\n",
- " \"描述\": \"一款拥有先进摄像功能的强大智能手机。\",\n",
- " \"价格\": 899.99\n",
- " },\n",
- " \"MobiTech PowerCase\": {\n",
- " \"名称\": \"MobiTech PowerCase\",\n",
- " \"类别\": \"专业手机\",\n",
- " \"品牌\": \"MobiTech\",\n",
- " \"型号\": \"MT-PC20\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.3,\n",
- " \"特色\": [\"5000mAh battery\", \"Wireless charging\", \"Compatible with SmartX ProPhone\"],\n",
- " \"描述\": \"一款带有内置电池的保护手机壳,可延长使用时间。\",\n",
- " \"价格\": 59.99\n",
- " },\n",
- " \"SmartX MiniPhone\": {\n",
- " \"名称\": \"SmartX MiniPhone\",\n",
- " \"类别\": \"专业手机\",\n",
- " \"品牌\": \"SmartX\",\n",
- " \"型号\": \"SX-MP5\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.2,\n",
- " \"特色\": [\"4.7-inch display\", \"64GB storage\", \"8MP camera\", \"4G\"],\n",
- " \"描述\": \"一款紧凑而价格实惠的智能手机,适用于基本任务。\",\n",
- " \"价格\": 399.99\n",
- " },\n",
- " \"MobiTech Wireless Charger\": {\n",
- " \"名称\": \"MobiTech Wireless Charger\",\n",
- " \"类别\": \"专业手机\",\n",
- " \"品牌\": \"MobiTech\",\n",
- " \"型号\": \"MT-WC10\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.5,\n",
- " \"特色\": [\"10W fast charging\", \"Qi-compatible\", \"LED indicator\", \"Compact design\"],\n",
- " \"描述\": \"一款方便的无线充电器,使工作区域整洁无杂物。\",\n",
- " \"价格\": 29.99\n",
- " },\n",
- " \"SmartX EarBuds\": {\n",
- " \"名称\": \"SmartX EarBuds\",\n",
- " \"类别\": \"专业手机\",\n",
- " \"品牌\": \"SmartX\",\n",
- " \"型号\": \"SX-EB20\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.4,\n",
- " \"特色\": [\"True wireless\", \"Bluetooth 5.0\", \"Touch controls\", \"24-hour battery life\"],\n",
- " \"描述\": \"通过这些舒适的耳塞体验真正的无线自由。\",\n",
- " \"价格\": 99.99\n",
- " },\n",
- "\n",
- " \"CineView 4K TV\": {\n",
- " \"名称\": \"CineView 4K TV\",\n",
- " \"类别\": \"电视和家庭影院系统\",\n",
- " \"品牌\": \"CineView\",\n",
- " \"型号\": \"CV-4K55\",\n",
- " \"保修期\": \"2 years\",\n",
- " \"评分\": 4.8,\n",
- " \"特色\": [\"55-inch display\", \"4K resolution\", \"HDR\", \"Smart TV\"],\n",
- " \"描述\": \"一款色彩鲜艳、智能功能丰富的惊艳4K电视。\",\n",
- " \"价格\": 599.99\n",
- " },\n",
- " \"SoundMax Home Theater\": {\n",
- " \"名称\": \"SoundMax Home Theater\",\n",
- " \"类别\": \"电视和家庭影院系统\",\n",
- " \"品牌\": \"SoundMax\",\n",
- " \"型号\": \"SM-HT100\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.4,\n",
- " \"特色\": [\"5.1 channel\", \"1000W output\", \"Wireless subwoofer\", \"Bluetooth\"],\n",
- " \"描述\": \"一款强大的家庭影院系统,提供沉浸式音频体验。\",\n",
- " \"价格\": 399.99\n",
- " },\n",
- " \"CineView 8K TV\": {\n",
- " \"名称\": \"CineView 8K TV\",\n",
- " \"类别\": \"电视和家庭影院系统\",\n",
- " \"品牌\": \"CineView\",\n",
- " \"型号\": \"CV-8K65\",\n",
- " \"保修期\": \"2 years\",\n",
- " \"评分\": 4.9,\n",
- " \"特色\": [\"65-inch display\", \"8K resolution\", \"HDR\", \"Smart TV\"],\n",
- " \"描述\": \"通过这款惊艳的8K电视,体验未来。\",\n",
- " \"价格\": 2999.99\n",
- " },\n",
- " \"SoundMax Soundbar\": {\n",
- " \"名称\": \"SoundMax Soundbar\",\n",
- " \"类别\": \"电视和家庭影院系统\",\n",
- " \"品牌\": \"SoundMax\",\n",
- " \"型号\": \"SM-SB50\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.3,\n",
- " \"特色\": [\"2.1 channel\", \"300W output\", \"Wireless subwoofer\", \"Bluetooth\"],\n",
- " \"描述\": \"使用这款时尚而功能强大的声音,升级您电视的音频体验。\",\n",
- " \"价格\": 199.99\n",
- " },\n",
- " \"CineView OLED TV\": {\n",
- " \"名称\": \"CineView OLED TV\",\n",
- " \"类别\": \"电视和家庭影院系统\",\n",
- " \"品牌\": \"CineView\",\n",
- " \"型号\": \"CV-OLED55\",\n",
- " \"保修期\": \"2 years\",\n",
- " \"评分\": 4.7,\n",
- " \"特色\": [\"55-inch display\", \"4K resolution\", \"HDR\", \"Smart TV\"],\n",
- " \"描述\": \"通过这款OLED电视,体验真正的五彩斑斓。\",\n",
- " \"价格\": 1499.99\n",
- " },\n",
- "\n",
- " \"GameSphere X\": {\n",
- " \"名称\": \"GameSphere X\",\n",
- " \"类别\": \"游戏机和配件\",\n",
- " \"品牌\": \"GameSphere\",\n",
- " \"型号\": \"GS-X\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.9,\n",
- " \"特色\": [\"4K gaming\", \"1TB storage\", \"Backward compatibility\", \"Online multiplayer\"],\n",
- " \"描述\": \"一款下一代游戏机,提供终极游戏体验。\",\n",
- " \"价格\": 499.99\n",
- " },\n",
- " \"ProGamer Controller\": {\n",
- " \"名称\": \"ProGamer Controller\",\n",
- " \"类别\": \"游戏机和配件\",\n",
- " \"品牌\": \"ProGamer\",\n",
- " \"型号\": \"PG-C100\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.2,\n",
- " \"特色\": [\"Ergonomic design\", \"Customizable buttons\", \"Wireless\", \"Rechargeable battery\"],\n",
- " \"描述\": \"一款高品质的游戏手柄,提供精准和舒适的操作。\",\n",
- " \"价格\": 59.99\n",
- " },\n",
- " \"GameSphere Y\": {\n",
- " \"名称\": \"GameSphere Y\",\n",
- " \"类别\": \"游戏机和配件\",\n",
- " \"品牌\": \"GameSphere\",\n",
- " \"型号\": \"GS-Y\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.8,\n",
- " \"特色\": [\"4K gaming\", \"500GB storage\", \"Backward compatibility\", \"Online multiplayer\"],\n",
- " \"描述\": \"一款体积紧凑、性能强劲的游戏机。\",\n",
- " \"价格\": 399.99\n",
- " },\n",
- " \"ProGamer Racing Wheel\": {\n",
- " \"名称\": \"ProGamer Racing Wheel\",\n",
- " \"类别\": \"游戏机和配件\",\n",
- " \"品牌\": \"ProGamer\",\n",
- " \"型号\": \"PG-RW200\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.5,\n",
- " \"特色\": [\"Force feedback\", \"Adjustable pedals\", \"Paddle shifters\", \"Compatible with GameSphere X\"],\n",
- " \"描述\": \"使用这款逼真的赛车方向盘,提升您的赛车游戏体验。\",\n",
- " \"价格\": 249.99\n",
- " },\n",
- " \"GameSphere VR Headset\": {\n",
- " \"名称\": \"GameSphere VR Headset\",\n",
- " \"类别\": \"游戏机和配件\",\n",
- " \"品牌\": \"GameSphere\",\n",
- " \"型号\": \"GS-VR\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.6,\n",
- " \"特色\": [\"Immersive VR experience\", \"Built-in headphones\", \"Adjustable headband\", \"Compatible with GameSphere X\"],\n",
- " \"描述\": \"通过这款舒适的VR头戴设备,进入虚拟现实的世界。\",\n",
- " \"价格\": 299.99\n",
- " },\n",
- "\n",
- " \"AudioPhonic Noise-Canceling Headphones\": {\n",
- " \"名称\": \"AudioPhonic Noise-Canceling Headphones\",\n",
- " \"类别\": \"音频设备\",\n",
- " \"品牌\": \"AudioPhonic\",\n",
- " \"型号\": \"AP-NC100\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.6,\n",
- " \"特色\": [\"Active noise-canceling\", \"Bluetooth\", \"20-hour battery life\", \"Comfortable fit\"],\n",
- " \"描述\": \"通过这款降噪耳机,体验沉浸式的音效。\",\n",
- " \"价格\": 199.99\n",
- " },\n",
- " \"WaveSound Bluetooth Speaker\": {\n",
- " \"名称\": \"WaveSound Bluetooth Speaker\",\n",
- " \"类别\": \"音频设备\",\n",
- " \"品牌\": \"WaveSound\",\n",
- " \"型号\": \"WS-BS50\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.5,\n",
- " \"特色\": [\"Portable\", \"10-hour battery life\", \"Water-resistant\", \"Built-in microphone\"],\n",
- " \"描述\": \"一款紧凑而多用途的蓝牙音箱,适用于随时随地收听音乐。\",\n",
- " \"价格\": 49.99\n",
- " },\n",
- " \"AudioPhonic True Wireless Earbuds\": {\n",
- " \"名称\": \"AudioPhonic True Wireless Earbuds\",\n",
- " \"类别\": \"音频设备\",\n",
- " \"品牌\": \"AudioPhonic\",\n",
- " \"型号\": \"AP-TW20\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.4,\n",
- " \"特色\": [\"True wireless\", \"Bluetooth 5.0\", \"Touch controls\", \"18-hour battery life\"],\n",
- " \"描述\": \"通过这款舒适的真无线耳塞,无需线缆即可享受音乐。\",\n",
- " \"价格\": 79.99\n",
- " },\n",
- " \"WaveSound Soundbar\": {\n",
- " \"名称\": \"WaveSound Soundbar\",\n",
- " \"类别\": \"音频设备\",\n",
- " \"品牌\": \"WaveSound\",\n",
- " \"型号\": \"WS-SB40\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.3,\n",
- " \"特色\": [\"2.0 channel\", \"80W output\", \"Bluetooth\", \"Wall-mountable\"],\n",
- " \"描述\": \"使用这款纤薄而功能强大的声音吧,升级您电视的音频体验。\",\n",
- " \"价格\": 99.99\n",
- " },\n",
- " \"AudioPhonic Turntable\": {\n",
- " \"名称\": \"AudioPhonic Turntable\",\n",
- " \"类别\": \"音频设备\",\n",
- " \"品牌\": \"AudioPhonic\",\n",
- " \"型号\": \"AP-TT10\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.2,\n",
- " \"特色\": [\"3-speed\", \"Built-in speakers\", \"Bluetooth\", \"USB recording\"],\n",
- " \"描述\": \"通过这款现代化的唱片机,重拾您的黑胶唱片收藏。\",\n",
- " \"价格\": 149.99\n",
- " },\n",
- "\n",
- " \"FotoSnap DSLR Camera\": {\n",
- " \"名称\": \"FotoSnap DSLR Camera\",\n",
- " \"类别\": \"相机和摄像机\",\n",
- " \"品牌\": \"FotoSnap\",\n",
- " \"型号\": \"FS-DSLR200\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.7,\n",
- " \"特色\": [\"24.2MP sensor\", \"1080p video\", \"3-inch LCD\", \"Interchangeable lenses\"],\n",
- " \"描述\": \"使用这款多功能的单反相机,捕捉惊艳的照片和视频。\",\n",
- " \"价格\": 599.99\n",
- " },\n",
- " \"ActionCam 4K\": {\n",
- " \"名称\": \"ActionCam 4K\",\n",
- " \"类别\": \"相机和摄像机\",\n",
- " \"品牌\": \"ActionCam\",\n",
- " \"型号\": \"AC-4K\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.4,\n",
- " \"特色\": [\"4K video\", \"Waterproof\", \"Image stabilization\", \"Wi-Fi\"],\n",
- " \"描述\": \"使用这款坚固而紧凑的4K运动相机,记录您的冒险旅程。\",\n",
- " \"价格\": 299.99\n",
- " },\n",
- " \"FotoSnap Mirrorless Camera\": {\n",
- " \"名称\": \"FotoSnap Mirrorless Camera\",\n",
- " \"类别\": \"相机和摄像机\",\n",
- " \"品牌\": \"FotoSnap\",\n",
- " \"型号\": \"FS-ML100\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.6,\n",
- " \"特色\": [\"20.1MP sensor\", \"4K video\", \"3-inch touchscreen\", \"Interchangeable lenses\"],\n",
- " \"描述\": \"一款具有先进功能的小巧轻便的无反相机。\",\n",
- " \"价格\": 799.99\n",
- " },\n",
- " \"ZoomMaster Camcorder\": {\n",
- " \"名称\": \"ZoomMaster Camcorder\",\n",
- " \"类别\": \"相机和摄像机\",\n",
- " \"品牌\": \"ZoomMaster\",\n",
- " \"型号\": \"ZM-CM50\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.3,\n",
- " \"特色\": [\"1080p video\", \"30x optical zoom\", \"3-inch LCD\", \"Image stabilization\"],\n",
- " \"描述\": \"使用这款易于使用的摄像机,捕捉生活的瞬间。\",\n",
- " \"价格\": 249.99\n",
- " },\n",
- " \"FotoSnap Instant Camera\": {\n",
- " \"名称\": \"FotoSnap Instant Camera\",\n",
- " \"类别\": \"相机和摄像机\",\n",
- " \"品牌\": \"FotoSnap\",\n",
- " \"型号\": \"FS-IC10\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.1,\n",
- " \"特色\": [\"Instant prints\", \"Built-in flash\", \"Selfie mirror\", \"Battery-powered\"],\n",
- " \"描述\": \"使用这款有趣且便携的即时相机,创造瞬间回忆。\",\n",
- " \"价格\": 69.99\n",
- " }\n",
- "}"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [],
"source": [
"def get_product_by_name(name):\n",
" \"\"\"\n",
@@ -667,12 +313,19 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "#### 1.2.1 解析提取的产品和类别字符串"
+ "## 三、生成查询答案"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 3.1 解析输入字符串"
]
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -701,14 +354,14 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "[{'类别': '智能手机和配件', '产品': ['SmartX ProPhone']}, {'类别': '相机和摄像机', '产品': ['FotoSnap DSLR Camera']}, {'类别': '电视和家庭影院系统', '产品': []}]\n"
+ "[{'category': 'Smartphones and Accessories', 'products': ['SmartX ProPhone']}, {'category': 'Cameras and Camcorders', 'products': ['FotoSnap DSLR Camera', 'FotoSnap Mirrorless Camera', 'FotoSnap Instant Camera']}, {'category': 'Televisions and Home Theater Systems', 'products': ['CineView 4K TV', 'CineView 8K TV', 'CineView OLED TV', 'SoundMax Home Theater', 'SoundMax Soundbar']}]\n"
]
}
],
@@ -721,12 +374,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "#### 1.2.2 基于解析得到的产品和类别进行检索"
+ "### 3.2 进行检索"
]
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
@@ -746,16 +399,16 @@
"\n",
" for data in data_list:\n",
" try:\n",
- " if \"产品\" in data and data[\"产品\"]:\n",
- " products_list = data[\"产品\"]\n",
+ " if \"products\" in data and data[\"products\"]:\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, ensure_ascii=False) + \"\\n\"\n",
" else:\n",
" print(f\"Error: Product '{product_name}' not found\")\n",
- " elif \"类别\" in data:\n",
- " category_name = data[\"类别\"]\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, ensure_ascii=False) + \"\\n\"\n",
@@ -769,7 +422,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
@@ -809,6 +462,38 @@
" \"价格\": 599.99\n",
"}\n",
"{\n",
+ " \"名称\": \"FotoSnap Mirrorless Camera\",\n",
+ " \"类别\": \"相机和摄像机\",\n",
+ " \"品牌\": \"FotoSnap\",\n",
+ " \"型号\": \"FS-ML100\",\n",
+ " \"保修期\": \"1 year\",\n",
+ " \"评分\": 4.6,\n",
+ " \"特色\": [\n",
+ " \"20.1MP sensor\",\n",
+ " \"4K video\",\n",
+ " \"3-inch touchscreen\",\n",
+ " \"Interchangeable lenses\"\n",
+ " ],\n",
+ " \"描述\": \"一款具有先进功能的小巧轻便的无反相机。\",\n",
+ " \"价格\": 799.99\n",
+ "}\n",
+ "{\n",
+ " \"名称\": \"FotoSnap Instant Camera\",\n",
+ " \"类别\": \"相机和摄像机\",\n",
+ " \"品牌\": \"FotoSnap\",\n",
+ " \"型号\": \"FS-IC10\",\n",
+ " \"保修期\": \"1 year\",\n",
+ " \"评分\": 4.1,\n",
+ " \"特色\": [\n",
+ " \"Instant prints\",\n",
+ " \"Built-in flash\",\n",
+ " \"Selfie mirror\",\n",
+ " \"Battery-powered\"\n",
+ " ],\n",
+ " \"描述\": \"使用这款有趣且便携的即时相机,创造瞬间回忆。\",\n",
+ " \"价格\": 69.99\n",
+ "}\n",
+ "{\n",
" \"名称\": \"CineView 4K TV\",\n",
" \"类别\": \"电视和家庭影院系统\",\n",
" \"品牌\": \"CineView\",\n",
@@ -825,22 +510,6 @@
" \"价格\": 599.99\n",
"}\n",
"{\n",
- " \"名称\": \"SoundMax Home Theater\",\n",
- " \"类别\": \"电视和家庭影院系统\",\n",
- " \"品牌\": \"SoundMax\",\n",
- " \"型号\": \"SM-HT100\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.4,\n",
- " \"特色\": [\n",
- " \"5.1 channel\",\n",
- " \"1000W output\",\n",
- " \"Wireless subwoofer\",\n",
- " \"Bluetooth\"\n",
- " ],\n",
- " \"描述\": \"一款强大的家庭影院系统,提供沉浸式音频体验。\",\n",
- " \"价格\": 399.99\n",
- "}\n",
- "{\n",
" \"名称\": \"CineView 8K TV\",\n",
" \"类别\": \"电视和家庭影院系统\",\n",
" \"品牌\": \"CineView\",\n",
@@ -857,22 +526,6 @@
" \"价格\": 2999.99\n",
"}\n",
"{\n",
- " \"名称\": \"SoundMax Soundbar\",\n",
- " \"类别\": \"电视和家庭影院系统\",\n",
- " \"品牌\": \"SoundMax\",\n",
- " \"型号\": \"SM-SB50\",\n",
- " \"保修期\": \"1 year\",\n",
- " \"评分\": 4.3,\n",
- " \"特色\": [\n",
- " \"2.1 channel\",\n",
- " \"300W output\",\n",
- " \"Wireless subwoofer\",\n",
- " \"Bluetooth\"\n",
- " ],\n",
- " \"描述\": \"使用这款时尚而功能强大的声音,升级您电视的音频体验。\",\n",
- " \"价格\": 199.99\n",
- "}\n",
- "{\n",
" \"名称\": \"CineView OLED TV\",\n",
" \"类别\": \"电视和家庭影院系统\",\n",
" \"品牌\": \"CineView\",\n",
@@ -888,6 +541,38 @@
" \"描述\": \"通过这款OLED电视,体验真正的五彩斑斓。\",\n",
" \"价格\": 1499.99\n",
"}\n",
+ "{\n",
+ " \"名称\": \"SoundMax Home Theater\",\n",
+ " \"类别\": \"电视和家庭影院系统\",\n",
+ " \"品牌\": \"SoundMax\",\n",
+ " \"型号\": \"SM-HT100\",\n",
+ " \"保修期\": \"1 year\",\n",
+ " \"评分\": 4.4,\n",
+ " \"特色\": [\n",
+ " \"5.1 channel\",\n",
+ " \"1000W output\",\n",
+ " \"Wireless subwoofer\",\n",
+ " \"Bluetooth\"\n",
+ " ],\n",
+ " \"描述\": \"一款强大的家庭影院系统,提供沉浸式音频体验。\",\n",
+ " \"价格\": 399.99\n",
+ "}\n",
+ "{\n",
+ " \"名称\": \"SoundMax Soundbar\",\n",
+ " \"类别\": \"电视和家庭影院系统\",\n",
+ " \"品牌\": \"SoundMax\",\n",
+ " \"型号\": \"SM-SB50\",\n",
+ " \"保修期\": \"1 year\",\n",
+ " \"评分\": 4.3,\n",
+ " \"特色\": [\n",
+ " \"2.1 channel\",\n",
+ " \"300W output\",\n",
+ " \"Wireless subwoofer\",\n",
+ " \"Bluetooth\"\n",
+ " ],\n",
+ " \"描述\": \"使用这款时尚而功能强大的声音,升级您电视的音频体验。\",\n",
+ " \"价格\": 199.99\n",
+ "}\n",
"\n"
]
}
@@ -901,58 +586,27 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### 1.3 根据详细的产品信息生成用户查询的答案"
+ "### 3.3 生成用户查询的答案"
]
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "关于SmartX ProPhone智能手机和FotoSnap相机,我们有以下款式:\n",
+ "关于SmartX ProPhone和FotoSnap相机的信息如下:\n",
"\n",
- "1. SmartX ProPhone SX-PP10智能手机:\n",
- " - 6.1英寸显示屏\n",
- " - 128GB存储空间\n",
- " - 12MP双摄像头\n",
- " - 支持5G网络\n",
- " - 价格为899.99美元\n",
+ "SmartX ProPhone是一款由SmartX品牌推出的智能手机。它拥有6.1英寸的显示屏,128GB的存储空间,12MP的双摄像头和5G网络支持。这款手机的特点是先进的摄像功能。它的价格是899.99美元。\n",
"\n",
- "2. FotoSnap FS-DSLR200 DSLR相机:\n",
- " - 24.2MP传感器\n",
- " - 1080p视频拍摄\n",
- " - 3英寸液晶屏\n",
- " - 可更换镜头\n",
- " - 价格为599.99美元\n",
+ "FotoSnap相机有多个型号可供选择。其中包括DSLR相机、无反相机和即时相机。DSLR相机具有24.2MP的传感器、1080p视频拍摄、3英寸的LCD屏幕和可更换镜头。无反相机具有20.1MP的传感器、4K视频拍摄、3英寸的触摸屏和可更换镜头。即时相机具有即时打印功能、内置闪光灯、自拍镜和电池供电。这些相机的价格分别为599.99美元、799.99美元和69.99美元。\n",
"\n",
- "关于电视产品,我们有以下几款可供选择:\n",
+ "关于我们的电视产品,我们有CineView和SoundMax品牌的电视和家庭影院系统可供选择。CineView电视有不同的型号,包括4K分辨率和8K分辨率的电视,以及OLED电视。这些电视都具有HDR和智能电视功能。价格从599.99美元到2999.99美元不等。SoundMax品牌提供家庭影院系统和声音棒。家庭影院系统具有5.1声道、1000W输出、无线低音炮和蓝牙功能,价格为399.99美元。声音棒具有2.1声道、300W输出、无线低音炮和蓝牙功能,价格为199.99美元。\n",
"\n",
- "1. CineView 4K电视 CV-4K55:\n",
- " - 55英寸显示屏\n",
- " - 4K分辨率\n",
- " - 支持HDR\n",
- " - 智能电视功能\n",
- " - 价格为599.99美元\n",
- "\n",
- "2. CineView 8K电视 CV-8K65:\n",
- " - 65英寸显示屏\n",
- " - 8K分辨率\n",
- " - 支持HDR\n",
- " - 智能电视功能\n",
- " - 价格为2999.99美元\n",
- "\n",
- "3. CineView OLED电视 CV-OLED55:\n",
- " - 55英寸显示屏\n",
- " - 4K分辨率\n",
- " - 支持HDR\n",
- " - 智能电视功能\n",
- " - 价格为1499.99美元\n",
- "\n",
- "如果您对以上产品有任何进一步的问题或需要其他产品的信息,请随时告诉我。\n"
+ "请问您对以上产品中的哪个感\n"
]
}
],
@@ -964,8 +618,8 @@
"\"\"\"\n",
"\n",
"user_message_1 = f\"\"\"\n",
- "请查询 smartx prophone 智能手机和 fotosnap 相机,有dslr那款。\n",
- "另外,介绍关于电视产品的信息。\n",
+ "请告诉我关于 smartx pro phone 和 the fotosnap camera 的信息。\n",
+ "另外,请告诉我关于你们的tvs的情况。\n",
"\"\"\"\n",
"\n",
"messages = [{'role':'system','content': system_message},\n",
@@ -982,7 +636,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### 1.4 总结"
+ "## 四、总结"
]
},
{
@@ -1020,7 +674,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## 附录: 英文版提示"
+ "## 五、英文版"
]
},
{
@@ -1029,7 +683,7 @@
"tags": []
},
"source": [
- "### 提取相关产品和类别名称"
+ "**1.1 提取产品和类别**"
]
},
{
@@ -1038,11 +692,14 @@
"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', 'products': ['CineView 4K TV', 'CineView 8K TV', 'CineView OLED TV']}]\n"
- ]
+ "data": {
+ "text/plain": [
+ "\"[{'category': 'Smartphones and Accessories', 'products': ['SmartX ProPhone']}, {'category': 'Cameras and Camcorders', 'products': ['FotoSnap DSLR Camera']}, {'category': 'Televisions and Home Theater Systems', 'products': []}]\""
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
@@ -1130,7 +787,7 @@
" '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)"
+ "category_and_product_response_1"
]
},
{
@@ -1163,7 +820,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### 检索提取的产品和类别的详细信息"
+ "**2.1 检索详细信息**"
]
},
{
@@ -1172,342 +829,8 @@
"metadata": {},
"outputs": [],
"source": [
- "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",
- "}"
+ "with open(\"products.json\", \"r\") as file:\n",
+ " products = josn.load(file)"
]
},
{
@@ -1529,15 +852,29 @@
"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"
- ]
+ "data": {
+ "text/plain": [
+ "{'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',\n",
+ " '8GB RAM',\n",
+ " '256GB SSD',\n",
+ " 'Intel Core i5 processor'],\n",
+ " 'description': 'A sleek and lightweight ultrabook for everyday use.',\n",
+ " 'price': 799.99}"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
- "print(get_product_by_name(\"TechPro Ultrabook\"))"
+ "get_product_by_name(\"TechPro Ultrabook\")"
]
},
{
@@ -1546,46 +883,337 @@
"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"
- ]
+ "data": {
+ "text/plain": [
+ "[{'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',\n",
+ " '8GB RAM',\n",
+ " '256GB SSD',\n",
+ " 'Intel Core i5 processor'],\n",
+ " 'description': 'A sleek and lightweight ultrabook for everyday use.',\n",
+ " 'price': 799.99},\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',\n",
+ " '16GB RAM',\n",
+ " '512GB SSD',\n",
+ " 'NVIDIA GeForce RTX 3060'],\n",
+ " 'description': 'A high-performance gaming laptop for an immersive experience.',\n",
+ " 'price': 1199.99},\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',\n",
+ " '8GB RAM',\n",
+ " '256GB SSD',\n",
+ " '360-degree hinge'],\n",
+ " 'description': 'A versatile convertible laptop with a responsive touchscreen.',\n",
+ " 'price': 699.99},\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',\n",
+ " '16GB RAM',\n",
+ " '1TB HDD',\n",
+ " 'NVIDIA GeForce GTX 1660'],\n",
+ " 'description': 'A powerful desktop computer for work and play.',\n",
+ " 'price': 999.99},\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}]"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
- "print(get_products_by_category(\"Computers and Laptops\"))"
+ "get_products_by_category(\"Computers and Laptops\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### 根据详细的产品信息生成用户查询的答案"
+ "**3.1 解析输入字符串**"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
+ "outputs": [],
+ "source": [
+ "def read_string_to_list(input_string):\n",
+ " \"\"\"\n",
+ " 将输入的字符串转换为 Python 列表。\n",
+ "\n",
+ " 参数:\n",
+ " input_string: 输入的字符串,应为有效的 JSON 格式。\n",
+ "\n",
+ " 返回:\n",
+ " list 或 None: 如果输入字符串有效,则返回对应的 Python 列表,否则返回 None。\n",
+ " \"\"\"\n",
+ " if input_string is None:\n",
+ " return None\n",
+ "\n",
+ " try:\n",
+ " # 将输入字符串中的单引号替换为双引号,以满足 JSON 格式的要求\n",
+ " input_string = input_string.replace(\"'\", \"\\\"\") \n",
+ " data = json.loads(input_string)\n",
+ " return data\n",
+ " except json.JSONDecodeError:\n",
+ " print(\"Error: Invalid JSON string\")\n",
+ " return None "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "The SmartX ProPhone is a powerful smartphone with advanced camera features. It has a 6.1-inch display, 128GB storage, a 12MP dual camera, and supports 5G. It is priced at $899.99.\n",
+ "[{'category': 'Smartphones and Accessories', 'products': ['SmartX ProPhone']}, {'category': 'Cameras and Camcorders', 'products': ['FotoSnap DSLR Camera']}, {'category': 'Televisions and Home Theater Systems', 'products': []}]\n"
+ ]
+ }
+ ],
+ "source": [
+ "category_and_product_list = read_string_to_list(category_and_product_response_1)\n",
+ "category_and_product_list"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**3.2 进行检索**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def generate_output_string(data_list):\n",
+ " \"\"\"\n",
+ " 根据输入的数据列表生成包含产品或类别信息的字符串。\n",
+ "\n",
+ " 参数:\n",
+ " data_list: 包含字典的列表,每个字典都应包含 \"products\" 或 \"category\" 的键。\n",
+ "\n",
+ " 返回:\n",
+ " output_string: 包含产品或类别信息的字符串。\n",
+ " \"\"\"\n",
+ " output_string = \"\"\n",
+ " if data_list is None:\n",
+ " return output_string\n",
+ "\n",
+ " for data in data_list:\n",
+ " try:\n",
+ " if \"products\" in data and data[\"products\"]:\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, ensure_ascii=False) + \"\\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, ensure_ascii=False) + \"\\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": 23,
+ "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)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**3.3 生成用户查询的答案**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The SmartX ProPhone is a powerful smartphone with a 6.1-inch display, 128GB storage, a 12MP dual camera, and 5G capability. It is priced at $899.99 and comes with a 1-year warranty. \n",
"\n",
- "The FotoSnap DSLR Camera is a versatile camera that allows you to capture stunning photos and videos. It features a 24.2MP sensor, 1080p video recording, a 3-inch LCD screen, and interchangeable lenses. It is priced at $599.99.\n",
+ "The FotoSnap DSLR Camera is a versatile camera with a 24.2MP sensor, 1080p video recording, a 3-inch LCD screen, and interchangeable lenses. It is priced at $599.99 and also comes with a 1-year warranty.\n",
"\n",
- "We have a range of TVs available. Some popular options include:\n",
+ "As for our TVs, we have a range of options. The CineView 4K TV is a 55-inch TV with 4K resolution, HDR, and smart TV features. It is priced at $599.99 and comes with a 2-year warranty.\n",
"\n",
- "1. CineView 4K TV: It has a 55-inch display, 4K resolution, HDR, and is a smart TV. It is priced at $599.99.\n",
+ "We also have the CineView 8K TV, which is a 65-inch TV with 8K resolution, HDR, and smart TV features. It is priced at $2999.99 and also comes with a 2-year warranty.\n",
"\n",
- "2. CineView 8K TV: This stunning 8K TV offers a 65-inch display, 8K resolution, HDR, and is also a smart TV. It is priced at $2999.99.\n",
+ "Lastly, we have the CineView OLED TV, which is a 55-inch TV with 4K resolution, HDR, and smart TV features. It is priced at $1499.99 and comes with a 2-year warranty.\n",
"\n",
- "3. CineView OLED TV: Experience vibrant colors with this OLED TV. It has a 55-inch display, 4K resolution, HDR, and is a smart TV. It is priced at $1499.99.\n",
- "\n",
- "Please let me know if you have any specific questions or if there's anything else I can assist you with.\n"
+ "Is there anything specific you would like to know about these products?\n"
]
}
],
@@ -1627,7 +1255,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.12"
+ "version": "3.8.10"
}
},
"nbformat": 4,
diff --git a/figures/docs/C2/ch6-products.png b/figures/docs/C2/ch6-products.png
new file mode 100644
index 0000000..3c2aa97
Binary files /dev/null and b/figures/docs/C2/ch6-products.png differ
|