Restructure into uv workspace to support minimal and full installations
This commit is contained in:
parent
bead05fffb
commit
2f9c907031
92 changed files with 398 additions and 60 deletions
|
|
@ -60,7 +60,7 @@ tests/
|
|||
.pytest_cache/
|
||||
.coverage
|
||||
htmlcov/
|
||||
src/evaluations/
|
||||
evaluations/
|
||||
server.json
|
||||
# Examples
|
||||
examples/
|
||||
|
|
|
|||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -11,7 +11,7 @@ wheels/
|
|||
|
||||
# tests
|
||||
.coverage*
|
||||
src/evaluations/data/
|
||||
evaluations/evaluations/data/
|
||||
tests/data/
|
||||
.pytest_cache/
|
||||
.ruff_cache/
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
We use the [repliqa](https://huggingface.co/datasets/ServiceNow/repliqa) dataset for the evaluation of `haiku.rag`.
|
||||
|
||||
You can perform your own evaluations with the Typer CLI in
|
||||
`src/evaluations/benchmark.py`, for example `cd src && python -m evaluations.benchmark repliqa`.
|
||||
`evaluations/evaluations/benchmark.py`, for example `python -m evaluations.benchmark repliqa`.
|
||||
The evaluation flow is orchestrated with
|
||||
[`pydantic-evals`](https://github.com/pydantic/pydantic-ai/tree/main/libs/pydantic-evals),
|
||||
which we leverage for dataset management, scoring, and report generation.
|
||||
|
|
@ -13,7 +13,7 @@ which we leverage for dataset management, scoring, and report generation.
|
|||
The benchmark script accepts a `--config` option to specify a custom `haiku.rag.yaml` configuration file:
|
||||
|
||||
```bash
|
||||
cd src && python -m evaluations.benchmark repliqa --config /path/to/haiku.rag.yaml
|
||||
python -m evaluations.benchmark repliqa --config /path/to/haiku.rag.yaml
|
||||
```
|
||||
|
||||
If no config file is specified, the script will search for a config file in the standard locations:
|
||||
|
|
|
|||
7
evaluations/LICENSE
Normal file
7
evaluations/LICENSE
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
Copyright 2025 Yiorgis Gozadinos
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
13
evaluations/README.md
Normal file
13
evaluations/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Haiku RAG - Evaluations
|
||||
|
||||
Internal benchmarking and evaluation scripts for haiku.rag.
|
||||
|
||||
This package is not published to PyPI and is only used for development and testing purposes.
|
||||
|
||||
## Overview
|
||||
|
||||
Contains evaluation scripts for benchmarking RAG performance using datasets like:
|
||||
- RepliQA
|
||||
- WiX
|
||||
|
||||
Uses `pydantic-evals` for evaluation framework and `logfire` for observability.
|
||||
23
evaluations/pyproject.toml
Normal file
23
evaluations/pyproject.toml
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
[project]
|
||||
|
||||
name = "haiku.rag-evals"
|
||||
description = "Internal benchmarking and evaluation scripts for haiku.rag"
|
||||
version = "0.13.3"
|
||||
authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }]
|
||||
license = { text = "MIT" }
|
||||
requires-python = ">=3.12"
|
||||
|
||||
dependencies = [
|
||||
"haiku.rag-slim",
|
||||
"pydantic-evals>=1.7.0",
|
||||
"datasets>=4.3.0",
|
||||
"logfire>=4.14.2",
|
||||
"typer>=0.19.2,<0.20.0",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["evaluations"]
|
||||
7
haiku_rag_slim/LICENSE
Normal file
7
haiku_rag_slim/LICENSE
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
Copyright 2025 Yiorgis Gozadinos
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
204
haiku_rag_slim/README.md
Normal file
204
haiku_rag_slim/README.md
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
# Haiku RAG - Slim
|
||||
|
||||
mcp-name: io.github.ggozad/haiku-rag
|
||||
|
||||
Retrieval-Augmented Generation (RAG) library built on LanceDB - Minimal dependencies.
|
||||
|
||||
`haiku.rag-slim` is the core package with minimal dependencies. Document processing via docling is optional and can be installed separately.
|
||||
|
||||
For a batteries-included experience with all extras, see [`haiku.rag`](https://pypi.org/project/haiku.rag/).
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
# Minimal installation (no docling)
|
||||
uv pip install haiku.rag-slim
|
||||
|
||||
# With docling support for document processing
|
||||
uv pip install haiku.rag-slim[docling]
|
||||
|
||||
# With specific extras
|
||||
uv pip install haiku.rag-slim[docling,voyageai,mxbai]
|
||||
```
|
||||
|
||||
> **Note**: Configuration now uses YAML files instead of environment variables. If you're upgrading from an older version, run `haiku-rag init-config --from-env` to migrate your `.env` file to `haiku.rag.yaml`. See [Configuration](https://ggozad.github.io/haiku.rag/configuration/) for details.
|
||||
|
||||
## Features
|
||||
|
||||
- **Local LanceDB**: No external servers required, supports also LanceDB cloud storage, S3, Google Cloud & Azure
|
||||
- **Multiple embedding providers**: Ollama, VoyageAI, OpenAI, vLLM
|
||||
- **Multiple QA providers**: Any provider/model supported by Pydantic AI
|
||||
- **Research graph (multi‑agent)**: Plan → Search → Evaluate → Synthesize with agentic AI
|
||||
- **Native hybrid search**: Vector + full-text search with native LanceDB RRF reranking
|
||||
- **Reranking**: Default search result reranking with MixedBread AI, Cohere, Zero Entropy, or vLLM
|
||||
- **Question answering**: Built-in QA agents on your documents
|
||||
- **File monitoring**: Auto-index files when run as server
|
||||
- **40+ file formats**: PDF, DOCX, HTML, Markdown, code files, URLs
|
||||
- **MCP server**: Expose as tools for AI assistants
|
||||
- **A2A agent**: Conversational agent with context and multi-turn dialogue
|
||||
- **CLI & Python API**: Use from command line or Python
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Install
|
||||
# Python 3.12 or newer required
|
||||
uv pip install haiku.rag-slim[docling]
|
||||
|
||||
# Add documents
|
||||
haiku-rag add "Your content here"
|
||||
haiku-rag add "Your content here" --meta author=alice --meta topic=notes
|
||||
haiku-rag add-src document.pdf --meta source=manual
|
||||
|
||||
# Search
|
||||
haiku-rag search "query"
|
||||
|
||||
# Search with filters
|
||||
haiku-rag search "query" --filter "uri LIKE '%.pdf' AND title LIKE '%paper%'"
|
||||
|
||||
# Ask questions
|
||||
haiku-rag ask "Who is the author of haiku.rag?"
|
||||
|
||||
# Ask questions with citations
|
||||
haiku-rag ask "Who is the author of haiku.rag?" --cite
|
||||
|
||||
# Deep QA (multi-agent question decomposition)
|
||||
haiku-rag ask "Who is the author of haiku.rag?" --deep --cite
|
||||
|
||||
# Deep QA with verbose output
|
||||
haiku-rag ask "Who is the author of haiku.rag?" --deep --verbose
|
||||
|
||||
# Multi‑agent research (iterative plan/search/evaluate)
|
||||
haiku-rag research \
|
||||
"What are the main drivers and trends of global temperature anomalies since 1990?" \
|
||||
--max-iterations 2 \
|
||||
--confidence-threshold 0.8 \
|
||||
--max-concurrency 3 \
|
||||
--verbose
|
||||
|
||||
# Rebuild database (re-chunk and re-embed all documents)
|
||||
haiku-rag rebuild
|
||||
|
||||
# Start server with file monitoring
|
||||
haiku-rag serve --monitor
|
||||
```
|
||||
|
||||
To customize settings, create a `haiku.rag.yaml` config file (see [Configuration](https://ggozad.github.io/haiku.rag/configuration/)).
|
||||
|
||||
## Python Usage
|
||||
|
||||
```python
|
||||
from haiku.rag.client import HaikuRAG
|
||||
from haiku.rag.research import (
|
||||
PlanNode,
|
||||
ResearchContext,
|
||||
ResearchDeps,
|
||||
ResearchState,
|
||||
build_research_graph,
|
||||
stream_research_graph,
|
||||
)
|
||||
|
||||
async with HaikuRAG("database.lancedb") as client:
|
||||
# Add document
|
||||
doc = await client.create_document("Your content")
|
||||
|
||||
# Search (reranking enabled by default)
|
||||
results = await client.search("query")
|
||||
for chunk, score in results:
|
||||
print(f"{score:.3f}: {chunk.content}")
|
||||
|
||||
# Ask questions
|
||||
answer = await client.ask("Who is the author of haiku.rag?")
|
||||
print(answer)
|
||||
|
||||
# Ask questions with citations
|
||||
answer = await client.ask("Who is the author of haiku.rag?", cite=True)
|
||||
print(answer)
|
||||
|
||||
# Multi‑agent research pipeline (Plan → Search → Evaluate → Synthesize)
|
||||
graph = build_research_graph()
|
||||
question = (
|
||||
"What are the main drivers and trends of global temperature "
|
||||
"anomalies since 1990?"
|
||||
)
|
||||
state = ResearchState(
|
||||
context=ResearchContext(original_question=question),
|
||||
max_iterations=2,
|
||||
confidence_threshold=0.8,
|
||||
max_concurrency=2,
|
||||
)
|
||||
deps = ResearchDeps(client=client)
|
||||
|
||||
# Blocking run (final result only)
|
||||
result = await graph.run(
|
||||
PlanNode(provider="openai", model="gpt-4o-mini"),
|
||||
state=state,
|
||||
deps=deps,
|
||||
)
|
||||
print(result.output.title)
|
||||
|
||||
# Streaming progress (log/report/error events)
|
||||
async for event in stream_research_graph(
|
||||
graph,
|
||||
PlanNode(provider="openai", model="gpt-4o-mini"),
|
||||
state,
|
||||
deps,
|
||||
):
|
||||
if event.type == "log":
|
||||
iteration = event.state.iterations if event.state else state.iterations
|
||||
print(f"[{iteration}] {event.message}")
|
||||
elif event.type == "report":
|
||||
print("\nResearch complete!\n")
|
||||
print(event.report.title)
|
||||
print(event.report.executive_summary)
|
||||
```
|
||||
|
||||
## MCP Server
|
||||
|
||||
Use with AI assistants like Claude Desktop:
|
||||
|
||||
```bash
|
||||
haiku-rag serve --stdio
|
||||
```
|
||||
|
||||
Provides tools for document management and search directly in your AI assistant.
|
||||
|
||||
## A2A Agent
|
||||
|
||||
Run as a conversational agent with the Agent-to-Agent protocol:
|
||||
|
||||
```bash
|
||||
# Start the A2A server
|
||||
haiku-rag serve --a2a
|
||||
|
||||
# Connect with the interactive client (in another terminal)
|
||||
haiku-rag a2aclient
|
||||
```
|
||||
|
||||
The A2A agent provides:
|
||||
|
||||
- Multi-turn dialogue with context
|
||||
- Intelligent multi-search for complex questions
|
||||
- Source citations with titles and URIs
|
||||
- Full document retrieval on request
|
||||
|
||||
## Examples
|
||||
|
||||
See the [examples directory](examples/) for working examples:
|
||||
|
||||
- **[Interactive Research Assistant](examples/ag-ui-research/)** - Full-stack research assistant with Pydantic AI and AG-UI featuring human-in-the-loop approval and real-time state synchronization
|
||||
- **[Docker Setup](examples/docker/)** - Complete Docker deployment with file monitoring, MCP server, and A2A agent
|
||||
- **[A2A Security](examples/a2a-security/)** - Authentication examples (API key, OAuth2, GitHub)
|
||||
|
||||
## Documentation
|
||||
|
||||
Full documentation at: https://ggozad.github.io/haiku.rag/
|
||||
|
||||
- [Installation](https://ggozad.github.io/haiku.rag/installation/) - Provider setup
|
||||
- [Configuration](https://ggozad.github.io/haiku.rag/configuration/) - YAML configuration
|
||||
- [CLI](https://ggozad.github.io/haiku.rag/cli/) - Command reference
|
||||
- [Python API](https://ggozad.github.io/haiku.rag/python/) - Complete API docs
|
||||
- [Agents](https://ggozad.github.io/haiku.rag/agents/) - QA agent and multi-agent research
|
||||
- [MCP Server](https://ggozad.github.io/haiku.rag/mcp/) - Model Context Protocol integration
|
||||
- [A2A Agent](https://ggozad.github.io/haiku.rag/a2a/) - Agent-to-Agent protocol support
|
||||
- [Benchmarks](https://ggozad.github.io/haiku.rag/benchmarks/) - Performance Benchmarks
|
||||
56
haiku_rag_slim/pyproject.toml
Normal file
56
haiku_rag_slim/pyproject.toml
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
[project]
|
||||
|
||||
name = "haiku.rag-slim"
|
||||
description = "Agentic Retrieval Augmented Generation (RAG) with LanceDB - Minimal dependencies"
|
||||
version = "0.13.3"
|
||||
authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }]
|
||||
license = { text = "MIT" }
|
||||
readme = { file = "README.md", content-type = "text/markdown" }
|
||||
requires-python = ">=3.12"
|
||||
keywords = ["RAG", "lancedb", "vector-database", "ml", "mcp"]
|
||||
classifiers = [
|
||||
"Development Status :: 4 - Beta",
|
||||
"Environment :: Console",
|
||||
"Intended Audience :: Developers",
|
||||
"Operating System :: Microsoft :: Windows :: Windows 10",
|
||||
"Operating System :: Microsoft :: Windows :: Windows 11",
|
||||
"Operating System :: MacOS",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Programming Language :: Python :: 3.13",
|
||||
"Typing :: Typed",
|
||||
]
|
||||
|
||||
dependencies = [
|
||||
"fastmcp>=2.13.0.2",
|
||||
"httpx>=0.28.1",
|
||||
"lancedb>=0.25.2",
|
||||
"pathspec>=0.12.1",
|
||||
"pydantic>=2.12.3",
|
||||
"pydantic-ai>=1.7.0",
|
||||
"pydantic-graph>=1.7.0",
|
||||
"python-dotenv>=1.2.1",
|
||||
"pyyaml>=6.0.3",
|
||||
"rich>=14.2.0",
|
||||
"tiktoken>=0.12.0",
|
||||
"typer>=0.19.2,<0.20.0",
|
||||
"watchfiles>=1.1.1",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
docling = ["docling>=2.58.0"]
|
||||
voyageai = ["voyageai>=0.3.5"]
|
||||
mxbai = ["mxbai-rerank>=0.1.6"]
|
||||
a2a = ["fasta2a>=0.1.0"]
|
||||
cohere = ["cohere>=5.0.0"]
|
||||
zeroentropy = ["zeroentropy>=0.1.0a6"]
|
||||
|
||||
[project.scripts]
|
||||
haiku-rag = "haiku.rag.cli:cli"
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["haiku"]
|
||||
|
|
@ -22,29 +22,9 @@ classifiers = [
|
|||
]
|
||||
|
||||
dependencies = [
|
||||
"docling>=2.58.0",
|
||||
"fastmcp>=2.13.0.2",
|
||||
"httpx>=0.28.1",
|
||||
"lancedb>=0.25.2",
|
||||
"pathspec>=0.12.1",
|
||||
"pydantic>=2.12.3",
|
||||
"pydantic-ai>=1.7.0",
|
||||
"pydantic-graph>=1.7.0",
|
||||
"python-dotenv>=1.2.1",
|
||||
"pyyaml>=6.0.3",
|
||||
"rich>=14.2.0",
|
||||
"tiktoken>=0.12.0",
|
||||
"typer>=0.19.2,<0.20.0",
|
||||
"watchfiles>=1.1.1",
|
||||
"haiku.rag-slim[docling,voyageai,mxbai,a2a,cohere,zeroentropy]",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
voyageai = ["voyageai>=0.3.5"]
|
||||
mxbai = ["mxbai-rerank>=0.1.6"]
|
||||
a2a = ["fasta2a>=0.1.0"]
|
||||
cohere = ["cohere>=5.0.0"]
|
||||
zeroentropy = ["zeroentropy>=0.1.0a6"]
|
||||
|
||||
[project.scripts]
|
||||
haiku-rag = "haiku.rag.cli:cli"
|
||||
|
||||
|
|
@ -53,10 +33,17 @@ requires = ["hatchling"]
|
|||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.build]
|
||||
exclude = ["/docs", "/examples", "/tests", "/docker", "/.github"]
|
||||
exclude = ["/docs", "/examples", "/tests", "/docker", "/.github", "/haiku_rag_slim", "/evaluations"]
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/haiku"]
|
||||
only-include = ["/README.md"]
|
||||
|
||||
[tool.uv.workspace]
|
||||
members = ["haiku_rag_slim", "evaluations"]
|
||||
|
||||
[tool.uv.sources]
|
||||
"haiku.rag-slim" = { workspace = true }
|
||||
"haiku.rag-evals" = { workspace = true }
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
|
|
|
|||
107
uv.lock
107
uv.lock
|
|
@ -13,6 +13,13 @@ resolution-markers = [
|
|||
"(python_full_version >= '3.14' and platform_machine != 'aarch64' and sys_platform == 'linux') or (python_full_version >= '3.14' and sys_platform != 'darwin' and sys_platform != 'linux')",
|
||||
]
|
||||
|
||||
[manifest]
|
||||
members = [
|
||||
"haiku-rag",
|
||||
"haiku-rag-evals",
|
||||
"haiku-rag-slim",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "accelerate"
|
||||
version = "1.10.1"
|
||||
|
|
@ -1153,7 +1160,68 @@ name = "haiku-rag"
|
|||
version = "0.13.3"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "docling" },
|
||||
{ name = "haiku-rag-slim", extra = ["a2a", "cohere", "docling", "mxbai", "voyageai", "zeroentropy"] },
|
||||
]
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "datasets" },
|
||||
{ name = "logfire" },
|
||||
{ name = "mkdocs" },
|
||||
{ name = "mkdocs-material" },
|
||||
{ name = "pre-commit" },
|
||||
{ name = "pydantic-evals" },
|
||||
{ name = "pyright" },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-asyncio" },
|
||||
{ name = "pytest-cov" },
|
||||
{ name = "ruff" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [{ name = "haiku-rag-slim", extras = ["docling", "voyageai", "mxbai", "a2a", "cohere", "zeroentropy"], editable = "haiku_rag_slim" }]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
{ name = "datasets", specifier = ">=4.3.0" },
|
||||
{ name = "logfire", specifier = ">=4.14.2" },
|
||||
{ name = "mkdocs", specifier = ">=1.6.1" },
|
||||
{ name = "mkdocs-material", specifier = ">=9.6.22" },
|
||||
{ name = "pre-commit", specifier = ">=4.3.0" },
|
||||
{ name = "pydantic-evals", specifier = ">=1.7.0" },
|
||||
{ name = "pyright", specifier = ">=1.1.407" },
|
||||
{ name = "pytest", specifier = ">=8.4.2" },
|
||||
{ name = "pytest-asyncio", specifier = ">=1.2.0" },
|
||||
{ name = "pytest-cov", specifier = ">=7.0.0" },
|
||||
{ name = "ruff", specifier = ">=0.14.2" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "haiku-rag-evals"
|
||||
version = "0.13.3"
|
||||
source = { editable = "evaluations" }
|
||||
dependencies = [
|
||||
{ name = "datasets" },
|
||||
{ name = "haiku-rag-slim" },
|
||||
{ name = "logfire" },
|
||||
{ name = "pydantic-evals" },
|
||||
{ name = "typer" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "datasets", specifier = ">=4.3.0" },
|
||||
{ name = "haiku-rag-slim", editable = "haiku_rag_slim" },
|
||||
{ name = "logfire", specifier = ">=4.14.2" },
|
||||
{ name = "pydantic-evals", specifier = ">=1.7.0" },
|
||||
{ name = "typer", specifier = ">=0.19.2,<0.20.0" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "haiku-rag-slim"
|
||||
version = "0.13.3"
|
||||
source = { editable = "haiku_rag_slim" }
|
||||
dependencies = [
|
||||
{ name = "fastmcp" },
|
||||
{ name = "httpx" },
|
||||
{ name = "lancedb" },
|
||||
|
|
@ -1176,6 +1244,9 @@ a2a = [
|
|||
cohere = [
|
||||
{ name = "cohere" },
|
||||
]
|
||||
docling = [
|
||||
{ name = "docling" },
|
||||
]
|
||||
mxbai = [
|
||||
{ name = "mxbai-rerank" },
|
||||
]
|
||||
|
|
@ -1186,25 +1257,10 @@ zeroentropy = [
|
|||
{ name = "zeroentropy" },
|
||||
]
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "datasets" },
|
||||
{ name = "logfire" },
|
||||
{ name = "mkdocs" },
|
||||
{ name = "mkdocs-material" },
|
||||
{ name = "pre-commit" },
|
||||
{ name = "pydantic-evals" },
|
||||
{ name = "pyright" },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-asyncio" },
|
||||
{ name = "pytest-cov" },
|
||||
{ name = "ruff" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "cohere", marker = "extra == 'cohere'", specifier = ">=5.0.0" },
|
||||
{ name = "docling", specifier = ">=2.58.0" },
|
||||
{ name = "docling", marker = "extra == 'docling'", specifier = ">=2.58.0" },
|
||||
{ name = "fasta2a", marker = "extra == 'a2a'", specifier = ">=0.1.0" },
|
||||
{ name = "fastmcp", specifier = ">=2.13.0.2" },
|
||||
{ name = "httpx", specifier = ">=0.28.1" },
|
||||
|
|
@ -1223,22 +1279,7 @@ requires-dist = [
|
|||
{ name = "watchfiles", specifier = ">=1.1.1" },
|
||||
{ name = "zeroentropy", marker = "extra == 'zeroentropy'", specifier = ">=0.1.0a6" },
|
||||
]
|
||||
provides-extras = ["voyageai", "mxbai", "a2a", "cohere", "zeroentropy"]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
{ name = "datasets", specifier = ">=4.3.0" },
|
||||
{ name = "logfire", specifier = ">=4.14.2" },
|
||||
{ name = "mkdocs", specifier = ">=1.6.1" },
|
||||
{ name = "mkdocs-material", specifier = ">=9.6.22" },
|
||||
{ name = "pre-commit", specifier = ">=4.3.0" },
|
||||
{ name = "pydantic-evals", specifier = ">=1.7.0" },
|
||||
{ name = "pyright", specifier = ">=1.1.407" },
|
||||
{ name = "pytest", specifier = ">=8.4.2" },
|
||||
{ name = "pytest-asyncio", specifier = ">=1.2.0" },
|
||||
{ name = "pytest-cov", specifier = ">=7.0.0" },
|
||||
{ name = "ruff", specifier = ">=0.14.2" },
|
||||
]
|
||||
provides-extras = ["docling", "voyageai", "mxbai", "a2a", "cohere", "zeroentropy"]
|
||||
|
||||
[[package]]
|
||||
name = "hf-xet"
|
||||
|
|
|
|||
Loading…
Reference in a new issue