2026-06-24 03:00:15 [scrapy.utils.log] INFO: Scrapy 2.12.0 started (bot: SwiggyReviewData) 2026-06-24 03:00:15 [scrapy.utils.log] INFO: Versions: lxml 6.0.2.0, libxml2 2.14.6, cssselect 1.3.0, parsel 1.10.0, w3lib 2.3.1, Twisted 25.5.0, Python 3.12.3 (main, Mar 23 2026, 19:04:32) [GCC 13.3.0], pyOpenSSL 25.1.0 (OpenSSL 3.5.2 5 Aug 2025), cryptography 45.0.6, Platform Linux-6.17.0-1013-aws-x86_64-with-glibc2.39 2026-06-24 03:00:15 [scrapy.addons] INFO: Enabled addons: [] 2026-06-24 03:00:15 [asyncio] DEBUG: Using selector: EpollSelector 2026-06-24 03:00:15 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor 2026-06-24 03:00:15 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop 2026-06-24 03:00:15 [scrapy.utils.log] DEBUG: Using reactor: twisted.internet.asyncioreactor.AsyncioSelectorReactor 2026-06-24 03:00:15 [scrapy.utils.log] DEBUG: Using asyncio event loop: asyncio.unix_events._UnixSelectorEventLoop 2026-06-24 03:00:15 [scrapy.extensions.telnet] INFO: Telnet Password: bba8ba9751bbd524 2026-06-24 03:00:15 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.corestats.CoreStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.memusage.MemoryUsage', 'scrapy.extensions.logstats.LogStats'] 2026-06-24 03:00:15 [scrapy.crawler] INFO: Overridden settings: {'BOT_NAME': 'SwiggyReviewData', 'FEED_EXPORT_ENCODING': 'utf-8', 'LOG_FILE': '/home/ubuntu/logs/SwiggyReviewData/swiggy_review_data/cf3d352e6f7811f197d60aab37b1cebd.log', 'NEWSPIDER_MODULE': 'SwiggyReviewData.spiders', 'SPIDER_MODULES': ['SwiggyReviewData.spiders'], 'TWISTED_REACTOR': 'twisted.internet.asyncioreactor.AsyncioSelectorReactor'} 2026-06-24 03:00:15 [scrapy.middleware] INFO: Enabled downloader middlewares: ['scrapy.downloadermiddlewares.offsite.OffsiteMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats'] 2026-06-24 03:00:15 [scrapy.middleware] INFO: Enabled spider middlewares: ['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware'] 2026-06-24 03:00:16 [scrapy.middleware] INFO: Enabled item pipelines: ['SwiggyReviewData.pipelines.SwiggyreviewdataPipeline'] 2026-06-24 03:00:16 [scrapy.core.engine] INFO: Spider opened 2026-06-24 03:00:16 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2026-06-24 03:00:16 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6026 2026-06-24 03:00:16 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:16 [py.warnings] WARNING: /home/ubuntu/eggs/SwiggyReviewData/1777095842.egg/SwiggyReviewData/spiders/SwiggyReviewData.py:183: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. comp_response = pd.read_sql_query(comp_query, self.conn) 2026-06-24 03:00:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:17 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:18 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:18 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:19 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.engine] DEBUG: Crawled (200) (referer: https://partner-self-client.swiggy.com/) 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.scraper] DEBUG: Scraped from <200 https://vhc-composer.swiggy.com/query?query=getOrderRatingDetails> None 2026-06-24 03:00:20 [scrapy.core.engine] INFO: Closing spider (finished) 2026-06-24 03:00:21 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-88e2a569-7fd7-4587-b214-9fef2d007e69', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n So delicious!!! \nI will order again. \n Customer Rating:\n 5 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:21 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:21 [httpcore.connection] DEBUG: connect_tcp.started host='bedrock-mantle.ap-south-1.api.aws' port=443 local_address=None timeout=5.0 socket_options=None 2026-06-24 03:00:21 [httpcore.connection] DEBUG: connect_tcp.complete return_value= 2026-06-24 03:00:21 [httpcore.connection] DEBUG: start_tls.started ssl_context= server_hostname='bedrock-mantle.ap-south-1.api.aws' timeout=5.0 2026-06-24 03:00:21 [httpcore.connection] DEBUG: start_tls.complete return_value= 2026-06-24 03:00:21 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:21 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:21 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:21 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:21 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:23 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:23 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'3538'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_zc4exo7p57bw3hzchpf2cvdayuo5uohupkhdh3ellrdjehe5beia'), (b'x-request-id', b'req_zc4exo7p57bw3hzchpf2cvdayuo5uohupkhdh3ellrdjehe5beia'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:23 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:23 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:23 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:23 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:23 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:23 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:23 GMT', 'content-type': 'application/json', 'content-length': '3538', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_zc4exo7p57bw3hzchpf2cvdayuo5uohupkhdh3ellrdjehe5beia', 'x-request-id': 'req_zc4exo7p57bw3hzchpf2cvdayuo5uohupkhdh3ellrdjehe5beia', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:23 [openai._base_client] DEBUG: request_id: req_zc4exo7p57bw3hzchpf2cvdayuo5uohupkhdh3ellrdjehe5beia 2026-06-24 03:00:24 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-5d89fa67-0b6d-4648-8461-02933631e7be', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n Best taste 😋 \n\n Customer Rating:\n 5 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:24 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:24 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:24 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:24 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:24 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:24 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:25 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:25 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'1768'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_oqf27ljwfvf5pseluquxkem4i2knulr4f4uwynnl6qx265uetoaq'), (b'x-request-id', b'req_oqf27ljwfvf5pseluquxkem4i2knulr4f4uwynnl6qx265uetoaq'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:25 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:25 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:25 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:25 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:25 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:25 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:25 GMT', 'content-type': 'application/json', 'content-length': '1768', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_oqf27ljwfvf5pseluquxkem4i2knulr4f4uwynnl6qx265uetoaq', 'x-request-id': 'req_oqf27ljwfvf5pseluquxkem4i2knulr4f4uwynnl6qx265uetoaq', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:25 [openai._base_client] DEBUG: request_id: req_oqf27ljwfvf5pseluquxkem4i2knulr4f4uwynnl6qx265uetoaq 2026-06-24 03:00:25 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-2cac1f43-fe54-416b-8736-6bcb31a4a5c7', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n Delicious \n Customer Rating:\n 5 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:25 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:25 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:25 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:25 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:25 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:25 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:26 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:26 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'2475'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_hurcuy3clpkuhap4474tg5ckq6dpbm5derrm65r2q6kc32t7e7aq'), (b'x-request-id', b'req_hurcuy3clpkuhap4474tg5ckq6dpbm5derrm65r2q6kc32t7e7aq'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:26 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:26 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:26 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:26 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:26 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:26 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:26 GMT', 'content-type': 'application/json', 'content-length': '2475', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_hurcuy3clpkuhap4474tg5ckq6dpbm5derrm65r2q6kc32t7e7aq', 'x-request-id': 'req_hurcuy3clpkuhap4474tg5ckq6dpbm5derrm65r2q6kc32t7e7aq', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:26 [openai._base_client] DEBUG: request_id: req_hurcuy3clpkuhap4474tg5ckq6dpbm5derrm65r2q6kc32t7e7aq 2026-06-24 03:00:26 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-b56b7bf4-8279-4391-83f4-6f2f09ea5950', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n It\'s a nice one\n Customer Rating:\n 4 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:26 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:26 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:26 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:26 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:26 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:26 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:27 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:27 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'2069'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_q3zfk4gepfmn5njj7eu7yekrjahluvedw7quoearpve5ipcnwaxa'), (b'x-request-id', b'req_q3zfk4gepfmn5njj7eu7yekrjahluvedw7quoearpve5ipcnwaxa'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:27 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:27 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:27 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:27 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:27 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:27 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:27 GMT', 'content-type': 'application/json', 'content-length': '2069', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_q3zfk4gepfmn5njj7eu7yekrjahluvedw7quoearpve5ipcnwaxa', 'x-request-id': 'req_q3zfk4gepfmn5njj7eu7yekrjahluvedw7quoearpve5ipcnwaxa', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:27 [openai._base_client] DEBUG: request_id: req_q3zfk4gepfmn5njj7eu7yekrjahluvedw7quoearpve5ipcnwaxa 2026-06-24 03:00:27 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-82e00410-620d-48ee-99b1-d3453cf50a3b', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n Not satisfied\n Customer Rating:\n 2 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:27 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:27 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:27 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:27 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:27 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:27 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:28 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:28 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'1946'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_45wnnaej6j24aqjkbrtczkxnsqgkwrzaesepeog5oc3dsb7mqpva'), (b'x-request-id', b'req_45wnnaej6j24aqjkbrtczkxnsqgkwrzaesepeog5oc3dsb7mqpva'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:28 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:28 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:28 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:28 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:28 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:28 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:28 GMT', 'content-type': 'application/json', 'content-length': '1946', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_45wnnaej6j24aqjkbrtczkxnsqgkwrzaesepeog5oc3dsb7mqpva', 'x-request-id': 'req_45wnnaej6j24aqjkbrtczkxnsqgkwrzaesepeog5oc3dsb7mqpva', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:28 [openai._base_client] DEBUG: request_id: req_45wnnaej6j24aqjkbrtczkxnsqgkwrzaesepeog5oc3dsb7mqpva 2026-06-24 03:00:28 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-6dd4ae23-8537-4a90-bd2c-aee76dbc294f', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n Very blanned chicken and soya \nAnd the roll was very dry no sauces was there\n Customer Rating:\n 1 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:28 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:28 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:28 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:28 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:28 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:28 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:32 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:32 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'5037'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_o2z7p4zwmouochn7ypp34z5jmbb2txrzfwtuxfvzh26auvxuodea'), (b'x-request-id', b'req_o2z7p4zwmouochn7ypp34z5jmbb2txrzfwtuxfvzh26auvxuodea'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:32 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:32 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:32 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:32 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:32 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:32 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:32 GMT', 'content-type': 'application/json', 'content-length': '5037', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_o2z7p4zwmouochn7ypp34z5jmbb2txrzfwtuxfvzh26auvxuodea', 'x-request-id': 'req_o2z7p4zwmouochn7ypp34z5jmbb2txrzfwtuxfvzh26auvxuodea', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:32 [openai._base_client] DEBUG: request_id: req_o2z7p4zwmouochn7ypp34z5jmbb2txrzfwtuxfvzh26auvxuodea 2026-06-24 03:00:32 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-76fe40e5-bdbe-4d13-8d23-7788fbaf6db3', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n I am really liking the taste and quantity. I am non veg guy but liking your veg stuff. Thanks for making my tummy 😊 \n Customer Rating:\n 5 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:32 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:32 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:32 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:32 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:32 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:32 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:34 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:34 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'3893'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_biqli3ajyxis34a6dqpbf4l5ng2l2mcdqsdgpcl7kjjpirlduyyq'), (b'x-request-id', b'req_biqli3ajyxis34a6dqpbf4l5ng2l2mcdqsdgpcl7kjjpirlduyyq'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:34 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:34 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:34 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:34 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:34 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:34 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:34 GMT', 'content-type': 'application/json', 'content-length': '3893', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_biqli3ajyxis34a6dqpbf4l5ng2l2mcdqsdgpcl7kjjpirlduyyq', 'x-request-id': 'req_biqli3ajyxis34a6dqpbf4l5ng2l2mcdqsdgpcl7kjjpirlduyyq', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:34 [openai._base_client] DEBUG: request_id: req_biqli3ajyxis34a6dqpbf4l5ng2l2mcdqsdgpcl7kjjpirlduyyq 2026-06-24 03:00:34 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-339d6340-3a61-4b95-83df-1f925c26786e', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n Rasmalai nahi aayi, pura order nahi bhejha\n\n Customer Rating:\n 1 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:34 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:34 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:34 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:34 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:34 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:34 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:37 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:37 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'3589'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_xpipnijc2u5ce337vivxtgcqjioxuf7gxv2eb43mmqzmkbnf2nxq'), (b'x-request-id', b'req_xpipnijc2u5ce337vivxtgcqjioxuf7gxv2eb43mmqzmkbnf2nxq'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:37 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:37 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:37 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:37 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:37 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:37 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:37 GMT', 'content-type': 'application/json', 'content-length': '3589', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_xpipnijc2u5ce337vivxtgcqjioxuf7gxv2eb43mmqzmkbnf2nxq', 'x-request-id': 'req_xpipnijc2u5ce337vivxtgcqjioxuf7gxv2eb43mmqzmkbnf2nxq', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:37 [openai._base_client] DEBUG: request_id: req_xpipnijc2u5ce337vivxtgcqjioxuf7gxv2eb43mmqzmkbnf2nxq 2026-06-24 03:00:37 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-ab17a80f-881c-45b8-929c-45e8056f42d4', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n Only box was looking good \n\nFood teast was not good \nBasi khana Diya kya\n Customer Rating:\n 1 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:37 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:37 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:37 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:37 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:37 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:37 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:39 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:39 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'3245'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_4t6gumd7kbyy2gmnwlwulsmiohpsvki6xzswfrmwzhcldlr3uezq'), (b'x-request-id', b'req_4t6gumd7kbyy2gmnwlwulsmiohpsvki6xzswfrmwzhcldlr3uezq'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:39 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:39 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:39 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:39 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:39 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:39 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:39 GMT', 'content-type': 'application/json', 'content-length': '3245', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_4t6gumd7kbyy2gmnwlwulsmiohpsvki6xzswfrmwzhcldlr3uezq', 'x-request-id': 'req_4t6gumd7kbyy2gmnwlwulsmiohpsvki6xzswfrmwzhcldlr3uezq', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:39 [openai._base_client] DEBUG: request_id: req_4t6gumd7kbyy2gmnwlwulsmiohpsvki6xzswfrmwzhcldlr3uezq 2026-06-24 03:00:39 [openai._base_client] DEBUG: Request options: {'method': 'post', 'url': '/responses', 'files': None, 'idempotency_key': 'stainless-python-retry-42e7f92e-594c-4c3c-889b-5642ea76ae97', 'content': None, 'json_data': {'input': ' You are an expert restaurant review analyst.\n Analyze the customer review using Aspect-Based Sentiment Analysis (ABSA).\n Your job is to identify every distinct aspect mentioned in the review and classify each one.\n Use this taxonomy of aspects and corresponding subcategories/root:\n Food:\n - Taste\n - Food Quality\n - Portion Size / Quantity\n - Freshness\n - Presentation\n - Food Temperature\n - Consistency\n - Menu Variety\n Service:\n - Staff Behavior\n - Friendliness\n - Attentiveness\n - Speed of Service\n - Order Accuracy\n - Problem Resolution\n Delivery:\n - Delivery Time\n - Packaging Quality\n - Food Spillage\n - Order Completeness\n - Food Condition on Arrival\n Value:\n - Pricing\n - Value for Money\n Hygiene:\n - Cleanliness\n - Food Safety\n Ambience:\n - Seating\n - Noise\n - Lighting\n - Comfort\n For each aspect detected, return:\n 1. aspect\n 2. subcategory/root cause\n 3. sentiment (Positive, Negative, Neutral, Mixed)\n 4. severity (Low, Medium, High)\n 5. intent (Praise, Complaint, Suggestion, Refund Request, Churn Risk, Loyalty Signal)\n 6. evidence (exact phrase from the review supporting the classification)\n Rules:\n - A single review may contain multiple aspects.\n - Extract ALL aspects mentioned. \n - Do not infer aspects not mentioned.\n - Do not infer subcategories not mentioned.\n - If one sentence contains both positive and negative signals for the same aspect, mark sentiment as Mixed.\n - Be strict and operationally useful.\n - Focus on actionable business insights.\n - Also provide an overall review sentiment (Positive, Negative, Neutral, Mixed).\n Return output ONLY in valid JSON using this format:\n {\n "overall_sentiment": "",\n "aspects": \n {\n "aspect": "",\n "subcategory": "",\n "sentiment": "",\n "severity": "",\n "intent": "",\n "evidence": ""\n }\n }\n\n Customer Review:\n Very fresh delicious \nSuper tasty 10/10\n Customer Rating:\n 3 ', 'model': 'openai.gpt-oss-120b'}} 2026-06-24 03:00:39 [openai._base_client] DEBUG: Sending HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses 2026-06-24 03:00:39 [httpcore.http11] DEBUG: send_request_headers.started request= 2026-06-24 03:00:39 [httpcore.http11] DEBUG: send_request_headers.complete 2026-06-24 03:00:39 [httpcore.http11] DEBUG: send_request_body.started request= 2026-06-24 03:00:39 [httpcore.http11] DEBUG: send_request_body.complete 2026-06-24 03:00:39 [httpcore.http11] DEBUG: receive_response_headers.started request= 2026-06-24 03:00:40 [httpcore.http11] DEBUG: receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Date', b'Wed, 24 Jun 2026 03:00:40 GMT'), (b'Content-Type', b'application/json'), (b'Content-Length', b'2283'), (b'Connection', b'keep-alive'), (b'x-amzn-requestid', b'req_cebdtgaegxgnc6igvsvaxxwt6gh3jjokj32mfnwfg2p3bgi3kiia'), (b'x-request-id', b'req_cebdtgaegxgnc6igvsvaxxwt6gh3jjokj32mfnwfg2p3bgi3kiia'), (b'vary', b'origin, access-control-request-method, access-control-request-headers'), (b'access-control-allow-origin', b'*'), (b'access-control-expose-headers', b'x-amzn-requestid,x-request-id,date')]) 2026-06-24 03:00:40 [httpx] INFO: HTTP Request: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "HTTP/1.1 200 OK" 2026-06-24 03:00:40 [httpcore.http11] DEBUG: receive_response_body.started request= 2026-06-24 03:00:40 [httpcore.http11] DEBUG: receive_response_body.complete 2026-06-24 03:00:40 [httpcore.http11] DEBUG: response_closed.started 2026-06-24 03:00:40 [httpcore.http11] DEBUG: response_closed.complete 2026-06-24 03:00:40 [openai._base_client] DEBUG: HTTP Response: POST https://bedrock-mantle.ap-south-1.api.aws/v1/responses "200 OK" Headers({'date': 'Wed, 24 Jun 2026 03:00:40 GMT', 'content-type': 'application/json', 'content-length': '2283', 'connection': 'keep-alive', 'x-amzn-requestid': 'req_cebdtgaegxgnc6igvsvaxxwt6gh3jjokj32mfnwfg2p3bgi3kiia', 'x-request-id': 'req_cebdtgaegxgnc6igvsvaxxwt6gh3jjokj32mfnwfg2p3bgi3kiia', 'vary': 'origin, access-control-request-method, access-control-request-headers', 'access-control-allow-origin': '*', 'access-control-expose-headers': 'x-amzn-requestid,x-request-id,date'}) 2026-06-24 03:00:40 [openai._base_client] DEBUG: request_id: req_cebdtgaegxgnc6igvsvaxxwt6gh3jjokj32mfnwfg2p3bgi3kiia 2026-06-24 03:00:40 [scrapy.statscollectors] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 367630, 'downloader/request_count': 103, 'downloader/request_method_count/POST': 103, 'downloader/response_bytes': 182990, 'downloader/response_count': 103, 'downloader/response_status_count/200': 103, 'elapsed_time_seconds': 24.20055, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2026, 6, 24, 3, 0, 40, 750640, tzinfo=datetime.timezone.utc), 'httpcompression/response_bytes': 271093, 'httpcompression/response_count': 103, 'item_scraped_count': 97, 'items_per_minute': None, 'log_count/DEBUG': 349, 'log_count/INFO': 20, 'log_count/WARNING': 1, 'memusage/max': 145461248, 'memusage/startup': 145461248, 'request_depth_max': 6, 'response_received_count': 103, 'responses_per_minute': None, 'scheduler/dequeued': 103, 'scheduler/dequeued/memory': 103, 'scheduler/enqueued': 103, 'scheduler/enqueued/memory': 103, 'start_time': datetime.datetime(2026, 6, 24, 3, 0, 16, 550090, tzinfo=datetime.timezone.utc)} 2026-06-24 03:00:40 [scrapy.core.engine] INFO: Spider closed (finished) 2026-06-24 03:00:40 [httpcore.connection] DEBUG: close.started 2026-06-24 03:00:40 [httpcore.connection] DEBUG: close.complete