Vineetiitg
feat: add multi-format ingestion and index lifecycle
2d34555
Raw
History Blame Contribute Delete
705 Bytes
import uuid
from langchain_core.documents import Document
from langchain_text_splitters import RecursiveCharacterTextSplitter
from app.core.config import settings
def chunk_documents(documents: list[Document]) -> list[Document]:
splitter = RecursiveCharacterTextSplitter(
chunk_size=settings.CHUNK_SIZE,
chunk_overlap=settings.CHUNK_OVERLAP,
)
chunks = splitter.split_documents(documents)
for index, chunk in enumerate(chunks):
source = chunk.metadata.get("source", "unknown")
chunk.metadata["chunk_index"] = index
chunk.metadata["chunk_id"] = str(uuid.uuid5(uuid.NAMESPACE_URL, f"{source}:{index}:{chunk.page_content[:80]}"))
return chunks