Hace un tiempo seguía encontrándome con el mismo problema: tenía un montón de notas, especificaciones y documentos markdown en mi portátil, pero cuando abría ChatGPT y le hacía preguntas sobre ellos, el modelo obviamente no sabía que existían. Copiar y pegar archivos era tedioso; subirlos manualmente uno por uno no era mucho mejor. Así que construí un pequeño CLI que se encarga de la parte aburrida por mí: openai-folder-sync, una herramienta de línea de comandos que sincroniza un directorio local con un OpenAI Vector Store, para que esos archivos se conviertan en contexto buscable para ChatGPT.
La búsqueda de archivos de OpenAI está construida sobre un vector store. Añades archivos a un store, se procesan en embeddings, y los asistentes (o ChatGPT a través de herramientas conectadas) pueden recuperar y fundamentar respuestas usando esos archivos. Es un modelo limpio, pero asume que recordarás subir y mantener tu conjunto de archivos. Un paso de sincronización—que espejea una carpeta que ya te importa—está más cerca de cómo trabajamos día a día.
openai-folder-sync escanea un directorio en tu máquina, filtra archivos por extensión y los sube a un vector store existente. Puedes ejecutarlo una vez para poblar un store, o añadirlo a tu rutina (por ejemplo, un job de cron) para mantener tu base de conocimiento actualizada. También hay una opción para incrustar metadatos de git (branch y commit) en el contenido subido, así que cuando ChatGPT cite algo, sabrás exactamente de qué versión provino.
md,txt,pdf)--git-info)Repo: https://github.com/JensWalter/openai-folder-sync
Está escrito en Rust y se instala vía Cargo:
cargo install --git https://github.com/JensWalter/openai-folder-sync.git
Cargo compilará y colocará el binario openai-folder-sync en tu PATH.
Usage
Necesitarás una clave de la API de OpenAI y un ID de vector store existente (se parece a vs_…). Luego apunta el CLI a tu carpeta:
openai-folder-sync \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
¿Prefieres ejecutarlo a través de Cargo durante el desarrollo?
cargo run -- \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
La mayoría de las opciones también pueden establecerse mediante variables de entorno:
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
Common flags
--vector-store / VECTOR_STORE – target store ID
--local-dir / LOCAL_DIR – folder to sync
--extensions / EXTENSIONS – comma-separated list
--git-info / GIT_INFO – include git metadata (true|false)
--help – show all options
Una vez que los archivos estén en un vector store, ChatGPT (o tus apps con la API de Assistants) puede recuperar fragmentos relevantes de esos archivos mientras responde a tus preguntas. Eso significa que puedes preguntar cosas como “¿Qué decía la propuesta sobre el cronograma de migración?” y el modelo extraerá el contexto relevante de tus documentos sincronizados—sin necesidad de copiar y pegar. Tu carpeta se convierte efectivamente en una base de conocimiento viva.
Actualmente no tengo más planes para esta herramienta. Si crees que falta algo, abre un issue o un PR.
⸻
Si quieres probarla, el repositorio incluye detalles de instalación y uso además de la ayuda. La construí para simplificar mi propio flujo de trabajo; si te ahorra unas cuantas sesiones de copiar y pegar y ayuda a que ChatGPT responda a partir de tus documentos reales, eso ya es una victoria. ¡Feliz sincronización!