How cyberagentailab/profiling-agent-open-ecommerce works
This repository reproduces an LLM-based user-profiling pipeline over Open E-Commerce purchase histories, plus standalone mining and evaluation analyses. The documented main workflow prepares product titles, gates and enriches them with search, recovers canonical product names, infers user attributes, clusters and labels those attributes, then evaluates them against survey answers. Stages exchange files rather than importing one another. The README documents the stage order; sampled entry points and source references support selected internal connections. Several stage internals were not sampled, so their implementation-level links are omitted.
Main entry points: config.py Configuration · tag_cluster/model.py Cluster tagging · search/model.py Web enrichment · base_agent/model.py Model runtime
Components 18
Product enrichment
- Prepare titles
src/prepare_titles/dataset.py - Search gate
src/scan/model.py - Web enrichment
src/search/model.py - Canonical recovery
src/predict_transaction/model.py
Attribute profiling
- User attributes
src/predict_user/model.py - Attribute clustering
src/cluster_attribute/model.py - Cluster tagging
src/tag_cluster/model.py
Mining and evaluation
- Frequent patterns
src/frequent_pattern_mining/model.py - Attribute validity
src/judge_user_attribute/model.py - Demographic baseline
src/judge_demographic_attribute/model.py - Confidence analysis
src/investigate_confidence_feasibility/model.py
Shared runtime
- Model runtime
src/base_agent/model.py - Configuration
src/base_agent/config.py - JSON I/O
src/common/io.py
Other components
- Researcher
- Purchase histories
- Stage files
- Web search services
Connections 43
- Researcher → Prepare titles: runs pipeline
- Purchase histories → Prepare titles: reads histories
- Prepare titles → Search gate: passes files
- Search gate → Web enrichment: passes files
- Web enrichment → Web search services: searches web
- Web enrichment → Canonical recovery: passes results
- Canonical recovery → User attributes: passes products
- Frequent patterns → User attributes: supplies combinations
- User attributes → Attribute clustering: passes attributes
- Attribute clustering → Cluster tagging: passes clusters
- Cluster tagging → Attribute validity: provides analysis input
- Cluster tagging → Demographic baseline: provides analysis input
- Cluster tagging → Confidence analysis: provides analysis input
- Prepare titles → Stage files: writes stage files
- Search gate → Stage files: writes stage files
- Web enrichment → Stage files: writes stage files
- Canonical recovery → Stage files: writes stage files
- User attributes → Stage files: writes stage files
- Attribute clustering → Stage files: writes stage files
- Cluster tagging → Stage files: writes stage files
- Frequent patterns → Stage files: writes patterns
- Stage files → Attribute validity: reads inputs
- Stage files → Demographic baseline: reads inputs
- Stage files → Confidence analysis: reads inputs
- Search gate → Model runtime: inherits runtime
src/scan/model.py - Web enrichment → JSON I/O: uses JSON I/O
src/search/model.py - Canonical recovery → Model runtime: inherits runtime
src/predict_transaction/model.py - User attributes → Model runtime: inherits runtime
src/predict_user/model.py - Attribute clustering → Model runtime: inherits runtime
src/cluster_attribute/model.py - Cluster tagging → Model runtime: inherits runtime
src/tag_cluster/model.py - Attribute validity → Model runtime: uses runtime
src/judge_user_attribute/model.py - Demographic baseline → Model runtime: uses runtime
src/judge_demographic_attribute/model.py - Prepare titles → Configuration: loads settings
src/prepare_titles/__main__.py - Search gate → Configuration: loads settings
src/scan/__main__.py - Web enrichment → Configuration: loads settings
src/search/__main__.py - Canonical recovery → Configuration: loads settings
src/predict_transaction/__main__.py - User attributes → Configuration: loads settings
src/predict_user/__main__.py - Attribute clustering → Configuration: loads settings
src/cluster_attribute/__main__.py - Cluster tagging → Configuration: loads settings
src/tag_cluster/__main__.py - Frequent patterns → Configuration: loads settings
src/frequent_pattern_mining/__main__.py - Attribute validity → Configuration: loads settings
src/judge_user_attribute/__main__.py - Demographic baseline → Configuration: loads settings
src/judge_demographic_attribute/__main__.py - Confidence analysis → Configuration: loads settings
src/investigate_confidence_feasibility/__main__.py