Support for Adding Entire Directories to ChatGPT Projects

Description:
Currently, defining a project in ChatGPT allows adding and managing individual files. However, for more complex projects, it is crucial to enable users to include entire directories. This would allow better organization of project files, maintaining a hierarchical structure and supporting reciprocal referencing between files using relative paths

Motivations:

  • Managing complex projects: Projects with multiple files often require an organized structure in directories to avoid confusion.
  • Consistency in references: Relative references (e.g., ../module/file.py) are essential in many projects to ensure files can interact without manual adjustments.
  • Increased efficiency: Avoiding the need to upload multiple files individually simplifies the project setup process.
  • Real-world alignment: Software development projects are typically organized into directories; supporting this in ChatGPT improves alignment with real-world workflows.

Technical details:

  • Allow users to upload directories either by selecting them through a file explorer or by specifying their path.
  • Preserve the directory’s hierarchical structure within the project.
  • Provide an interface to navigate through files and subdirectories.
  • Ensure relative paths between files are recognized and handled correctly, for instance, during content analysis or processing.

Expected impact:

  • Simplifies the management of multi-file projects.
  • Reduces the time required to set up projects.
  • Boosts productivity and usability for developers and researchers working with ChatGPT on complex prototypes or study projects.

Use case example:
A user could upload a directory my_project containing:

css

Copia codice

my_project/  
├── main.py  
├── utils/  
│   ├── helper.py  
│   └── constants.py  
├── data/  
│   └── dataset.csv  

This way, all files within the directory would be available for consultation and modification by ChatGPT, and relative references (e.g., from utils.helper import my_function) would work seamlessly

Priority: Medium/High