Il y a quelque temps, je tombais sans cesse sur le même problème : j’avais une foule de notes, spécifications et documents Markdown sur mon portable, mais quand j’ouvrais ChatGPT et posais des questions à leur sujet, le modèle ne savait évidemment pas qu’ils existaient. Copier-coller des fichiers était fastidieux ; les téléversements manuels un par un n’étaient guère mieux. J’ai donc construit un petit CLI qui fait pour moi la partie ennuyeuse : openai-folder-sync, un outil en ligne de commande qui synchronise un répertoire local vers un OpenAI Vector Store, de sorte que ces fichiers deviennent du contexte consultable pour ChatGPT.
La recherche de fichiers d’OpenAI est construite autour d’un vector store. Vous ajoutez des fichiers à un store, ils sont convertis en embeddings, et les assistants (ou ChatGPT via des outils connectés) peuvent récupérer et fonder des réponses en utilisant ces fichiers. C’est un modèle propre, mais il suppose que vous penserez à téléverser et maintenir votre ensemble de fichiers. Une étape de synchronisation — qui reflète un dossier dont vous vous souciez déjà — est plus proche de notre façon de travailler au quotidien.
openai-folder-sync parcourt un répertoire sur votre machine, filtre les fichiers par extension et les pousse dans un vector store existant. Vous pouvez l’exécuter une fois pour remplir un store, ou l’ajouter à votre routine (par ex. via un cron) pour garder votre base de connaissances à jour. Il y a aussi un interrupteur pour intégrer les métadonnées git (branche et commit) dans le contenu téléversé, afin que lorsque ChatGPT cite quelque chose, vous sachiez exactement de quelle version il provient.
md,txt,pdf)--git-info)Repo: https://github.com/JensWalter/openai-folder-sync
C’est écrit en Rust et s’installe via Cargo :
cargo install --git https://github.com/JensWalter/openai-folder-sync.git
Cargo compilera et placera le binaire openai-folder-sync dans votre PATH.
Utilisation
Vous aurez besoin d’une clé API OpenAI et d’un identifiant de vector store existant (ressemble à vs_…). Ensuite, pointez le CLI vers votre dossier :
openai-folder-sync \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
Vous préférez lancer via Cargo pendant le développement ?
cargo run -- \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
La plupart des options peuvent aussi être définies via des variables d’environnement :
export OPENAI_API_KEY=sk-...
export VECTOR_STORE=vs_ABCDEFGHIJK
export LOCAL_DIR=/Users/jens/tmp/wiki/content
export EXTENSIONS=md,txt,pdf
export GIT_INFO=true
openai-folder-sync
Options courantes
--vector-store / VECTOR_STORE – ID du vector store cible
--local-dir / LOCAL_DIR – dossier à synchroniser
--extensions / EXTENSIONS – liste séparée par des virgules
--git-info / GIT_INFO – inclure les métadonnées git (true|false)
--help – afficher toutes les options
Une fois les fichiers présents dans un vector store, ChatGPT (ou vos applications via l’API Assistants) peut récupérer des extraits pertinents de ces fichiers en répondant à vos questions. Cela signifie que vous pouvez poser des questions comme « Que disait la proposition au sujet du calendrier de migration ? » et le modèle extraira le contexte pertinent depuis vos documents synchronisés — plus besoin de copier-coller. Votre dossier devient effectivement une base de connaissances vivante.
--git-info étiquette le texte téléversé avec les métadonnées de commit, ce qui rend les réponses plus faciles à faire confiance et à tracer.Je n’ai actuellement pas d’autres plans pour cet outil. Si vous pensez qu’il manque quelque chose, ouvrez simplement une issue ou une PR.
⸻
Si vous voulez l’essayer, le dépôt inclut les détails d’installation et d’utilisation ainsi que la sortie d’aide. Je l’ai construit pour simplifier mon propre flux de travail ; si cela vous évite quelques marathons de copier-coller et aide ChatGPT à répondre à partir de vos vrais documents, c’est une victoire. Bonne synchronisation !