Yiorgis Gozadinos
ad4e79ab5d
Store DoclingDocument json
2025-12-08 15:54:31 +02:00
Yiorgis Gozadinos
343272d6fb
Chunkers return chunks with metadata, i.e. (refs, labels, headings, page_numbers)
2025-12-08 15:54:31 +02:00
Yiorgis Gozadinos
44e8d7b340
Update Document & Chunk schemas to include DoclingDocument references.
2025-12-08 15:54:30 +02:00
Yiorgis Gozadinos
33b254ae3d
Always upgrade database on access. Explicitly create db by running init or HaikuRAG(path, create=True)
2025-12-02 16:49:55 +02:00
Yiorgis Gozadinos
3525fae625
Use EmbeddingModelConfig similar to ModelConfig for embeddings
2025-12-02 11:55:31 +02:00
Yiorgis Gozadinos
e548a51ff7
Optimized rebuild --embed-only to use batch updates via LanceDB merge_insert instead of individual chunk updates
2025-12-01 17:53:27 +02:00
Yiorgis Gozadinos
88a4edb537
--embed-only, --rechunk options in rebuild command
2025-11-28 10:11:52 +02:00
Yiorgis Gozadinos
51104ddb5a
Use httpx for docling-serve
2025-11-27 15:06:13 +02:00
Yiorgis Gozadinos
e40c352026
Switch from requests to httpx.AsyncClient for docling-serve
2025-11-26 18:00:29 +02:00
Yiorgis Gozadinos
14bdb7cb27
async versions for convert_file() convert_text()
2025-11-26 17:46:25 +02:00
Yiorgis Gozadinos
0303e6a8cd
Support LMStudio
2025-11-26 10:31:40 +02:00
Yiorgis Gozadinos
283c44867d
Generate the config from the AppConfig model directly, add tests
2025-11-26 10:17:22 +02:00
Yiorgis Gozadinos
2c554a9350
Do not use private methods in tests
2025-11-25 14:19:28 +02:00
Yiorgis Gozadinos
e83978f88b
Revert embeddings to use flat config
2025-11-25 12:51:58 +02:00
Yiorgis Gozadinos
a9701616c8
Rename model to name under model
2025-11-25 12:28:43 +02:00
Yiorgis Gozadinos
1bb7b6d5bd
Add support for per-model configuration settings including thinking, temperature and max_tokens
2025-11-25 12:14:24 +02:00
Yiorgis Gozadinos
13d3a366e8
Enhanced ActivitySnapshot events with richer structured data
2025-11-24 16:18:27 +02:00
Yiorgis Gozadinos
b5892699a0
Use Mean Reciprocal Rank for single document evaluation as metric. Use Mean Average Precision for variable document evaluation as metric
2025-11-24 14:49:30 +02:00
Yiorgis Gozadinos
89a2668c25
inspector command that runs a textual app to browse documents and chunks in the database
2025-11-21 16:48:34 +02:00
Yiorgis Gozadinos
8c02e865c7
Change default embedding model to qwen3-embedding:4b
2025-11-21 16:30:41 +02:00
Yiorgis Gozadinos
2f54ee7d59
Replace allow_create with cleaner read_only. Elaborate on the test_info tests
2025-11-21 14:37:33 +02:00
Yiorgis Gozadinos
c45d507213
Allow custom config when building research/deep ask graphs. Closes #149
2025-11-21 12:37:41 +02:00
Yiorgis Gozadinos
5c4a32f1c8
Fix ACTIVITY_SNAPSHOT payloads. Closes #150
2025-11-21 12:27:54 +02:00
Yiorgis Gozadinos
5089ea4203
New update_document_fields() method for partial document updates
2025-11-19 11:37:36 +02:00
Yiorgis Gozadinos
0bb3f4301c
Additional options for document conversion with docling
2025-11-18 15:44:04 +02:00
Yiorgis Gozadinos
81b7c7d9d1
Tests for docling-serve chunker
2025-11-17 13:05:06 +02:00
Yiorgis Gozadinos
75cbdb47a8
Add chunker configuration options
...
- Add `chunker_type` config field to choose between "hybrid" (default) and "hierarchical" chunking strategies
- Add `chunking_merge_peers` config field for HybridChunker (default: true)
- Add `chunking_use_markdown_tables` config field to control table serialization format (default: false, matching docling's default)
2025-11-17 13:05:06 +02:00
Yiorgis Gozadinos
de5bb117fe
Chunker abstraction
2025-11-17 13:05:06 +02:00
Yiorgis Gozadinos
541552215e
Switch to using HuggingFace tokenizers
2025-11-17 13:05:05 +02:00
Yiorgis Gozadinos
fe7d0c5c24
Implement docling-serve converter
2025-11-17 13:05:05 +02:00
Yiorgis Gozadinos
7ba1c2376e
Introduce converters for supporting more than local docling document conversion. Transform existing FileReader and utils to "docling-local" converter
2025-11-17 13:05:05 +02:00
Yiorgis Gozadinos
4599dd1481
Drop disable_auto_create flag, simply create only on write operations
2025-11-13 13:53:11 +02:00
Yiorgis Gozadinos
4a623934b2
Log additional ag-ui events in the cli renderer
2025-11-13 13:22:52 +02:00
Yiorgis Gozadinos
68d1127e46
Compute and emit state deltas instead of full state snapshots by default
2025-11-13 13:22:52 +02:00
Yiorgis Gozadinos
032625b0bb
Refactor everything graph-related under the graph module
2025-11-13 13:22:03 +02:00
Yiorgis Gozadinos
8f0597e89e
Update deep ask graph
2025-11-13 13:22:03 +02:00
Yiorgis Gozadinos
dccef431b0
Update tests
2025-11-13 13:22:02 +02:00
Yiorgis Gozadinos
908296e155
Do not create unecessary DoclingDocument when chunks are provided. Rename private _create_with_docling & _update_with_docling to _create_and_chunk & _update_and_rechunk
2025-11-13 13:16:15 +02:00
Yiorgis Gozadinos
b6650d0486
Introduce delete_orphans in monitor (default=false) to delete db entries that do not resolve in the filesystem
2025-11-07 14:40:13 +02:00
Yiorgis Gozadinos
31713e5fb6
Properly skip (and log as such) documents without changing updated_at when the md5 hash is unchanged
2025-11-07 14:00:05 +02:00
Yiorgis Gozadinos
9ee64a33e0
Remove A2A from haiku.rag, turn it into an example
2025-11-07 13:31:51 +02:00
Yiorgis Gozadinos
5d88e3b87f
Fix CLI test mocks
2025-11-07 11:52:15 +02:00
Yiorgis Gozadinos
0b696d9629
Remove deprecated use of env variables for configuration
2025-11-07 10:54:32 +02:00
Yiorgis Gozadinos
782fbafb3d
Make graph settings part of config for both deep ask and research graphs
2025-11-06 14:31:22 +02:00
Yiorgis Gozadinos
38861da549
Go back and separate common patters in graph_common
2025-11-06 11:02:32 +02:00
Yiorgis Gozadinos
9075dac23a
Remove graph common and move its content to deep QA, research.
2025-11-06 11:02:32 +02:00
Yiorgis Gozadinos
bc71ad6fb0
Refactor research, deep ask to work with new beta pyndtic AI graph
2025-11-06 11:02:32 +02:00
Yiorgis Gozadinos
b8bc6d9b68
Let ruff know about our package structure
2025-11-05 17:47:27 +02:00
Yiorgis Gozadinos
1f22f74e1a
Add filtering to document listing in CLI/client
2025-11-04 16:02:58 +02:00
Yiorgis Gozadinos
d19d2b7f00
Fix tests
2025-10-31 12:50:08 +02:00
Yiorgis Gozadinos
5c7c79397c
Merge pull request #125 from ggozad/feat/filtering
...
Filtered searches
2025-10-30 14:28:42 +02:00
Yiorgis Gozadinos
6e0587c40e
Merge pull request #124 from ggozad/fix/add-src-monitor-filter
...
Apply configured include/exclude filters when using CLI's add-src to add a directory
2025-10-30 14:27:00 +02:00
Yiorgis Gozadinos
2f00686605
Support for zero entropy reranker
2025-10-30 13:36:44 +02:00
Yiorgis Gozadinos
7d57fd6c97
Add filter param to search(). When filtering, we search in two steps: First filter documents, then search on the chunks with document_id IN the filtered documents
2025-10-30 13:03:23 +02:00
Yiorgis Gozadinos
79d3559f15
Apply configured include/exclude filters when using CLIs add-src to add a directory recursively
2025-10-29 14:55:00 +02:00
Yiorgis Gozadinos
f9b6894974
Fix info to not use old .env settings
2025-10-29 13:31:54 +02:00
Yiorgis Gozadinos
5a7d90ce9f
Change default location for config from XDG statndatd to use the platform-specific folder we use for the db as well
2025-10-29 11:50:30 +02:00
Yiorgis Gozadinos
ad1ee52a27
Move monitor config in its own section
2025-10-29 11:23:56 +02:00
Yiorgis Gozadinos
987ddab683
Tests for filtering with pathspec
2025-10-29 10:39:00 +02:00
Yiorgis Gozadinos
cabb7748f5
Filtering based on pathspec
2025-10-29 10:27:16 +02:00
Yiorgis Gozadinos
a15f1d8cf5
Use pathspec for monitor filtering
2025-10-29 10:13:53 +02:00
Yiorgis Gozadinos
e11a5128f9
Pass config to embedders
2025-10-28 09:15:08 +02:00
Yiorgis Gozadinos
4cc25407ef
Properly skip a2a tests if fasta2a not installed
2025-10-27 11:28:35 +02:00
Yiorgis Gozadinos
469d993542
Remove provider API keys from config, rely on environment variables for those
2025-10-23 13:52:57 +03:00
Yiorgis Gozadinos
618b3ffd5f
Refactor config from flat to nested Pydantic models
2025-10-23 13:30:21 +03:00
Yiorgis Gozadinos
082811a846
tests for yaml configuration
2025-10-23 11:58:47 +03:00
Yiorgis Gozadinos
1cab0339ad
add-src in cli & create_document_from_source will recursively add directories
2025-10-16 09:55:50 +03:00
Yiorgis Gozadinos
7b371b96ed
Use TestModel from pydantic AI where appropriate
2025-10-14 13:27:20 +03:00
Yiorgis Gozadinos
c0691bc237
Remove list documents, make separate artifacts for q/a, search & get document
2025-10-13 18:01:24 +03:00
Yiorgis Gozadinos
1f2552bd6a
Make serve cli command run monitor, mcp or a2a independently
2025-10-13 18:01:24 +03:00
Yiorgis Gozadinos
6ea7d73eed
Remove deep q/a from a2a agent
2025-10-13 18:01:23 +03:00
Yiorgis Gozadinos
352637faa6
Refactor into own module
2025-10-13 18:01:23 +03:00
Yiorgis Gozadinos
1a88b0355a
deep q/a skill and skill selection
2025-10-13 18:01:22 +03:00
Yiorgis Gozadinos
5c0f0e5830
Add skills
2025-10-13 18:01:22 +03:00
Yiorgis Gozadinos
48cdb8a1db
Implement an LRUMemoryStorage for context
2025-10-13 18:01:22 +03:00
Yiorgis Gozadinos
e70fa737b7
Tests for a2a
2025-10-13 18:01:21 +03:00
Yiorgis Gozadinos
43dac018c0
Test mcp tools
2025-10-08 09:20:26 +03:00
Yiorgis Gozadinos
5e4928ccad
Make sure vacuum task has been complete before exiting the client
2025-10-07 12:27:55 +03:00
Yiorgis Gozadinos
094f0e0d44
Centralize vacuuming
2025-10-07 12:05:25 +03:00
Yiorgis Gozadinos
c6eaf9d5cd
Add vacuum retention setting
2025-10-07 10:47:28 +03:00
Yiorgis Gozadinos
a6275fcf25
Rename nodes to make it clear they are part of Q/A
2025-09-30 16:59:36 +03:00
Yiorgis Gozadinos
49eac86259
Add verbose flag to ask
2025-09-30 16:59:36 +03:00
Yiorgis Gozadinos
2dfb1882dd
Deep QA multi-agent
2025-09-30 16:59:36 +03:00
Yiorgis Gozadinos
42c54a8d25
Shuffle reusable nodes under graph/
2025-09-30 16:59:36 +03:00
Yiorgis Gozadinos
05c382fcb5
When rebuilding if a document does not exist anymore, re-embed the chunks instead of failing
2025-09-30 16:57:02 +03:00
Yiorgis Gozadinos
57e86d00fd
Refactor evaluations so that we can perform with multiple datasets..
...
Introduce Wix dataset.
2025-09-30 11:31:50 +03:00
Yiorgis Gozadinos
19ad1b9d7d
improve output
2025-09-30 11:30:35 +03:00
Yiorgis Gozadinos
87f28ed96b
Update docs
2025-09-30 11:30:35 +03:00
Yiorgis Gozadinos
7cc4e13b57
Make benchmarks use pydantic evals
2025-09-30 11:30:34 +03:00
Yiorgis Gozadinos
14168db795
Fix embedding client test
2025-09-26 13:52:06 +03:00
Yiorgis Gozadinos
184fd12e42
Do not run db upgrades when creating a new db
2025-09-25 10:52:11 +03:00
Yiorgis Gozadinos
064b823020
Break Evaluation node into AnalyzeInsights & DecisionNode. Use a list of updateable insights & gaps
2025-09-24 16:26:48 +03:00
Yiorgis Gozadinos
84e94f8257
Wire gaps that were forgotten
2025-09-24 14:03:53 +03:00
Yiorgis Gozadinos
cf9d6a116f
Do not duplicate ResearchContext in ResearchState
2025-09-24 13:43:07 +03:00
Yiorgis Gozadinos
086eb56d34
Stream research
2025-09-24 11:27:05 +03:00
Yiorgis Gozadinos
8f3055d37d
Parse non-strings
2025-09-23 16:42:40 +03:00
Yiorgis Gozadinos
45d0b47a02
Meta in CLI add-src, add
2025-09-23 16:39:27 +03:00
Yiorgis Gozadinos
5ea5de274c
Make styles consistent
2025-09-23 12:27:01 +03:00
Yiorgis Gozadinos
52ea1ebb70
info command in CLI
2025-09-23 12:20:25 +03:00
Yiorgis Gozadinos
2c93f4f823
Preserve title if it exists when expanding context
2025-09-22 13:45:59 +03:00
Yiorgis Gozadinos
20993b48a7
Fix test after rebase
2025-09-22 12:53:52 +03:00
Yiorgis Gozadinos
73aff1695f
Update LLM prompts/tools to reflect we will pass title (if available) or URI
2025-09-22 12:45:32 +03:00
Yiorgis Gozadinos
4077e3ecb2
Handle title in client & CLI
2025-09-22 12:45:32 +03:00
Yiorgis Gozadinos
dce60fa461
Remove SSE transport, fix cli tests
2025-09-20 10:58:28 +03:00
Yiorgis Gozadinos
cba8ad7696
Research agent as a pydantic graph
2025-09-19 14:39:39 +03:00
Yiorgis Gozadinos
a215a64686
Refactor to give its research subagent full responsibility
2025-09-19 12:10:00 +03:00
Yiorgis Gozadinos
5bfa720864
Remove openai models from research tests
2025-09-19 12:09:59 +03:00
Yiorgis Gozadinos
d1e2470d94
Upgrades are back. Make chunk order a table column rather than a metadata property
2025-09-18 13:42:07 +03:00
Yiorgis Gozadinos
03289bb644
Fix MCP test
2025-09-18 12:54:36 +03:00
Yiorgis Gozadinos
a807f3ea36
Simplify structured output for research agents
2025-09-17 18:31:55 +03:00
Yiorgis Gozadinos
05e08c48e4
Simplify SearchAgent. Omit search results, but keep QA results.
2025-09-17 12:37:16 +03:00
Yiorgis Gozadinos
70544b5112
Research agent tests
2025-09-17 08:54:54 +03:00
Yiorgis Gozadinos
98ca5c4746
Simplify orchestration & subagents
2025-09-17 08:54:54 +03:00
Yiorgis Gozadinos
c029350d79
Make search agent more like a qa agent
2025-09-17 08:51:44 +03:00
Yiorgis Gozadinos
53905c2d69
Simplify search agent
2025-09-17 08:51:44 +03:00
Yiorgis Gozadinos
fe8e48df38
Config research provider/model, CLI
2025-09-17 08:51:44 +03:00
Yiorgis Gozadinos
86b44c47f9
Adapt clarification agent, basic orchestrator
2025-09-17 08:51:43 +03:00
Yiorgis Gozadinos
b03ee08f18
Search agent
2025-09-17 08:51:43 +03:00
Yiorgis Gozadinos
4a07444030
Rollback version if a failure occurs when creating/updating documents
2025-09-15 11:54:50 +03:00
Yiorgis Gozadinos
765a6e647d
Allow for custom pre-processing after markdown is generated and before it is chunked.
2025-09-15 11:02:34 +03:00
Yiorgis Gozadinos
c43ae62018
Fix client test on context expansion to not depend on .env settings
2025-09-12 12:38:22 +03:00
Yiorgis Gozadinos
d90dfe258c
Use logfire when running evaluations
2025-09-12 09:45:06 +03:00
Yiorgis Gozadinos
2207b7d1ed
vacuum() in store, client, cli. Removes old versions and reduces disk usage
2025-09-10 11:24:51 +03:00
Yiorgis Gozadinos
8dfb8638be
Fix SSE server setup
2025-09-08 15:31:56 +03:00
Yiorgis Gozadinos
b99f88f104
Support batch embedding
2025-09-05 10:48:31 +03:00
Yiorgis Gozadinos
bc28e60cf7
Support vLLM for QA agents
2025-09-04 15:20:37 +03:00
Yiorgis Gozadinos
f2847d0524
Reranking support for vLLM, documentation update
2025-09-04 13:13:10 +03:00
Yiorgis Gozadinos
16f7ba9d99
VLLM embedding
2025-09-04 10:44:07 +03:00
Yiorgis Gozadinos
3c235e8b6c
Suppress logging from deps
2025-09-03 11:42:08 +03:00
Yiorgis Gozadinos
b73949c784
update benchmarks
2025-09-02 15:10:57 +03:00
Yiorgis Gozadinos
9e5f11060d
Allow connecting to lancedb cloud, s3, gc, az etc
2025-09-02 12:49:17 +03:00
Yiorgis Gozadinos
fe850e778d
Remove Ollama reranker, this was a bad idea
2025-09-02 11:42:31 +03:00
Yiorgis Gozadinos
27b16bdf8d
Update basic benchmarks
2025-09-02 10:51:20 +03:00
Yiorgis Gozadinos
b05e5f5408
Set/get haiku version to db
2025-09-01 17:41:41 +03:00
Yiorgis Gozadinos
a5e087aa53
Fix scores depending on search type
2025-09-01 14:56:15 +03:00
Yiorgis Gozadinos
628bdc8151
Cleanup
2025-09-01 14:56:15 +03:00
Yiorgis Gozadinos
0592a7d122
Adapt search to lancedb
2025-09-01 14:56:14 +03:00
Yiorgis Gozadinos
b83596ff07
Basic moving to lancedb.
2025-09-01 14:56:14 +03:00
Yiorgis Gozadinos
1f61d78165
Bring back QA_MODEL and keep compatibility with previous versions
2025-08-17 15:27:03 +02:00
Yiorgis Gozadinos
d6d79d5e94
Allow any provider/model supported by pydantic AI
2025-08-17 14:55:50 +02:00
Yiorgis Gozadinos
4ac658e9dd
Convert LLM Judge
2025-08-17 14:36:51 +02:00
Yiorgis Gozadinos
79841f32ca
Do not use mocks in embeddings test
2025-08-15 22:01:57 +02:00
Yiorgis Gozadinos
26a3715902
Refactor Ollama reranker around pydantic AI
2025-08-15 21:26:16 +02:00
Yiorgis Gozadinos
390397570a
Migrate QA agent to Pydantic AI.
2025-08-15 21:13:17 +02:00
Yiorgis Gozadinos
bf8a4f22be
Make radius a parameter we can pass to expand_context()
2025-08-12 16:53:45 +02:00
Yiorgis Gozadinos
99f7401817
Merge expanded context if possible
2025-08-12 15:02:07 +02:00
Yiorgis Gozadinos
eb13426aae
expand_context() by using the adjacent chunks
2025-08-12 14:14:18 +02:00
Yiorgis Gozadinos
2f42b1a3ac
Get adjacent chunks method
2025-08-12 13:24:04 +02:00
Yiorgis Gozadinos
842e4a882d
Make citations optional, through cite parameter
2025-08-12 13:19:11 +02:00
Yiorgis Gozadinos
5103e6c2d7
Add Ollama reranker
2025-08-10 20:50:17 +02:00