Use tui as an optional group. vb
This commit is contained in:
parent
e9efe69136
commit
eb5d0b0622
12 changed files with 25 additions and 23 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
14
docs/apps.md
14
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.
|
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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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"]
|
||||||
|
|
|
||||||
|
|
@ -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]"]
|
||||||
|
|
|
||||||
|
|
@ -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"]
|
||||||
|
|
|
||||||
6
uv.lock
6
uv.lock
|
|
@ -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" },
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue