-
Notifications
You must be signed in to change notification settings - Fork 2k
feat: Dr v0 - initial work to unify flows and set up for Deep Research #5010
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
Initial Deep Research (DR) implementation that unifies knowledge graph and basic search flows, introducing a new decision-based routing system for query processing.
- Added new
TimeBudget
enum inbackend/onyx/agents/agent_search/models.py
to configure search depth with FAST/SHALLOW/DEEP options, laying groundwork for more sophisticated research capabilities - Implemented decision routing in
backend/onyx/agents/agent_search/dr/nodes/dr_a1_orchestrator.py
that dynamically chooses between search or knowledge graph paths, but lacks proper error handling for non-FAST time budgets - Enhanced search result handling in
backend/onyx/agents/agent_search/basic/models.py
with newBasicSearchProcessedStreamResults
for better structure of answers and citations - Changed KB search in
backend/onyx/agents/agent_search/kb_search/nodes/d1_generate_answer.py
to properly capture final answers, but some paths lack test coverage - Replaced KB graph with DR graph in
backend/onyx/chat/answer.py
, using temporaryTMP_DRALPHA_PERSONA_NAME
constant suggesting transitional implementation
23 files reviewed, 32 comments
Edit PR Review Bot Settings | Greptile
return BasicSearchProcessedStreamResults( | ||
ai_message_chunk=cast(AIMessageChunk, tool_call_chunk), | ||
full_answer=full_answer, | ||
cited_references=[], | ||
retrieved_documents=[], | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logic: cited_references and retrieved_documents are always empty lists. Consider populating from final_search_results if available
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with greptile, either these should be populated or the fields should be removed (if you never use them later)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
first pass
return BasicSearchProcessedStreamResults( | ||
ai_message_chunk=cast(AIMessageChunk, tool_call_chunk), | ||
full_answer=full_answer, | ||
cited_references=[], | ||
retrieved_documents=[], | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with greptile, either these should be populated or the fields should be removed (if you never use them later)
backend/onyx/agents/agent_search/orchestration/nodes/use_tool_response.py
Outdated
Show resolved
Hide resolved
Here are the entity types that are available in the knowledge graph: | ||
{SEPARATOR_LINE} | ||
---possible_entities--- | ||
{SEPARATOR_LINE} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
since you're doing two distinct rounds of substitution, I do think it's fair to do something like {{possible_entities}} instead of the raw string replace
Description
How Has This Been Tested?
locally in multi-tenant environment
Backporting (check the box to trigger backport action)
Note: You have to check that the action passes, otherwise resolve the conflicts manually and tag the patches.