graphrag
graphrag copied to clipboard
DRIFT Search
Description
This PR adds a dynamic, graph reasoning module for performing GraphRAG queries.
Proposed Changes
- Create configuration and defaults for DRIFT
- Update BaseSearch to accept generic context builder. This is done to allow for a different signature for the DRIFT context builder while still allowing it to be a child of BaseSearch
- Create Misc. Utilities for running DRIFT query, storing state, serializing, warm starting, etc.
Checklist
- [x] I have tested these changes locally.
- [x] I have reviewed the code changes.
- [ ] I have updated the documentation (if necessary). Detailed docs are coming shortly
- [ ] I have added appropriate unit tests (if applicable). Let me know if you think we should add some tests here, it's a pretty big PR and touches a decent chunk of the repo. Perhaps the search APIs are good candidates for unit tests?
Additional Notes
A few more experiments are in the pipeline to extend DRIFT functionality. The QueryState and DRIFTAction objects were built to accommodate experimenting with different forms of reasoning chains. More to come soon..