digraph {
	graph [compound=false concentrate=false rankdir=TB ranksep=0.4]
	router [label=router shape=box style=rounded]
	input__query [label="input: query" shape=oval style=dashed]
	input__query -> router
	rewrite_query_for_lancedb [label=rewrite_query_for_lancedb shape=box style=rounded]
	search_lancedb [label=search_lancedb shape=box style=rounded]
	remove_irrelevant_lancedb_results [label=remove_irrelevant_lancedb_results shape=box style=rounded]
	extract_keywords_for_exa_search [label=extract_keywords_for_exa_search shape=box style=rounded]
	search_exa [label=search_exa shape=box style=rounded]
	ask_assistant [label=ask_assistant shape=box style=rounded]
	terminate [label=terminate shape=box style=rounded]
	router -> terminate [label="route=terminate" style=dashed]
	router -> ask_assistant [label="route=assistant" style=dashed]
	router -> extract_keywords_for_exa_search [label="route=web_search" style=dashed]
	router -> rewrite_query_for_lancedb [style=solid]
	rewrite_query_for_lancedb -> search_lancedb [style=solid]
	search_lancedb -> remove_irrelevant_lancedb_results [style=solid]
	remove_irrelevant_lancedb_results -> extract_keywords_for_exa_search [label="len(lancedb_results) < docs_limit" style=dashed]
	remove_irrelevant_lancedb_results -> ask_assistant [style=solid]
	extract_keywords_for_exa_search -> search_exa [style=solid]
	search_exa -> ask_assistant [style=solid]
	ask_assistant -> router [style=solid]
}
