From eb5d0b0622aa30d7f69303356b6acaeb7e26c949 Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Tue, 13 Jan 2026 12:30:19 +0200 Subject: [PATCH] Use tui as an optional group. vb --- CHANGELOG.md | 2 ++ app/backend/pyproject.toml | 2 +- docs/apps.md | 14 +++++--------- docs/cli.md | 3 +++ docs/installation.md | 1 + evaluations/pyproject.toml | 2 +- examples/a2a-server/pyproject.toml | 2 +- haiku_rag_slim/haiku/rag/chat/__init__.py | 2 +- haiku_rag_slim/haiku/rag/inspector/__init__.py | 2 +- haiku_rag_slim/pyproject.toml | 6 +++--- pyproject.toml | 6 +++--- uv.lock | 6 +++--- 12 files changed, 25 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54803dfd..8f9a5448 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog ## [Unreleased] +## [0.26.0] - 2026-01-13 + ### Added - **Conversational RAG Application**: Full-stack application (`app/`) with CopilotKit frontend and pydantic-ai AG-UI backend diff --git a/app/backend/pyproject.toml b/app/backend/pyproject.toml index 0fbbdd04..30130f80 100644 --- a/app/backend/pyproject.toml +++ b/app/backend/pyproject.toml @@ -8,7 +8,7 @@ dependencies = [ "uvicorn[standard]>=0.40.0", "pydantic-ai-slim[ag-ui,anthropic,openai]>=1.39.0", "python-dotenv>=1.2.1", - "haiku.rag-slim[agui]>=0.23.1", + "haiku.rag-slim[agui]>=0.26.0", "logfire[pydantic-ai]>=3.17.0", ] diff --git a/docs/apps.md b/docs/apps.md index c0688691..296fb72b 100644 --- a/docs/apps.md +++ b/docs/apps.md @@ -6,6 +6,9 @@ Three interactive applications for working with your knowledge base. Conversational RAG from the terminal with streaming responses and session memory. +!!! note + Requires the `tui` extra: `pip install haiku.rag-slim[tui]` (included in full `haiku.rag` package) + ### Usage ```bash @@ -111,15 +114,8 @@ docker compose -f docker-compose.dev.yml up -d --build frontend TUI for browsing documents, chunks, and search results. -### Installation - -```bash -# For haiku.rag-slim -pip install 'haiku.rag-slim[inspector]' - -# Already included in haiku.rag -pip install haiku.rag -``` +!!! note + Requires the `tui` extra: `pip install haiku.rag-slim[tui]` (included in full `haiku.rag` package) ### Usage diff --git a/docs/cli.md b/docs/cli.md index 445d1b69..b630af4e 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -170,6 +170,9 @@ haiku-rag chat haiku-rag chat --db /path/to/database.lancedb ``` +!!! note + Requires the `tui` extra: `pip install haiku.rag-slim[tui]` (included in full `haiku.rag` package) + The chat interface provides: - Streaming responses with real-time tool execution diff --git a/docs/installation.md b/docs/installation.md index d665a54c..58d8f920 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -37,6 +37,7 @@ The slim package has minimal dependencies and lets you install only what you nee - `mxbai` - MixedBread AI reranking - `cohere` - Cohere reranking - `zeroentropy` - Zero Entropy reranking +- `tui` - Terminal UI for `chat` and `inspect` commands **Built-in providers** (no extras needed): - **Ollama** (default embedding provider) diff --git a/evaluations/pyproject.toml b/evaluations/pyproject.toml index bd485979..17920bf5 100644 --- a/evaluations/pyproject.toml +++ b/evaluations/pyproject.toml @@ -2,7 +2,7 @@ name = "haiku.rag-evals" description = "Benchmarking and evaluation scripts for haiku.rag" -version = "0.25.0" +version = "0.26.0" authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }] license = { text = "MIT" } requires-python = ">=3.12" diff --git a/examples/a2a-server/pyproject.toml b/examples/a2a-server/pyproject.toml index 861b5141..440813e6 100644 --- a/examples/a2a-server/pyproject.toml +++ b/examples/a2a-server/pyproject.toml @@ -9,7 +9,7 @@ requires-python = ">=3.12" keywords = ["RAG", "a2a", "agent", "conversational-ai"] dependencies = [ - "haiku.rag>=0.25.0", + "haiku.rag>=0.26.0", "fasta2a>=0.6.0", "pydantic-ai-slim[a2a]>=1.39.0", "rich>=14.2.0", diff --git a/haiku_rag_slim/haiku/rag/chat/__init__.py b/haiku_rag_slim/haiku/rag/chat/__init__.py index 73fc5547..aecde32a 100644 --- a/haiku_rag_slim/haiku/rag/chat/__init__.py +++ b/haiku_rag_slim/haiku/rag/chat/__init__.py @@ -18,7 +18,7 @@ def run_chat( from haiku.rag.chat.app import ChatApp except ImportError as e: raise ImportError( - "Textual is required for the chat TUI. Install with: pip install textual" + "textual is not installed. Please install it with `pip install 'haiku.rag-slim[tui]'` or use the full haiku.rag package." ) from e from haiku.rag.config import get_config diff --git a/haiku_rag_slim/haiku/rag/inspector/__init__.py b/haiku_rag_slim/haiku/rag/inspector/__init__.py index 76b8fda5..bac3b5e8 100644 --- a/haiku_rag_slim/haiku/rag/inspector/__init__.py +++ b/haiku_rag_slim/haiku/rag/inspector/__init__.py @@ -2,7 +2,7 @@ try: from haiku.rag.inspector.app import run_inspector except ImportError as e: raise ImportError( - "textual is not installed. Please install it with `pip install 'haiku.rag-slim[inspector]'` or use the full haiku.rag package." + "textual is not installed. Please install it with `pip install 'haiku.rag-slim[tui]'` or use the full haiku.rag package." ) from e __all__ = ["run_inspector"] diff --git a/haiku_rag_slim/pyproject.toml b/haiku_rag_slim/pyproject.toml index 17e1e4ce..d42d85c7 100644 --- a/haiku_rag_slim/pyproject.toml +++ b/haiku_rag_slim/pyproject.toml @@ -2,7 +2,7 @@ name = "haiku.rag-slim" description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling - Minimal dependencies" -version = "0.25.0" +version = "0.26.0" authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }] license = { text = "MIT" } readme = { file = "README.md", content-type = "text/markdown" } @@ -44,8 +44,8 @@ voyageai = ["voyageai>=0.3.7"] mxbai = ["mxbai-rerank>=0.1.6"] cohere = ["cohere>=5.20.1"] zeroentropy = ["zeroentropy>=0.1.0a7"] -# Inspector TUI -inspector = ["textual>=7.0.0", "textual-image>=0.8.5"] +# TUI (chat and inspect commands) +tui = ["textual>=7.0.0", "textual-image>=0.8.5"] # Model providers (delegated to pydantic-ai-slim) anthropic = ["pydantic-ai-slim[anthropic]"] groq = ["pydantic-ai-slim[groq]"] diff --git a/pyproject.toml b/pyproject.toml index 402fa915..bca28d59 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ name = "haiku.rag" description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling" -version = "0.25.0" +version = "0.26.0" authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }] license = { text = "MIT" } readme = { file = "README.md", content-type = "text/markdown" } @@ -30,14 +30,14 @@ classifiers = [ ] dependencies = [ - "haiku.rag-slim[docling,voyageai,mxbai,cohere,zeroentropy,inspector]==0.25.0", + "haiku.rag-slim[docling,voyageai,mxbai,cohere,zeroentropy,tui]==0.26.0", ] [project.scripts] haiku-rag = "haiku.rag.cli:cli" [project.optional-dependencies] -inspector = ["textual>=1.0.0"] +tui = ["textual>=1.0.0"] [build-system] requires = ["hatchling"] diff --git a/uv.lock b/uv.lock index afb26fa7..cabf04ba 100644 --- a/uv.lock +++ b/uv.lock @@ -1286,7 +1286,7 @@ wheels = [ [[package]] name = "haiku-rag" -version = "0.25.0" +version = "0.26.0" source = { editable = "." } dependencies = [ { name = "haiku-rag-slim", extra = ["cohere", "docling", "inspector", "mxbai", "voyageai", "zeroentropy"] }, @@ -1341,7 +1341,7 @@ dev = [ [[package]] name = "haiku-rag-evals" -version = "0.25.0" +version = "0.26.0" source = { editable = "evaluations" } dependencies = [ { name = "datasets" }, @@ -1362,7 +1362,7 @@ requires-dist = [ [[package]] name = "haiku-rag-slim" -version = "0.25.0" +version = "0.26.0" source = { editable = "haiku_rag_slim" } dependencies = [ { name = "docling-core" },