ACToR is an Adaptive Critical Token-aware Retrieval framework designed for repository-level code generation tasks.
ACToR/
βββ README.md # Project documentation
βββ classifiers/ # Critical Token classifiers
βββ weights/ # Position-aware weights
βββ datasets/ # Benchmarks and training datasets
βββ repositories/ # Code repositories for training and testing
βββ src/ # Source code directory
βββ pipeline.py
βββ critoken.py
βββ train.py
βββ data/ # Data processing pipeline
β βββ __init__.py
β βββ repo.py
β βββ task.py
β βββ process/ # Data processing modules
β βββ __init__.py
β βββ data.py
β βββ window.py
β βββ vector.py
β βββ search.py
β βββ prompt.py
β βββ utils.py
βββ server/ # Model server integration
βββ __init__.py
βββ classifier.py
βββ llm.py
Requirements:
- Python 3.12.11 (recommended)
Installation:
pip install -r requirements.txtOrganize code repositories in the repositories/ directory following this structure:
repositories/
βββ codereval/
β βββ python/ # CoderEval Python repositories
βββ repoexec/
β βββ test-app/ # RepoExec test repositories
βββ repost/
βββ train/ # RepoST training repositoriesSetup Instructions:
- CoderEval: Clone CoderEval Python repositories to
repositories/codereval/python/ - RepoExec: Clone RepoExec test repositories to
repositories/repoexec/test-app/ - RepoST: Clone RepoST training repositories to
repositories/repost/train/(for training reproduction)
Note: More Details are available in
src/data/process/utils.py
- Repo Context Prep
python src/pipeline.py repo --benchmark 'repoexec' # alternative 'codereval-python', 'repost_train'- (Optional) Training Data Prep
python src/pipeline.py train --task_type 'data' --model_name 'model_name' # e.g. codellama-7b-hf- (Optional) Classifier Training
python src/pipeline.py train --task_type 'classifier' --model_name 'model_name' # e.g. codellama-7b-hf- Run Adaptive Critical Token-aware Retrieval augmented generation.
python src/pipeline.py task token --model_name 'model_name' --benchmark 'repoexec'