Skip to main content

A simple command-line utility for synchronizing documents to vector storage for LLM interaction.

Project description

vecsync

PyPI image image Actions status

A simple command-line utility for synchronizing documents to vector storage for LLM interaction. Vecsync helps you quickly chat with papers, journals, and other documents with minimal overhead.

  • 📄 Upload a local collection of PDFs to a remote vector store
  • ✅ Automatically add and remove remote files to match local documents
  • ☺️ Simplify platform specific complexities
  • 👀 Synchronize with a Zotero collection
  • 💬 Chat with documents from command line

demo

Getting Started

OpenAI API Requirements

Currently vecsync only supports OpenAI for remote operations and requires a valid OpenAI key with credits. Visit https://openai.com/api/ for more information. Future improvements will allow more platform options and self-hosted models.

Installation

Install vecsync from PyPI.

pip install vecsync

Set your OpenAI API key environment.

export OPENAI_API_KEY=...

You can also define the key via .env file using dotenv

echo "OPENAI_API_KEY=…" > .env

Usage

Synching Collections

Use the vs sync command for all synching operations.

Sync from local file path.

cd path/to/pdfs && vs sync

Synching 2 files from local to OpenAI
Uploading 2 files to OpenAI file storage
Attaching 2 files to OpenAI vector store

🏁 Sync results:
Saved: 2 | Deleted: 0 | Skipped: 0 
Remote count: 2
Duration: 8.93 seconds

Sync from a Zotero collection. Interactive selections are remembered for future sessions.

vs sync -s zotero

Enter the path to your Zotero directory (Default: /Users/jbencina/Zotero): 

Available collections:
[1]: My research
Enter the collection ID to sync (Default: 1): 

Synching 15 files from local to OpenAI
Uploading 15 files to OpenAI file storage
Attaching 15 files to OpenAI vector store

🏁 Sync results:
Saved: 15 | Deleted: 0 | Skipped: 0 
Remote count: 15
Duration: 57.99 seconds

Settings

Settings are persisted in a local json file which can be purged.

vs settings clear

Chat Interactions

Use vs assistant chat to chat with uploaded documents via the command line. The responding assistant is automatically linked to your vector store.

vs assistant chat
✅ Assistant found: asst_123456789
Type "exit" to quit at any time.

> Give a one sentence summary of your vector store collection contents.
💬 Conversation started: thread_123456789

The contents of the vector store collection primarily focus on machine learning techniques for causal effect inference,particularly through adversarial representation learning methods that address challenges in treatment selection bias and information loss in observational data

Conversations are remembered across sessions.

vs assistant chat    Assistant found: asst_123456789
✅ Thread found: thread_123456789
Type "exit" to quit at any time.

> What was my last question to you? 
Your last question to me was asking for a one sentence summary of the contents of my vector store collection.

Threads can be cleared using the -n flag.

vs assistant chat -n
✅ Assistant found: asst_123456789
Type "exit" to quit at any time.

> What was my last question to you?
💬 Conversation started: thread_987654321

Your last question was about searching for relevant information from a large number of journals and papers, emphasizing the importance of citing information from the provided sources without making up any content.

# Assistant response is in reference to the system prompt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vecsync-0.3.0.tar.gz (460.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vecsync-0.3.0-py3-none-any.whl (34.7 kB view details)

Uploaded Python 3

File details

Details for the file vecsync-0.3.0.tar.gz.

File metadata

  • Download URL: vecsync-0.3.0.tar.gz
  • Upload date:
  • Size: 460.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.17

File hashes

Hashes for vecsync-0.3.0.tar.gz
Algorithm Hash digest
SHA256 e362087848f2e15fffb5f3144af5a9fd08658e0e622d7e9e5f8182206dfd9fba
MD5 524247364ab310eb3288745fb6da8e4b
BLAKE2b-256 034eeba35229f0069490e483566229b87f2a0e7370bc5c76383c34b035cdc61d

See more details on using hashes here.

File details

Details for the file vecsync-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: vecsync-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 34.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.17

File hashes

Hashes for vecsync-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 caaa593a9298bda0f3124c7cd9362e1d3d1f7df36a7ff40226c08c9ef4315dc9
MD5 f0e4fb12ad955bb65186ce72816d6fdf
BLAKE2b-256 a7d064be7776b4cde8c1eca2526cc85d7698d52bad06184dc627d62d9d05e7e2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page