Added code for finding top tech products

This commit is contained in:
Ashutosh Singh
2025-08-14 13:05:15 -07:00
parent a2771fac1f
commit 2c1adb0d2d

View File

@@ -0,0 +1,181 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "bbd8585e-0a28-4fd9-80b5-690569f93e16",
"metadata": {},
"outputs": [],
"source": [
"#This notebook will help you to get top tech products with by providing category and subcategory"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "df039118-f462-4a8b-949e-53d3a726e292",
"metadata": {},
"outputs": [],
"source": [
"# imports\n",
"\n",
"import os\n",
"import requests\n",
"from dotenv import load_dotenv\n",
"from bs4 import BeautifulSoup\n",
"from IPython.display import Markdown, display\n",
"from openai import OpenAI\n",
"aa"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e2ffd2e5-d061-446c-891e-15a6d1958ab6",
"metadata": {},
"outputs": [],
"source": [
"# Load environment variables in a file called .env\n",
"\n",
"load_dotenv(override=True)\n",
"api_key = os.getenv('OPENAI_API_KEY')\n",
"\n",
"# Check the key\n",
"\n",
"if not api_key:\n",
" print(\"No API key was found - please head over to the troubleshooting notebook in this folder to identify & fix!\")\n",
"elif not api_key.startswith(\"sk-proj-\"):\n",
" print(\"An API key was found, but it doesn't start sk-proj-; please check you're using the right key - see troubleshooting notebook\")\n",
"elif api_key.strip() != api_key:\n",
" print(\"An API key was found, but it looks like it might have space or tab characters at the start or end - please remove them - see troubleshooting notebook\")\n",
"else:\n",
" print(\"API key found and looks good so far!\")\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "92e26007-521f-4ea2-9df9-edd77dd7e183",
"metadata": {},
"outputs": [],
"source": [
"openai = OpenAI()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "27d21593-8feb-42e4-bbc0-2e949b51137d",
"metadata": {},
"outputs": [],
"source": [
"def tech_product(category_subcategory_budget):\n",
" parts = category_subcategory_budget.split('_')\n",
" return f\"{parts[0]}-{parts[1]}-{parts[2]}\""
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "dd978d25-5b84-4122-af7c-116f2bf72179",
"metadata": {},
"outputs": [],
"source": [
"def messages_for(products):\n",
" return [\n",
" {\"role\": \"system\", \"content\": \"you are a tech product expert and you need to suggest the best suited product available in India basis the input received in the form of category-subcategory-budget (in inr),\\\n",
" revert with category and subcategory and show the product links as well along with pros and cons, respond in markdown\"},\n",
" {\"role\": \"user\", \"content\": tech_product(products)}\n",
" ]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b916db7a-81a4-41d9-87c2-a2346fd874d2",
"metadata": {},
"outputs": [],
"source": [
"messages_for(\"phone_gaming_40000\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3b4bb3f1-95de-4eb5-afe1-068744f93301",
"metadata": {},
"outputs": [],
"source": [
"def get_top_products(category_subcategory):\n",
" response = openai.chat.completions.create(\n",
" model = \"gpt-4o-mini\",\n",
" messages= messages_for(category_subcategory)\n",
" )\n",
" return response.choices[0].message.content \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c9272942-acfe-4fca-bd0a-3435c1ee6691",
"metadata": {},
"outputs": [],
"source": [
"get_top_products('phone_gaming_30000')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2c2b3b9a-aceb-4f00-8c8d-8f6837ab94fc",
"metadata": {},
"outputs": [],
"source": [
"def display_markdown(category_subcategory_budget):\n",
" output = get_top_products(category_subcategory_budget)\n",
" display(Markdown(output))\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6c135dd7-4ed4-48ee-ba3f-9b4ca1c32149",
"metadata": {},
"outputs": [],
"source": [
"display_markdown('Console_gaming_100000')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0ba06c55-7ef9-47eb-aeaf-3c4a7b29bccc",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.11.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}