Feature Summary
Add one end-to-end example and integration test that proves the complete financial knowledge path:
paper input
-> paper_flow
-> canonical Paper / TreeKnowledge
-> LocalKnowledgeLibrary.put
-> semantic search
-> typed SemanticHit evidence
This issue stays separate from #111 so the semantic library can be developed with deterministic fixtures while the existing paper-flow bug in #91 is resolved.
Motivation
A local semantic index is not sufficient unless real extraction output can enter the library and be found again without losing:
- information-cutoff and source-availability time;
- source and extraction provenance;
- tree/node identity;
- citations;
- typed financial query filters.
Proposed Implementation
Add one focused example:
examples/library/search_paper.py
paper = await paper_flow(input, cfg=paper_cfg)
library = await LocalKnowledgeLibrary.open(
".quantmind/library.db",
embedding_model="text-embedding-3-small",
)
await library.put(paper)
hits = await library.search(
SemanticQuery(
text="What are the paper's main methodological limitations?",
item_types=["paper"],
available_at_before=research_cutoff,
top_k=5,
)
)
stored_paper = await library.get(hits[0].item_id)
Keep the example to this single use case. Do not add conversational RAG, PageIndex, reranking, or multiple providers.
Acceptance Criteria
Non-goals
Related Issues
Implementation Considerations
Breaking Changes
Dependencies
Feature Summary
Add one end-to-end example and integration test that proves the complete financial knowledge path:
This issue stays separate from #111 so the semantic library can be developed with deterministic fixtures while the existing paper-flow bug in #91 is resolved.
Motivation
A local semantic index is not sufficient unless real extraction output can enter the library and be found again without losing:
Proposed Implementation
Add one focused example:
Keep the example to this single use case. Do not add conversational RAG, PageIndex, reranking, or multiple providers.
Acceptance Criteria
paper_flowfrom paper_flow() fails on its own README example: dict-typed nodes field breaks strict structured output, UUID id fields reject the model's natural output #91.as_of_beforeas information-cutoff filtering.available_at_beforeexcludes unavailable and unknown-time knowledge at the research cutoff.paper_flowpropagatesPaper.available_atandSourceRef.fetched_atfrom the actual source version. A later arXiv revision must not inherit the original publication time as its availability timestamp.library.get()to canonical nodes in the storedPaper.Paperis idempotent and does not duplicate knowledge. Cross-run extraction deduplication is not claimed.scripts/verify.shpasses.Non-goals
Related Issues
Implementation Considerations
Breaking Changes
Dependencies