{"id":28493418,"url":"https://github.com/qdrant/goods_categorization_demo","last_synced_at":"2025-07-08T11:31:05.693Z","repository":{"id":45782723,"uuid":"382963062","full_name":"qdrant/goods_categorization_demo","owner":"qdrant","description":"Demo example of consumer goods categorization","archived":false,"fork":false,"pushed_at":"2023-11-23T00:43:50.000Z","size":2872,"stargazers_count":28,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-08T09:08:39.748Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qdrant.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-04T22:53:14.000Z","updated_at":"2025-05-08T09:55:29.000Z","dependencies_parsed_at":"2022-09-02T01:41:05.847Z","dependency_job_id":null,"html_url":"https://github.com/qdrant/goods_categorization_demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/qdrant/goods_categorization_demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdrant%2Fgoods_categorization_demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdrant%2Fgoods_categorization_demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdrant%2Fgoods_categorization_demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdrant%2Fgoods_categorization_demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qdrant","download_url":"https://codeload.github.com/qdrant/goods_categorization_demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qdrant%2Fgoods_categorization_demo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264259635,"owners_count":23580849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-08T09:08:43.513Z","updated_at":"2025-07-08T11:31:05.682Z","avatar_url":"https://github.com/qdrant.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Consumer goods categorisation\n\n![Demo](./demo.gif)\n\n\nThis demo uses product samples from real-life e-commerce categorization.\nEach product name is encoded using a **neural text encoder model** and indexed into the Qdrant vector similarity search engine.\nOnce you submit a new product name, it will be encoded using the same neural network and compare against stored references.\n\nThe colored dots you see under the input box are category vectors used in this demo.\nThe vectors have been reduced to 2D using [Umap](https://umap-learn.readthedocs.io/) so that they could be rendered.\nReduced to 2D point vectors lose some information, so the relative distance on the plain is not always accurate.\nAdding new categories to the system is equivalent to adding a new vector to the collection of examples.\nIt means that the list of categories can be expanded and refined **without retraining**.\n\n## How to\n\nInstall\n\n```bash\npip install poetry\npoetry install\n\npoetry shell  # Enable virtual environment for this project\n```\n\nRun Qdrant\n```bash\ndocker run -v $(pwd)/data/storage:/qdrant/storage -p 6333:6333 generall/qdrant\n```\n\nPrepare data and vectors\n```bash\n# Prepare the data\npython -m goods_categorizer.data_parser\n\n# Build embeddings\npython -m goods_categorizer.vectorizer.vectorizer\n\n# Prepare embeddings for projector\npython -m goods_categorizer.convert_to_projector\n\n# Build dimension reduction model for visualisation\npython -m goods_categorizer.vectorizer.dm_reduction\n\n# Translate categories into english (original - Russian)\npython -m goods_categorizer.translate_categories\n\n# Upload data to Qdrant (should be launched on localhost:6333)\npython -m goods_categorizer.upload_data\n```\n\nRun service:\n\n```bash\nuvicorn goods_categorizer.service:app --host 0.0.0.0 --port 8000 --workers 1\n```\n\nRun frontend:\n```bash\ncd frontend; npm install; npx quasar dev\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqdrant%2Fgoods_categorization_demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqdrant%2Fgoods_categorization_demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqdrant%2Fgoods_categorization_demo/lists"}