Add reranked_search tool#201
Conversation
…rerank their results by query relevance Signed-off-by: Jack Yu <jacyu@nvidia.com>
Greptile SummaryThis PR introduces a
Confidence Score: 3/5Not safe to merge until the missing aiq-agent dependency and the header-as-rerank-candidate issues are resolved. Two P1 defects remain: standalone installs of reranked-search will fail due to an undeclared aiq-agent dependency, and the knowledge_layer header string is incorrectly fed to the reranker as a scoreable candidate, silently degrading result quality. sources/reranker/pyproject.toml (missing dependency) and sources/knowledge_layer/src/register.py (header in rerank pool) Important Files Changed
Sequence DiagramsequenceDiagram
participant Agent
participant RerankedSearch
participant ToolA as search_tool_A
participant ToolB as search_tool_B
participant NVIDIARerank
Agent->>RerankedSearch: _reranked_search(RerankedSearchInput)
par Fan-out
RerankedSearch->>ToolA: ainvoke(input.tool_a)
ToolA-->>RerankedSearch: "result1\n\n---\n\nresult2"
and
RerankedSearch->>ToolB: ainvoke(input.tool_b)
ToolB-->>RerankedSearch: "result3\n\n---\n\nresult4"
end
Note over RerankedSearch: split each by SOURCE_DELIMITER → all_results[]
RerankedSearch->>NVIDIARerank: acompress_documents(query=overall_query, docs=all_results)
NVIDIARerank-->>RerankedSearch: reranked_docs (scored)
RerankedSearch-->>Agent: "Top k results ranked by relevance:\n..."
Reviews (3): Last reviewed commit: "address greptile review comments, remove..." | Re-trigger Greptile |
Signed-off-by: Jack Yu <jacyu@nvidia.com>
Signed-off-by: Jack Yu <jacyu@nvidia.com>
| readme = "README.md" | ||
| requires-python = ">=3.11,<3.14" | ||
| license = {text = "Apache-2.0"} | ||
| dependencies = [ | ||
| "nvidia-nat==1.5.0", | ||
| "pydantic>=2.0.0", | ||
| "langchain-core>=1.1.0", | ||
| "langchain-nvidia-ai-endpoints>=1.1.0" |
There was a problem hiding this comment.
sources/reranker/src/register.py imports from aiq_agent.common import SOURCE_DELIMITER, but aiq-agent is not listed in dependencies. This works in the uv workspace because every member can see the others, but running pip install reranked-search in any other environment will raise ModuleNotFoundError: No module named 'aiq_agent'. Add the internal package as a dependency:
dependencies = [
"aiq-agent",
"nvidia-nat==1.5.0",
"pydantic>=2.0.0",
"langchain-core>=1.1.0",
"langchain-nvidia-ai-endpoints>=1.1.0"
]
changes
added reranked_search as a new source package
air_agent.common.SOURCE_DELIMITERto separate result strings.small changes to other built-in tools in
sources/air_agent.common.SOURCE_DELIMITERto separate result strings.updated dependency-related files and setup script.