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 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í una pequeña CLI que hace 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 se basa en 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 refleja una carpeta de la que ya te ocupas—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 envía a un vector store existente. Puedes ejecutarlo una vez para poblar un store, o añadirlo a tu rutina (por ejemplo, un trabajo cron) para mantener tu base de conocimiento actualizada. También hay una opción para incrustar metadatos de git (rama y commit) en el contenido subido, de modo que cuando ChatGPT cite algo, sepas exactamente de qué versión proviene.
md,txt,pdf)--git-info)Repositorio: https://github.com/JensWalter/openai-folder-sync
Está escrito en Rust y se instala mediante Cargo:
cargo install --git https://github.com/JensWalter/openai-folder-sync.git
Cargo construirá y colocará el binario openai-folder-sync en tu PATH.
Uso
Necesitarás una clave de la API de OpenAI y un ID de vector store existente (parece vs_…). Luego apunta la CLI a tu carpeta:
openai-folder-sync \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
¿Prefieres ejecutar mediante Cargo durante el desarrollo?
cargo run -- \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
La mayoría de las banderas 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
Opciones comunes
--vector-store / VECTOR_STORE – ID del store de destino
--local-dir / LOCAL_DIR – carpeta a sincronizar
--extensions / EXTENSIONS – lista separada por comas
--git-info / GIT_INFO – incluir metadatos de git (true|false)
--help – mostrar todas las opciones
Una vez que los archivos están en un vector store, ChatGPT (o tus aplicaciones con la API de Assistants) pueden recuperar fragmentos relevantes de esos archivos mientras responden a tus preguntas. Eso significa que puedes preguntar cosas como “¿Qué decía la propuesta sobre el calendario de migración?” y el modelo obtendrá el contexto relevante de tus documentos sincronizados—no se requiere 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, simplemente abre un issue o PR.
⸻
Si quieres probarlo, el repositorio incluye detalles de instalación y uso además de la salida de ayuda. Lo construí para simplificar mi propio flujo de trabajo; si te ahorra unas cuantas maratones de copiar-pegar y ayuda a que ChatGPT responda a partir de tus documentos reales, eso ya es una victoria. ¡Feliz sincronización!