A Python module that allows conversion of a document into chunks to be inserted into Pinecone vector database
Project description
📚 PreVectorChunks
A lightweight utility for document chunking and vector database upserts — designed for developers building RAG (Retrieval-Augmented Generation) solutions.
✨ Who Needs This Module?
Any developer working with:
- RAG pipelines
- Vector Databases (like Pinecone, Weaviate, etc.)
- AI applications requiring similar content retrieval
🎯 What Does This Module Do?
This module helps you:
- Chunk documents into smaller fragments
- Insert (upsert) fragments into a vector database
- Fetch & update existing chunks from a vector database
📦 Installation
pip install prevectorchunks-core
How to import in a file:
from PreVectorChunks.services import chunk_documents_crud_vdb
#How to use Pinecone and OpenAI:
#Use a .env file in your project root to configure API keys:
PINECONE_API_KEY=YOUR_API_KEY
OPENAI_API_KEY=YOUR_API_KEY
#how to call relevant functions:
#Four key functions that you can call are below:
#function that chunks any document
📄 Functions
1. chunk_documents
chunk_documents(instructions, file_path="content_playground/content.json", chunk_size=200)
Splits the content of a document into smaller, manageable chunks.
Parameters
instructions(dict or str): Additional rules or guidance for how the document should be split.- Example:
"split my content by biggest headings"
- Example:
file_path(str): Path to the input JSON/text file containing the content or content of the file. Default:"content_playground/content.json".chunk_size(int): Number of words per chunk (default = 200).
Returns
- A list of chunked strings including a unique id, a meaningful title and chunked text
Use Cases
- Preparing text for LLM ingestion
- Splitting text by structure (headings, paragraphs)
- Vector database indexing
2. chunk_and_upsert_to_vdb
chunk_and_upsert_to_vdb(index_n, instructions, file_path="content_playground/content.json", chunk_size=200)
Splits a document into chunks (via chunk_documents) and inserts them into a Vector Database.
Parameters
index_n(str): The name of the VDB index where chunks should be stored. for example, in pinecone, we can have an index 'dl-doco'instructions(dict or str): Rules for splitting content (same aschunk_documents).file_path(str): Path to the document file or content of the file. Default:"content_playground/content.json".chunk_size(int): Max words per chunk. Default:200.
Returns
- Confirmation of successful insert into the VDB.
Use Cases
- Automated document preprocessing and storage for vector search
- Preparing embeddings for semantic search
3. fetch_vdb_chunks_grouped_by_document_name
fetch_vdb_chunks_grouped_by_document_name(index_n)
Fetches existing chunks stored in the Vector Database, grouped by document name.
Parameters
index_n(str): The name of the VDB index.
Returns
- A dictionary or list of chunks grouped by document name.
Use Cases
- Retrieving all chunks of a specific document
- Verifying what content has been ingested into the VDB
4. update_vdb_chunks_grouped_by_document_name
update_vdb_chunks_grouped_by_document_name(index_n, dataset)
Updates existing chunks in the Vector Database by document name.
Parameters
index_n(str): The name of the VDB index.dataset(dict or list): The new data (chunks) to update existing entries.
Returns
- Confirmation of update status.
Use Cases
- Keeping VDB chunks up to date when documents change
- Re-ingesting revised or corrected content
🚀 Example Workflow
# Step 1: Chunk a document
chunks = chunk_documents(
instructions="split my content by biggest headings",
file_path="content_playground/content.json",
chunk_size=150
)
# Step 2: Insert chunks into VDB
chunk_and_upsert_to_vdb("my_index", instructions="split by headings")
# Step 3: Fetch stored chunks
docs = fetch_vdb_chunks_grouped_by_document_name("my_index")
# Step 4: Update chunks if needed
update_vdb_chunks_grouped_by_document_name("my_index", dataset=docs)
🛠 Use Cases
- Preprocessing documents for LLM ingestion
- Semantic search and Q&A systems
- Vector database indexing and retrieval
- Maintaining versioned document chunks
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prevectorchunks_core-0.1.3.tar.gz.
File metadata
- Download URL: prevectorchunks_core-0.1.3.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec55f587ffd35cccfb14d5448fa121415105eadc31c3c504b24608a2b7655af1
|
|
| MD5 |
42f895059ecc3b7c567758118eb6db5f
|
|
| BLAKE2b-256 |
46257e987200afe9ce188197bcc7840d739352575afa87402b8a8bcb9e4da537
|
File details
Details for the file prevectorchunks_core-0.1.3-py3-none-any.whl.
File metadata
- Download URL: prevectorchunks_core-0.1.3-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffa211c8a2c32f611065612215217e8551d51de31dc298d79807c2daf810b909
|
|
| MD5 |
2c375cf84231dacad90425f1b070ffeb
|
|
| BLAKE2b-256 |
730499e432f1b2d77cff7988d59859b0a854d6362582af0326bc8986450088e7
|