deep_search_a and agent_a_config renaming

This commit is contained in:
joachim-danswer 2025-01-31 12:52:18 -08:00 committed by Evan Lohn
parent 732861a940
commit 0ccd83e809
58 changed files with 270 additions and 268 deletions

View File

@ -1,10 +1,10 @@
from datetime import datetime
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.main.operations import logger
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.operations import logger
from onyx.agents.agent_search.deep_search.main.states import (
DecompAnswersUpdate,
)
from onyx.agents.agent_search.shared_graph_utils.operators import (

View File

@ -3,10 +3,10 @@ from datetime import datetime
from langgraph.types import Send
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionInput,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalInput,
)
from onyx.utils.logger import setup_logger

View File

@ -2,31 +2,31 @@ from langgraph.graph import END
from langgraph.graph import START
from langgraph.graph import StateGraph
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.edges import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.edges import (
send_to_expanded_retrieval,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.nodes.check_sub_answer import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.nodes.check_sub_answer import (
check_sub_answer,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.nodes.format_sub_answer import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.nodes.format_sub_answer import (
format_sub_answer,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.nodes.generate_sub_answer import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.nodes.generate_sub_answer import (
generate_sub_answer,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.nodes.ingest_retrieved_documents import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.nodes.ingest_retrieved_documents import (
ingest_retrieved_documents,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionInput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionState,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.graph_builder import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.graph_builder import (
expanded_retrieval_graph_builder,
)
from onyx.agents.agent_search.shared_graph_utils.utils import get_test_config

View File

@ -5,10 +5,10 @@ from langchain_core.messages import HumanMessage
from langchain_core.messages import merge_message_runs
from langchain_core.runnables.config import RunnableConfig
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionState,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
QACheckUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig

View File

@ -1,7 +1,7 @@
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionState,
)
from onyx.agents.agent_search.shared_graph_utils.models import (

View File

@ -6,10 +6,10 @@ from langchain_core.messages import merge_message_runs
from langchain_core.runnables.config import RunnableConfig
from langgraph.types import StreamWriter
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionState,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
QAGenerationUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig

View File

@ -1,7 +1,7 @@
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
RetrievalIngestionUpdate,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalOutput,
)
from onyx.agents.agent_search.shared_graph_utils.models import AgentChunkStats

View File

@ -4,7 +4,7 @@ from typing import Annotated
from pydantic import BaseModel
from onyx.agents.agent_search.core_state import SubgraphCoreState
from onyx.agents.agent_search.deep_search_a.main.states import LoggerUpdate
from onyx.agents.agent_search.deep_search.main.states import LoggerUpdate
from onyx.agents.agent_search.shared_graph_utils.models import AgentChunkStats
from onyx.agents.agent_search.shared_graph_utils.models import QueryResult
from onyx.agents.agent_search.shared_graph_utils.models import (

View File

@ -3,13 +3,13 @@ from datetime import datetime
from langgraph.types import Send
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionInput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.states import (
SearchSQState,
)
from onyx.agents.agent_search.shared_graph_utils.utils import make_question_id

View File

@ -2,22 +2,22 @@ from langgraph.graph import END
from langgraph.graph import START
from langgraph.graph import StateGraph
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.nodes.generate_initial_answer import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.nodes.generate_initial_answer import (
generate_initial_answer,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.nodes.validate_initial_answer import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.nodes.validate_initial_answer import (
validate_initial_answer,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.states import (
SearchSQInput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.states import (
SearchSQState,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_sub_answers.graph_builder import (
from onyx.agents.agent_search.deep_search.initial.generate_sub_answers.graph_builder import (
generate_sub_answers_graph_builder,
)
from onyx.agents.agent_search.deep_search_a.initial.retrieve_orig_question_docs.graph_builder import (
from onyx.agents.agent_search.deep_search.initial.retrieve_orig_question_docs.graph_builder import (
retrieve_orig_question_docs_graph_builder,
)
from onyx.utils.logger import setup_logger

View File

@ -1,9 +1,9 @@
from datetime import datetime
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.states import (
SearchSQState,
)
from onyx.agents.agent_search.deep_search_a.main.states import LoggerUpdate
from onyx.agents.agent_search.deep_search.main.states import LoggerUpdate
def consolidate_retrieved_documents(

View File

@ -7,19 +7,19 @@ from langchain_core.messages import merge_content
from langchain_core.runnables import RunnableConfig
from langgraph.types import StreamWriter
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.states import (
SearchSQState,
)
from onyx.agents.agent_search.deep_search_a.main.models import AgentBaseMetrics
from onyx.agents.agent_search.deep_search_a.main.operations import (
from onyx.agents.agent_search.deep_search.main.models import AgentBaseMetrics
from onyx.agents.agent_search.deep_search.main.operations import (
calculate_initial_agent_stats,
)
from onyx.agents.agent_search.deep_search_a.main.operations import get_query_info
from onyx.agents.agent_search.deep_search_a.main.operations import logger
from onyx.agents.agent_search.deep_search_a.main.operations import (
from onyx.agents.agent_search.deep_search.main.operations import get_query_info
from onyx.agents.agent_search.deep_search.main.operations import logger
from onyx.agents.agent_search.deep_search.main.operations import (
remove_document_citations,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
InitialAnswerUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -63,9 +63,9 @@ def generate_initial_answer(
) -> InitialAnswerUpdate:
node_start_time = datetime.now()
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_a_config.search_request.query
prompt_enrichment_components = get_prompt_enrichment_components(agent_a_config)
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_search_config.search_request.query
prompt_enrichment_components = get_prompt_enrichment_components(agent_search_config)
sub_questions_cited_documents = state.cited_documents
all_original_question_documents = state.all_original_question_documents
@ -91,7 +91,7 @@ def generate_initial_answer(
# Use the query info from the base document retrieval
query_info = get_query_info(state.original_question_retrieval_results)
if agent_a_config.search_tool is None:
if agent_search_config.search_tool is None:
raise ValueError("search_tool must be provided for agentic search")
relevance_list = relevance_from_docs(relevant_docs)
@ -101,7 +101,7 @@ def generate_initial_answer(
final_context_sections=relevant_docs,
search_query_info=query_info,
get_section_relevance=lambda: relevance_list,
search_tool=agent_a_config.search_tool,
search_tool=agent_search_config.search_tool,
):
write_custom_event(
"tool_response",
@ -165,7 +165,7 @@ def generate_initial_answer(
sub_question_answer_str = ""
base_prompt = INITIAL_RAG_PROMPT_NO_SUB_QUESTIONS
model = agent_a_config.fast_llm
model = agent_search_config.fast_llm
doc_context = format_docs(relevant_docs)
doc_context = trim_prompt_piece(

View File

@ -1,9 +1,9 @@
from datetime import datetime
from onyx.agents.agent_search.deep_search_a.initial.retrieve_orig_question_docs.states import (
from onyx.agents.agent_search.deep_search.initial.retrieve_orig_question_docs.states import (
BaseRawSearchOutput,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
ExpandedRetrievalUpdate,
)
from onyx.agents.agent_search.shared_graph_utils.models import AgentChunkStats

View File

@ -1,10 +1,10 @@
from datetime import datetime
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.states import (
SearchSQState,
)
from onyx.agents.agent_search.deep_search_a.main.operations import logger
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.operations import logger
from onyx.agents.agent_search.deep_search.main.states import (
InitialAnswerQualityUpdate,
)
from onyx.agents.agent_search.shared_graph_utils.utils import (

View File

@ -3,23 +3,23 @@ from typing import Annotated
from typing import TypedDict
from onyx.agents.agent_search.core_state import CoreState
from onyx.agents.agent_search.deep_search_a.main.states import BaseDecompUpdate
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import BaseDecompUpdate
from onyx.agents.agent_search.deep_search.main.states import (
DecompAnswersUpdate,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
ExpandedRetrievalUpdate,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
ExploratorySearchUpdate,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
InitialAnswerQualityUpdate,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
InitialAnswerUpdate,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.models import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.models import (
ExpandedRetrievalResult,
)

View File

@ -3,13 +3,13 @@ from datetime import datetime
from langgraph.types import Send
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionInput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.states import (
SearchSQState,
)
from onyx.agents.agent_search.shared_graph_utils.utils import make_question_id

View File

@ -2,22 +2,22 @@ from langgraph.graph import END
from langgraph.graph import START
from langgraph.graph import StateGraph
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.graph_builder import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.graph_builder import (
answer_query_graph_builder,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_sub_answers.edges import (
from onyx.agents.agent_search.deep_search.initial.generate_sub_answers.edges import (
parallelize_initial_sub_question_answering,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_sub_answers.nodes.decompose_orig_question import (
from onyx.agents.agent_search.deep_search.initial.generate_sub_answers.nodes.decompose_orig_question import (
decompose_orig_question,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_sub_answers.nodes.format_initial_sub_answers import (
from onyx.agents.agent_search.deep_search.initial.generate_sub_answers.nodes.format_initial_sub_answers import (
format_initial_sub_answers,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_sub_answers.states import (
from onyx.agents.agent_search.deep_search.initial.generate_sub_answers.states import (
SQInput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_sub_answers.states import (
from onyx.agents.agent_search.deep_search.initial.generate_sub_answers.states import (
SQState,
)
from onyx.utils.logger import setup_logger

View File

@ -6,16 +6,16 @@ from langchain_core.messages import merge_content
from langchain_core.runnables import RunnableConfig
from langgraph.types import StreamWriter
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.states import (
SearchSQState,
)
from onyx.agents.agent_search.deep_search_a.main.models import (
from onyx.agents.agent_search.deep_search.main.models import (
AgentRefinedMetrics,
)
from onyx.agents.agent_search.deep_search_a.main.operations import (
from onyx.agents.agent_search.deep_search.main.operations import (
dispatch_subquestion,
)
from onyx.agents.agent_search.deep_search_a.main.states import BaseDecompUpdate
from onyx.agents.agent_search.deep_search.main.states import BaseDecompUpdate
from onyx.agents.agent_search.models import AgentSearchConfig
from onyx.agents.agent_search.shared_graph_utils.agent_prompt_ops import (
build_history_prompt,
@ -42,17 +42,17 @@ def decompose_orig_question(
) -> BaseDecompUpdate:
node_start_time = datetime.now()
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_a_config.search_request.query
chat_session_id = agent_a_config.chat_session_id
primary_message_id = agent_a_config.message_id
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_search_config.search_request.query
chat_session_id = agent_search_config.chat_session_id
primary_message_id = agent_search_config.message_id
perform_initial_search_decomposition = (
agent_a_config.perform_initial_search_decomposition
agent_search_config.perform_initial_search_decomposition
)
# Get the rewritten queries in a defined format
model = agent_a_config.fast_llm
model = agent_search_config.fast_llm
history = build_history_prompt(agent_a_config, question)
history = build_history_prompt(agent_search_config, question)
# Use the initial search results to inform the decomposition
sample_doc_str = state.sample_doc_str if hasattr(state, "sample_doc_str") else ""

View File

@ -1,9 +1,9 @@
from datetime import datetime
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
DecompAnswersUpdate,
)
from onyx.agents.agent_search.shared_graph_utils.operators import (

View File

@ -1,11 +1,11 @@
from typing import TypedDict
from onyx.agents.agent_search.core_state import CoreState
from onyx.agents.agent_search.deep_search_a.main.states import BaseDecompUpdate
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import BaseDecompUpdate
from onyx.agents.agent_search.deep_search.main.states import (
DecompAnswersUpdate,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
InitialAnswerUpdate,
)

View File

@ -2,22 +2,22 @@ from langgraph.graph import END
from langgraph.graph import START
from langgraph.graph import StateGraph
from onyx.agents.agent_search.deep_search_a.initial.retrieve_orig_question_docs.nodes.format_orig_question_search_input import (
from onyx.agents.agent_search.deep_search.initial.retrieve_orig_question_docs.nodes.format_orig_question_search_input import (
format_orig_question_search_input,
)
from onyx.agents.agent_search.deep_search_a.initial.retrieve_orig_question_docs.nodes.format_orig_question_search_output import (
from onyx.agents.agent_search.deep_search.initial.retrieve_orig_question_docs.nodes.format_orig_question_search_output import (
format_orig_question_search_output,
)
from onyx.agents.agent_search.deep_search_a.initial.retrieve_orig_question_docs.states import (
from onyx.agents.agent_search.deep_search.initial.retrieve_orig_question_docs.states import (
BaseRawSearchInput,
)
from onyx.agents.agent_search.deep_search_a.initial.retrieve_orig_question_docs.states import (
from onyx.agents.agent_search.deep_search.initial.retrieve_orig_question_docs.states import (
BaseRawSearchOutput,
)
from onyx.agents.agent_search.deep_search_a.initial.retrieve_orig_question_docs.states import (
from onyx.agents.agent_search.deep_search.initial.retrieve_orig_question_docs.states import (
BaseRawSearchState,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.graph_builder import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.graph_builder import (
expanded_retrieval_graph_builder,
)

View File

@ -3,7 +3,7 @@ from typing import cast
from langchain_core.runnables.config import RunnableConfig
from onyx.agents.agent_search.core_state import CoreState
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalInput,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -16,9 +16,9 @@ def format_orig_question_search_input(
state: CoreState, config: RunnableConfig
) -> ExpandedRetrievalInput:
logger.debug("generate_raw_search_data")
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
return ExpandedRetrievalInput(
question=agent_a_config.search_request.query,
question=agent_search_config.search_request.query,
base_search=True,
sub_question_id=None, # This graph is always and only used for the original question
log_messages=[],

View File

@ -1,5 +1,5 @@
from onyx.agents.agent_search.deep_search_a.main.states import ExpandedRetrievalUpdate
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.main.states import ExpandedRetrievalUpdate
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalOutput,
)
from onyx.agents.agent_search.shared_graph_utils.models import AgentChunkStats

View File

@ -1,12 +1,12 @@
from pydantic import BaseModel
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
ExpandedRetrievalUpdate,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.models import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.models import (
ExpandedRetrievalResult,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalInput,
)

View File

@ -6,14 +6,14 @@ from typing import Literal
from langchain_core.runnables import RunnableConfig
from langgraph.types import Send
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionInput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.deep_search.main.states import (
RequireRefinedAnswerUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig

View File

@ -2,45 +2,45 @@ from langgraph.graph import END
from langgraph.graph import START
from langgraph.graph import StateGraph
from onyx.agents.agent_search.deep_search_a.initial.generate_initial_answer.graph_builder import (
from onyx.agents.agent_search.deep_search.initial.generate_initial_answer.graph_builder import (
generate_initial_answer_graph_builder,
)
from onyx.agents.agent_search.deep_search_a.main.edges import (
from onyx.agents.agent_search.deep_search.main.edges import (
continue_to_refined_answer_or_end,
)
from onyx.agents.agent_search.deep_search_a.main.edges import (
from onyx.agents.agent_search.deep_search.main.edges import (
parallelize_refined_sub_question_answering,
)
from onyx.agents.agent_search.deep_search_a.main.edges import (
from onyx.agents.agent_search.deep_search.main.edges import (
route_initial_tool_choice,
)
from onyx.agents.agent_search.deep_search_a.main.nodes.compare_answers import (
from onyx.agents.agent_search.deep_search.main.nodes.compare_answers import (
compare_answers,
)
from onyx.agents.agent_search.deep_search_a.main.nodes.create_refined_sub_questions import (
from onyx.agents.agent_search.deep_search.main.nodes.create_refined_sub_questions import (
create_refined_sub_questions,
)
from onyx.agents.agent_search.deep_search_a.main.nodes.decide_refinement_need import (
from onyx.agents.agent_search.deep_search.main.nodes.decide_refinement_need import (
decide_refinement_need,
)
from onyx.agents.agent_search.deep_search_a.main.nodes.extract_entities_terms import (
from onyx.agents.agent_search.deep_search.main.nodes.extract_entities_terms import (
extract_entities_terms,
)
from onyx.agents.agent_search.deep_search_a.main.nodes.generate_refined_answer import (
from onyx.agents.agent_search.deep_search.main.nodes.generate_refined_answer import (
generate_refined_answer,
)
from onyx.agents.agent_search.deep_search_a.main.nodes.ingest_refined_answers import (
from onyx.agents.agent_search.deep_search.main.nodes.ingest_refined_answers import (
ingest_refined_answers,
)
from onyx.agents.agent_search.deep_search_a.main.nodes.persist_agent_results import (
from onyx.agents.agent_search.deep_search.main.nodes.persist_agent_results import (
persist_agent_results,
)
from onyx.agents.agent_search.deep_search_a.main.nodes.start_agent_search import (
from onyx.agents.agent_search.deep_search.main.nodes.start_agent_search import (
start_agent_search,
)
from onyx.agents.agent_search.deep_search_a.main.states import MainInput
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search_a.refinement.consolidate_sub_answers.graph_builder import (
from onyx.agents.agent_search.deep_search.main.states import MainInput
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.deep_search.refinement.consolidate_sub_answers.graph_builder import (
answer_refined_query_graph_builder,
)
from onyx.agents.agent_search.orchestration.nodes.basic_use_tool_response import (
@ -221,17 +221,17 @@ if __name__ == "__main__":
with get_session_context_manager() as db_session:
search_request = SearchRequest(query="Who created Excel?")
agent_a_config, search_tool = get_test_config(
agent_search_config, search_tool = get_test_config(
db_session, primary_llm, fast_llm, search_request
)
inputs = MainInput(
base_question=agent_a_config.search_request.query, log_messages=[]
base_question=agent_search_config.search_request.query, log_messages=[]
)
for thing in compiled_graph.stream(
input=inputs,
config={"configurable": {"config": agent_a_config}},
config={"configurable": {"config": agent_search_config}},
# stream_mode="debug",
# debug=True,
subgraphs=True,

View File

@ -5,8 +5,8 @@ from langchain_core.messages import HumanMessage
from langchain_core.runnables import RunnableConfig
from langgraph.types import StreamWriter
from onyx.agents.agent_search.deep_search_a.main.states import AnswerComparison
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search.main.states import AnswerComparison
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.models import AgentSearchConfig
from onyx.agents.agent_search.shared_graph_utils.prompts import ANSWER_COMPARISON_PROMPT
from onyx.agents.agent_search.shared_graph_utils.utils import (
@ -21,8 +21,8 @@ def compare_answers(
) -> AnswerComparison:
node_start_time = datetime.now()
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_a_config.search_request.query
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_search_config.search_request.query
initial_answer = state.initial_answer
refined_answer = state.refined_answer
@ -33,7 +33,7 @@ def compare_answers(
msg = [HumanMessage(content=compare_answers_prompt)]
# Get the rewritten queries in a defined format
model = agent_a_config.fast_llm
model = agent_search_config.fast_llm
# no need to stream this
resp = model.invoke(msg)

View File

@ -6,16 +6,16 @@ from langchain_core.messages import merge_content
from langchain_core.runnables import RunnableConfig
from langgraph.types import StreamWriter
from onyx.agents.agent_search.deep_search_a.main.models import (
from onyx.agents.agent_search.deep_search.main.models import (
FollowUpSubQuestion,
)
from onyx.agents.agent_search.deep_search_a.main.operations import (
from onyx.agents.agent_search.deep_search.main.operations import (
dispatch_subquestion,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
FollowUpSubQuestionsUpdate,
)
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.models import AgentSearchConfig
from onyx.agents.agent_search.shared_graph_utils.agent_prompt_ops import (
build_history_prompt,
@ -39,13 +39,13 @@ def create_refined_sub_questions(
state: MainState, config: RunnableConfig, writer: StreamWriter = lambda _: None
) -> FollowUpSubQuestionsUpdate:
""" """
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
write_custom_event(
"start_refined_answer_creation",
ToolCallKickoff(
tool_name="agent_search_1",
tool_args={
"query": agent_a_config.search_request.query,
"query": agent_search_config.search_request.query,
"answer": state.initial_answer,
},
),
@ -56,9 +56,9 @@ def create_refined_sub_questions(
agent_refined_start_time = datetime.now()
question = agent_a_config.search_request.query
question = agent_search_config.search_request.query
base_answer = state.initial_answer
history = build_history_prompt(agent_a_config, question)
history = build_history_prompt(agent_search_config, question)
# get the entity term extraction dict and properly format it
entity_retlation_term_extractions = state.entity_relation_term_extractions
@ -90,7 +90,7 @@ def create_refined_sub_questions(
]
# Grader
model = agent_a_config.fast_llm
model = agent_search_config.fast_llm
streamed_tokens = dispatch_separated(
model.stream(msg), dispatch_subquestion(1, writer)

View File

@ -3,8 +3,8 @@ from typing import cast
from langchain_core.runnables import RunnableConfig
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.deep_search.main.states import (
RequireRefinedAnswerUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -18,7 +18,7 @@ def decide_refinement_need(
) -> RequireRefinedAnswerUpdate:
node_start_time = datetime.now()
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
decision = True # TODO: just for current testing purposes
@ -31,7 +31,7 @@ def decide_refinement_need(
)
]
if agent_a_config.allow_refinement:
if agent_search_config.allow_refinement:
return RequireRefinedAnswerUpdate(
require_refined_answer_eval=decision,
log_messages=log_messages,

View File

@ -6,11 +6,11 @@ from typing import cast
from langchain_core.messages import HumanMessage
from langchain_core.runnables import RunnableConfig
from onyx.agents.agent_search.deep_search_a.main.operations import logger
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.operations import logger
from onyx.agents.agent_search.deep_search.main.states import (
EntityTermExtractionUpdate,
)
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.models import AgentSearchConfig
from onyx.agents.agent_search.shared_graph_utils.agent_prompt_ops import (
trim_prompt_piece,
@ -33,8 +33,8 @@ def extract_entities_terms(
) -> EntityTermExtractionUpdate:
node_start_time = datetime.now()
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
if not agent_a_config.allow_refinement:
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
if not agent_search_config.allow_refinement:
return EntityTermExtractionUpdate(
entity_relation_term_extractions=EntityRelationshipTermExtraction(
entities=[],
@ -52,21 +52,21 @@ def extract_entities_terms(
)
# first four lines duplicates from generate_initial_answer
question = agent_a_config.search_request.query
question = agent_search_config.search_request.query
initial_search_docs = state.exploratory_search_results[:15]
# start with the entity/term/extraction
doc_context = format_docs(initial_search_docs)
doc_context = trim_prompt_piece(
agent_a_config.fast_llm.config, doc_context, ENTITY_TERM_PROMPT + question
agent_search_config.fast_llm.config, doc_context, ENTITY_TERM_PROMPT + question
)
msg = [
HumanMessage(
content=ENTITY_TERM_PROMPT.format(question=question, context=doc_context),
)
]
fast_llm = agent_a_config.fast_llm
fast_llm = agent_search_config.fast_llm
# Grader
llm_response = fast_llm.invoke(
prompt=msg,

View File

@ -7,16 +7,16 @@ from langchain_core.messages import merge_content
from langchain_core.runnables import RunnableConfig
from langgraph.types import StreamWriter
from onyx.agents.agent_search.deep_search_a.main.models import (
from onyx.agents.agent_search.deep_search.main.models import (
AgentRefinedMetrics,
)
from onyx.agents.agent_search.deep_search_a.main.operations import get_query_info
from onyx.agents.agent_search.deep_search_a.main.operations import logger
from onyx.agents.agent_search.deep_search_a.main.operations import (
from onyx.agents.agent_search.deep_search.main.operations import get_query_info
from onyx.agents.agent_search.deep_search.main.operations import logger
from onyx.agents.agent_search.deep_search.main.operations import (
remove_document_citations,
)
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.deep_search.main.states import (
RefinedAnswerUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -61,9 +61,9 @@ def generate_refined_answer(
) -> RefinedAnswerUpdate:
node_start_time = datetime.now()
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_a_config.search_request.query
prompt_enrichment_components = get_prompt_enrichment_components(agent_a_config)
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_search_config.search_request.query
prompt_enrichment_components = get_prompt_enrichment_components(agent_search_config)
persona_contextualized_prompt = (
prompt_enrichment_components.persona_prompts.contextualized_prompt
@ -94,7 +94,7 @@ def generate_refined_answer(
)
query_info = get_query_info(state.original_question_retrieval_results)
if agent_a_config.search_tool is None:
if agent_search_config.search_tool is None:
raise ValueError("search_tool must be provided for agentic search")
# stream refined answer docs
relevance_list = relevance_from_docs(relevant_docs)
@ -104,7 +104,7 @@ def generate_refined_answer(
final_context_sections=relevant_docs,
search_query_info=query_info,
get_section_relevance=lambda: relevance_list,
search_tool=agent_a_config.search_tool,
search_tool=agent_search_config.search_tool,
):
write_custom_event(
"tool_response",
@ -191,7 +191,7 @@ def generate_refined_answer(
else:
base_prompt = REVISED_RAG_PROMPT_NO_SUB_QUESTIONS
model = agent_a_config.fast_llm
model = agent_search_config.fast_llm
relevant_docs_str = format_docs(relevant_docs)
relevant_docs_str = trim_prompt_piece(
model.config,

View File

@ -1,9 +1,9 @@
from datetime import datetime
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
DecompAnswersUpdate,
)
from onyx.agents.agent_search.shared_graph_utils.operators import (

View File

@ -3,13 +3,13 @@ from typing import cast
from langchain_core.runnables import RunnableConfig
from onyx.agents.agent_search.deep_search_a.main.models import (
from onyx.agents.agent_search.deep_search.main.models import (
AgentAdditionalMetrics,
)
from onyx.agents.agent_search.deep_search_a.main.models import AgentTimings
from onyx.agents.agent_search.deep_search_a.main.operations import logger
from onyx.agents.agent_search.deep_search_a.main.states import MainOutput
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search.main.models import AgentTimings
from onyx.agents.agent_search.deep_search.main.operations import logger
from onyx.agents.agent_search.deep_search.main.states import MainOutput
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.models import AgentSearchConfig
from onyx.agents.agent_search.shared_graph_utils.models import CombinedAgentMetrics
from onyx.agents.agent_search.shared_graph_utils.utils import (
@ -59,21 +59,21 @@ def persist_agent_results(state: MainState, config: RunnableConfig) -> MainOutpu
)
persona_id = None
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
if agent_a_config.search_request.persona:
persona_id = agent_a_config.search_request.persona.id
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
if agent_search_config.search_request.persona:
persona_id = agent_search_config.search_request.persona.id
user_id = None
if agent_a_config.search_tool is not None:
user = agent_a_config.search_tool.user
if agent_search_config.search_tool is not None:
user = agent_search_config.search_tool.user
if user:
user_id = user.id
# log the agent metrics
if agent_a_config.db_session is not None:
if agent_search_config.db_session is not None:
if agent_base_duration is not None:
log_agent_metrics(
db_session=agent_a_config.db_session,
db_session=agent_search_config.db_session,
user_id=user_id,
persona_id=persona_id,
agent_type=agent_type,
@ -81,11 +81,11 @@ def persist_agent_results(state: MainState, config: RunnableConfig) -> MainOutpu
agent_metrics=combined_agent_metrics,
)
if agent_a_config.use_agentic_persistence:
if agent_search_config.use_agentic_persistence:
# Persist the sub-answer in the database
db_session = agent_a_config.db_session
chat_session_id = agent_a_config.chat_session_id
primary_message_id = agent_a_config.message_id
db_session = agent_search_config.db_session
chat_session_id = agent_search_config.chat_session_id
primary_message_id = agent_search_config.message_id
sub_question_answer_results = state.sub_question_results
log_agent_sub_question_results(

View File

@ -3,10 +3,10 @@ from typing import cast
from langchain_core.runnables import RunnableConfig
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
ExploratorySearchUpdate,
)
from onyx.agents.agent_search.deep_search_a.main.states import MainState
from onyx.agents.agent_search.deep_search.main.states import MainState
from onyx.agents.agent_search.models import AgentSearchConfig
from onyx.agents.agent_search.shared_graph_utils.agent_prompt_ops import (
build_history_prompt,
@ -24,13 +24,13 @@ def start_agent_search(
) -> ExploratorySearchUpdate:
node_start_time = datetime.now()
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_a_config.search_request.query
chat_session_id = agent_a_config.chat_session_id
primary_message_id = agent_a_config.message_id
agent_a_config.fast_llm
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = agent_search_config.search_request.query
chat_session_id = agent_search_config.chat_session_id
primary_message_id = agent_search_config.message_id
agent_search_config.fast_llm
history = build_history_prompt(agent_a_config, question)
history = build_history_prompt(agent_search_config, question)
if chat_session_id is None or primary_message_id is None:
raise ValueError(
@ -39,7 +39,7 @@ def start_agent_search(
# Initial search to inform decomposition. Just get top 3 fits
search_tool = agent_a_config.search_tool
search_tool = agent_search_config.search_tool
if search_tool is None:
raise ValueError("search_tool must be provided for agentic search")
retrieved_docs: list[InferenceSection] = retrieve_search_docs(search_tool, question)

View File

@ -6,14 +6,14 @@ from typing import TypedDict
from pydantic import BaseModel
from onyx.agents.agent_search.core_state import CoreState
from onyx.agents.agent_search.deep_search_a.main.models import AgentBaseMetrics
from onyx.agents.agent_search.deep_search_a.main.models import (
from onyx.agents.agent_search.deep_search.main.models import AgentBaseMetrics
from onyx.agents.agent_search.deep_search.main.models import (
AgentRefinedMetrics,
)
from onyx.agents.agent_search.deep_search_a.main.models import (
from onyx.agents.agent_search.deep_search.main.models import (
FollowUpSubQuestion,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.models import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.models import (
ExpandedRetrievalResult,
)
from onyx.agents.agent_search.orchestration.states import ToolCallUpdate

View File

@ -3,10 +3,10 @@ from datetime import datetime
from langgraph.types import Send
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionInput,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalInput,
)
from onyx.utils.logger import setup_logger

View File

@ -2,31 +2,31 @@ from langgraph.graph import END
from langgraph.graph import START
from langgraph.graph import StateGraph
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.nodes.check_sub_answer import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.nodes.check_sub_answer import (
check_sub_answer,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.nodes.format_sub_answer import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.nodes.format_sub_answer import (
format_sub_answer,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.nodes.generate_sub_answer import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.nodes.generate_sub_answer import (
generate_sub_answer,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.nodes.ingest_retrieved_documents import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.nodes.ingest_retrieved_documents import (
ingest_retrieved_documents,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionInput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionOutput,
)
from onyx.agents.agent_search.deep_search_a.initial.generate_individual_sub_answer.states import (
from onyx.agents.agent_search.deep_search.initial.generate_individual_sub_answer.states import (
AnswerQuestionState,
)
from onyx.agents.agent_search.deep_search_a.refinement.consolidate_sub_answers.edges import (
from onyx.agents.agent_search.deep_search.refinement.consolidate_sub_answers.edges import (
send_to_expanded_refined_retrieval,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.graph_builder import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.graph_builder import (
expanded_retrieval_graph_builder,
)
from onyx.utils.logger import setup_logger

View File

@ -4,10 +4,10 @@ from typing import cast
from langchain_core.runnables.config import RunnableConfig
from langgraph.types import Send
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalState,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
RetrievalInput,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -16,8 +16,10 @@ from onyx.agents.agent_search.models import AgentSearchConfig
def parallel_retrieval_edge(
state: ExpandedRetrievalState, config: RunnableConfig
) -> list[Send | Hashable]:
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = state.question if state.question else agent_a_config.search_request.query
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = (
state.question if state.question else agent_search_config.search_request.query
)
query_expansions = state.expanded_queries + [question]

View File

@ -2,37 +2,37 @@ from langgraph.graph import END
from langgraph.graph import START
from langgraph.graph import StateGraph
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.edges import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.edges import (
parallel_retrieval_edge,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.nodes.expand_queries import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.nodes.expand_queries import (
expand_queries,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.nodes.format_queries import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.nodes.format_queries import (
format_queries,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.nodes.format_results import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.nodes.format_results import (
format_results,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.nodes.kickoff_verification import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.nodes.kickoff_verification import (
kickoff_verification,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.nodes.rerank_documents import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.nodes.rerank_documents import (
rerank_documents,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.nodes.retrieve_documents import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.nodes.retrieve_documents import (
retrieve_documents,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.nodes.verify_documents import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.nodes.verify_documents import (
verify_documents,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalInput,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalOutput,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalState,
)
from onyx.agents.agent_search.shared_graph_utils.utils import get_test_config
@ -129,7 +129,7 @@ if __name__ == "__main__":
)
with get_session_context_manager() as db_session:
agent_a_config, search_tool = get_test_config(
agent_search_config, search_tool = get_test_config(
db_session, primary_llm, fast_llm, search_request
)
inputs = ExpandedRetrievalInput(
@ -140,7 +140,7 @@ if __name__ == "__main__":
)
for thing in compiled_graph.stream(
input=inputs,
config={"configurable": {"config": agent_a_config}},
config={"configurable": {"config": agent_search_config}},
# debug=True,
subgraphs=True,
):

View File

@ -6,13 +6,13 @@ from langchain_core.messages import merge_message_runs
from langchain_core.runnables.config import RunnableConfig
from langgraph.types import StreamWriter
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.operations import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.operations import (
dispatch_subquery,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalInput,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
QueryExpansionUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -34,12 +34,12 @@ def expand_queries(
# Sometimes we want to expand the original question, sometimes we want to expand a sub-question.
# When we are running this node on the original question, no question is explictly passed in.
# Instead, we use the original question from the search request.
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
node_start_time = datetime.now()
question = state.question
llm = agent_a_config.fast_llm
chat_session_id = agent_a_config.chat_session_id
llm = agent_search_config.fast_llm
chat_session_id = agent_search_config.chat_session_id
sub_question_id = state.sub_question_id
if sub_question_id is None:
level, question_nr = 0, 0

View File

@ -1,9 +1,9 @@
from langchain_core.runnables.config import RunnableConfig
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalState,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
QueryExpansionUpdate,
)

View File

@ -3,17 +3,17 @@ from typing import cast
from langchain_core.runnables.config import RunnableConfig
from langgraph.types import StreamWriter
from onyx.agents.agent_search.deep_search_a.main.operations import get_query_info
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.models import (
from onyx.agents.agent_search.deep_search.main.operations import get_query_info
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.models import (
ExpandedRetrievalResult,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.operations import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.operations import (
calculate_sub_question_retrieval_stats,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalState,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -33,7 +33,7 @@ def format_results(
level, question_nr = parse_question_id(state.sub_question_id or "0_0")
query_info = get_query_info(state.expanded_retrieval_results)
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
# main question docs will be sent later after aggregation and deduping with sub-question docs
reranked_documents = state.reranked_documents
@ -44,7 +44,7 @@ def format_results(
# the top 3 for that one. We may want to revisit this.
reranked_documents = state.expanded_retrieval_results[-1].search_results[:3]
if agent_a_config.search_tool is None:
if agent_search_config.search_tool is None:
raise ValueError("search_tool must be provided for agentic search")
relevance_list = relevance_from_docs(reranked_documents)
@ -54,7 +54,7 @@ def format_results(
final_context_sections=reranked_documents,
search_query_info=query_info,
get_section_relevance=lambda: relevance_list,
search_tool=agent_a_config.search_tool,
search_tool=agent_search_config.search_tool,
):
write_custom_event(
"tool_response",

View File

@ -4,10 +4,10 @@ from langchain_core.runnables.config import RunnableConfig
from langgraph.types import Command
from langgraph.types import Send
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
DocVerificationInput,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalState,
)

View File

@ -3,13 +3,13 @@ from typing import cast
from langchain_core.runnables.config import RunnableConfig
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.operations import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.operations import (
logger,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
DocRerankingUpdate,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
ExpandedRetrievalState,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -36,9 +36,11 @@ def rerank_documents(
# Rerank post retrieval and verification. First, create a search query
# then create the list of reranked sections
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = state.question if state.question else agent_a_config.search_request.query
if agent_a_config.search_tool is None:
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
question = (
state.question if state.question else agent_search_config.search_request.query
)
if agent_search_config.search_tool is None:
raise ValueError("search_tool must be provided for agentic search")
with get_session_context_manager() as db_session:
# we ignore some of the user specified fields since this search is
@ -47,13 +49,13 @@ def rerank_documents(
# (to not make an unnecessary db call).
search_request = SearchRequest(
query=question,
persona=agent_a_config.search_request.persona,
rerank_settings=agent_a_config.search_request.rerank_settings,
persona=agent_search_config.search_request.persona,
rerank_settings=agent_search_config.search_request.rerank_settings,
)
_search_query = retrieval_preprocessing(
search_request=search_request,
user=agent_a_config.search_tool.user, # bit of a hack
llm=agent_a_config.fast_llm,
user=agent_search_config.search_tool.user, # bit of a hack
llm=agent_search_config.fast_llm,
db_session=db_session,
)

View File

@ -3,13 +3,13 @@ from typing import cast
from langchain_core.runnables.config import RunnableConfig
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.operations import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.operations import (
logger,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
DocRetrievalUpdate,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
RetrievalInput,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -45,8 +45,8 @@ def retrieve_documents(
"""
node_start_time = datetime.now()
query_to_retrieve = state.query_to_retrieve
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
search_tool = agent_a_config.search_tool
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
search_tool = agent_search_config.search_tool
retrieved_docs: list[InferenceSection] = []
if not query_to_retrieve.strip():

View File

@ -3,10 +3,10 @@ from typing import cast
from langchain_core.messages import HumanMessage
from langchain_core.runnables.config import RunnableConfig
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
DocVerificationInput,
)
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.states import (
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.states import (
DocVerificationUpdate,
)
from onyx.agents.agent_search.models import AgentSearchConfig
@ -34,8 +34,8 @@ def verify_documents(
retrieved_document_to_verify = state.retrieved_document_to_verify
document_content = retrieved_document_to_verify.combined_content
agent_a_config = cast(AgentSearchConfig, config["metadata"]["config"])
fast_llm = agent_a_config.fast_llm
agent_search_config = cast(AgentSearchConfig, config["metadata"]["config"])
fast_llm = agent_search_config.fast_llm
document_content = trim_prompt_piece(
fast_llm.config, document_content, VERIFIER_PROMPT + question

View File

@ -4,8 +4,8 @@ from typing import Annotated
from pydantic import BaseModel
from onyx.agents.agent_search.core_state import SubgraphCoreState
from onyx.agents.agent_search.deep_search_a.main.states import LoggerUpdate
from onyx.agents.agent_search.deep_search_a.shared.expanded_retrieval.models import (
from onyx.agents.agent_search.deep_search.main.states import LoggerUpdate
from onyx.agents.agent_search.deep_search.shared.expanded_retrieval.models import (
ExpandedRetrievalResult,
)
from onyx.agents.agent_search.shared_graph_utils.models import QueryResult

View File

@ -10,10 +10,10 @@ from langgraph.graph.state import CompiledStateGraph
from onyx.agents.agent_search.basic.graph_builder import basic_graph_builder
from onyx.agents.agent_search.basic.states import BasicInput
from onyx.agents.agent_search.deep_search_a.main.graph_builder import (
from onyx.agents.agent_search.deep_search.main.graph_builder import (
main_graph_builder as main_graph_builder_a,
)
from onyx.agents.agent_search.deep_search_a.main.states import (
from onyx.agents.agent_search.deep_search.main.states import (
MainInput as MainInput_a,
)
from onyx.agents.agent_search.models import AgentSearchConfig

View File

@ -2,14 +2,14 @@ from typing import Literal
from pydantic import BaseModel
from onyx.agents.agent_search.deep_search_a.main.models import (
from onyx.agents.agent_search.deep_search.main.models import (
AgentAdditionalMetrics,
)
from onyx.agents.agent_search.deep_search_a.main.models import AgentBaseMetrics
from onyx.agents.agent_search.deep_search_a.main.models import (
from onyx.agents.agent_search.deep_search.main.models import AgentBaseMetrics
from onyx.agents.agent_search.deep_search.main.models import (
AgentRefinedMetrics,
)
from onyx.agents.agent_search.deep_search_a.main.models import AgentTimings
from onyx.agents.agent_search.deep_search.main.models import AgentTimings
from onyx.context.search.models import InferenceSection
from onyx.tools.models import SearchQueryInfo

View File

@ -397,7 +397,5 @@ def get_langgraph_node_log_string(
result: str | None = None,
) -> str:
duration = datetime.now() - node_start_time
if result is None:
return f"{node_start_time} -- {graph_component} - {node_name} -- Time taken: {duration}"
else:
return f"{node_start_time} -- {graph_component} - {node_name} -- Time taken: {duration} -- Result: {result}"
results_str = "" if result is None else f" -- Result: {result}"
return f"{node_start_time} -- {graph_component} - {node_name} -- Time taken: {duration}{results_str}"

View File

@ -5,10 +5,10 @@ import os
import yaml
from onyx.agents.agent_search.deep_search_a.main__graph.graph_builder import (
from onyx.agents.agent_search.deep_search.main__graph.graph_builder import (
main_graph_builder,
)
from onyx.agents.agent_search.deep_search_a.main__graph.states import MainInput
from onyx.agents.agent_search.deep_search.main__graph.states import MainInput
from onyx.agents.agent_search.shared_graph_utils.utils import get_test_config
from onyx.context.search.models import SearchRequest
from onyx.db.engine import get_session_context_manager