[project] name = "ssearch" version = "0.1.0" description = "Semantic search over a personal journal archive and a clippings library (RAG: LlamaIndex + HuggingFace embeddings + Ollama/OpenAI)." readme = "README.md" requires-python = ">=3.12" license = { text = "MIT" } authors = [{ name = "E. M. Furst" }] dependencies = [ # --- RAG framework (version-sensitive: pinned exactly) --- "llama-index-core==0.14.14", "llama-index-embeddings-huggingface==0.6.1", "llama-index-readers-file==0.5.6", "llama-index-llms-ollama==0.9.1", "llama-index-llms-openai==0.6.18", "llama-index-retrievers-bm25==0.6.5", "llama-index-vector-stores-chroma==0.5.5", # --- Vector store (clippings) --- "chromadb==1.5.1", # --- Embeddings / cross-encoder re-ranking (pulls torch) --- "sentence-transformers>=5.1.0", # transformers + huggingface-hub pinned: a transformers update once broke # offline model loading (AutoTokenizer phoning home). See devlog 2026-02-20. "transformers==4.55.0", "huggingface-hub==0.34.4", # --- Keyword search / document loaders --- "nltk>=3.9.1", "beautifulsoup4>=4.13.4", "striprtf>=0.0.26", "pypdf>=6.7.1", ] [dependency-groups] # Analysis + exploration notebooks (not needed to run the search pipeline). # Install with: uv sync --group notebook notebook = [ "jupyter>=1.1.1", "ipykernel>=6.30.0", "ipywidgets>=8.1.0", "matplotlib>=3.10.0", "seaborn>=0.13.0", "pandas>=2.2.0", "scikit-learn>=1.7.0", "scipy>=1.16.0", ]