Use tui as an optional group. vb

This commit is contained in:
Yiorgis Gozadinos 2026-01-13 12:30:19 +02:00
parent e9efe69136
commit eb5d0b0622
No known key found for this signature in database
12 changed files with 25 additions and 23 deletions

View file

@ -1,6 +1,8 @@
# Changelog # Changelog
## [Unreleased] ## [Unreleased]
## [0.26.0] - 2026-01-13
### Added ### Added
- **Conversational RAG Application**: Full-stack application (`app/`) with CopilotKit frontend and pydantic-ai AG-UI backend - **Conversational RAG Application**: Full-stack application (`app/`) with CopilotKit frontend and pydantic-ai AG-UI backend

View file

@ -8,7 +8,7 @@ dependencies = [
"uvicorn[standard]>=0.40.0", "uvicorn[standard]>=0.40.0",
"pydantic-ai-slim[ag-ui,anthropic,openai]>=1.39.0", "pydantic-ai-slim[ag-ui,anthropic,openai]>=1.39.0",
"python-dotenv>=1.2.1", "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", "logfire[pydantic-ai]>=3.17.0",
] ]

View file

@ -6,6 +6,9 @@ Three interactive applications for working with your knowledge base.
Conversational RAG from the terminal with streaming responses and session memory. 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 ### Usage
```bash ```bash
@ -111,15 +114,8 @@ docker compose -f docker-compose.dev.yml up -d --build frontend
TUI for browsing documents, chunks, and search results. TUI for browsing documents, chunks, and search results.
### Installation !!! note
Requires the `tui` extra: `pip install haiku.rag-slim[tui]` (included in full `haiku.rag` package)
```bash
# For haiku.rag-slim
pip install 'haiku.rag-slim[inspector]'
# Already included in haiku.rag
pip install haiku.rag
```
### Usage ### Usage

View file

@ -170,6 +170,9 @@ haiku-rag chat
haiku-rag chat --db /path/to/database.lancedb 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: The chat interface provides:
- Streaming responses with real-time tool execution - Streaming responses with real-time tool execution

View file

@ -37,6 +37,7 @@ The slim package has minimal dependencies and lets you install only what you nee
- `mxbai` - MixedBread AI reranking - `mxbai` - MixedBread AI reranking
- `cohere` - Cohere reranking - `cohere` - Cohere reranking
- `zeroentropy` - Zero Entropy reranking - `zeroentropy` - Zero Entropy reranking
- `tui` - Terminal UI for `chat` and `inspect` commands
**Built-in providers** (no extras needed): **Built-in providers** (no extras needed):
- **Ollama** (default embedding provider) - **Ollama** (default embedding provider)

View file

@ -2,7 +2,7 @@
name = "haiku.rag-evals" name = "haiku.rag-evals"
description = "Benchmarking and evaluation scripts for haiku.rag" description = "Benchmarking and evaluation scripts for haiku.rag"
version = "0.25.0" version = "0.26.0"
authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }] authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }]
license = { text = "MIT" } license = { text = "MIT" }
requires-python = ">=3.12" requires-python = ">=3.12"

View file

@ -9,7 +9,7 @@ requires-python = ">=3.12"
keywords = ["RAG", "a2a", "agent", "conversational-ai"] keywords = ["RAG", "a2a", "agent", "conversational-ai"]
dependencies = [ dependencies = [
"haiku.rag>=0.25.0", "haiku.rag>=0.26.0",
"fasta2a>=0.6.0", "fasta2a>=0.6.0",
"pydantic-ai-slim[a2a]>=1.39.0", "pydantic-ai-slim[a2a]>=1.39.0",
"rich>=14.2.0", "rich>=14.2.0",

View file

@ -18,7 +18,7 @@ def run_chat(
from haiku.rag.chat.app import ChatApp from haiku.rag.chat.app import ChatApp
except ImportError as e: except ImportError as e:
raise ImportError( 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 e
from haiku.rag.config import get_config from haiku.rag.config import get_config

View file

@ -2,7 +2,7 @@ try:
from haiku.rag.inspector.app import run_inspector from haiku.rag.inspector.app import run_inspector
except ImportError as e: except ImportError as e:
raise ImportError( 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 ) from e
__all__ = ["run_inspector"] __all__ = ["run_inspector"]

View file

@ -2,7 +2,7 @@
name = "haiku.rag-slim" name = "haiku.rag-slim"
description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling - Minimal dependencies" 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" }] authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }]
license = { text = "MIT" } license = { text = "MIT" }
readme = { file = "README.md", content-type = "text/markdown" } readme = { file = "README.md", content-type = "text/markdown" }
@ -44,8 +44,8 @@ voyageai = ["voyageai>=0.3.7"]
mxbai = ["mxbai-rerank>=0.1.6"] mxbai = ["mxbai-rerank>=0.1.6"]
cohere = ["cohere>=5.20.1"] cohere = ["cohere>=5.20.1"]
zeroentropy = ["zeroentropy>=0.1.0a7"] zeroentropy = ["zeroentropy>=0.1.0a7"]
# Inspector TUI # TUI (chat and inspect commands)
inspector = ["textual>=7.0.0", "textual-image>=0.8.5"] tui = ["textual>=7.0.0", "textual-image>=0.8.5"]
# Model providers (delegated to pydantic-ai-slim) # Model providers (delegated to pydantic-ai-slim)
anthropic = ["pydantic-ai-slim[anthropic]"] anthropic = ["pydantic-ai-slim[anthropic]"]
groq = ["pydantic-ai-slim[groq]"] groq = ["pydantic-ai-slim[groq]"]

View file

@ -2,7 +2,7 @@
name = "haiku.rag" name = "haiku.rag"
description = "Opinionated agentic RAG powered by LanceDB, Pydantic AI, and Docling" 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" }] authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }]
license = { text = "MIT" } license = { text = "MIT" }
readme = { file = "README.md", content-type = "text/markdown" } readme = { file = "README.md", content-type = "text/markdown" }
@ -30,14 +30,14 @@ classifiers = [
] ]
dependencies = [ 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] [project.scripts]
haiku-rag = "haiku.rag.cli:cli" haiku-rag = "haiku.rag.cli:cli"
[project.optional-dependencies] [project.optional-dependencies]
inspector = ["textual>=1.0.0"] tui = ["textual>=1.0.0"]
[build-system] [build-system]
requires = ["hatchling"] requires = ["hatchling"]

View file

@ -1286,7 +1286,7 @@ wheels = [
[[package]] [[package]]
name = "haiku-rag" name = "haiku-rag"
version = "0.25.0" version = "0.26.0"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "haiku-rag-slim", extra = ["cohere", "docling", "inspector", "mxbai", "voyageai", "zeroentropy"] }, { name = "haiku-rag-slim", extra = ["cohere", "docling", "inspector", "mxbai", "voyageai", "zeroentropy"] },
@ -1341,7 +1341,7 @@ dev = [
[[package]] [[package]]
name = "haiku-rag-evals" name = "haiku-rag-evals"
version = "0.25.0" version = "0.26.0"
source = { editable = "evaluations" } source = { editable = "evaluations" }
dependencies = [ dependencies = [
{ name = "datasets" }, { name = "datasets" },
@ -1362,7 +1362,7 @@ requires-dist = [
[[package]] [[package]]
name = "haiku-rag-slim" name = "haiku-rag-slim"
version = "0.25.0" version = "0.26.0"
source = { editable = "haiku_rag_slim" } source = { editable = "haiku_rag_slim" }
dependencies = [ dependencies = [
{ name = "docling-core" }, { name = "docling-core" },