Skip to main content

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

Project description

vecsync

PyPI

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

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 delete

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.2.0.tar.gz (49.0 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.2.0-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for vecsync-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0c6224b37c5fdb8b39bfdb5e9d9b5a69e938c27638833c11a2030df4a44cc46d
MD5 a35f48de98b9a4361739a4b48c3b6554
BLAKE2b-256 10de805e27a058834970dfd68d41d1edd059fa0aa5878dfc8f254c46e06c994e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for vecsync-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 566dd55d2afe3de2c162af486ab5676499e5eb8afc7bf3c30b755594885b07b1
MD5 21a96b51e703a73a6673262053eb74aa
BLAKE2b-256 d357282f2eb88a83ee5e9990c927bcce33b2df89dfa99daab312cb3d741c82d4

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