feat: add multi-document support to retrieval and client API - #216

Closed
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support
Closed

feat: add multi-document support to retrieval and client API#216
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support

Conversation

@Shreyansh1729

Copy link
Copy Markdown
Contributor

Summary

Added the ability to query multiple documents simultaneously, addressing Issue #187. This allows for cross-document data retrieval and combined reasoning in RAG applications.

Changes Made

  • retrieve.py: Refactored get_document, get_document_structure, and get_page_content to accept a single string or a list of strings for doc_id.
  • client.py: Updated PageIndexClient methods to support Union[str, List[str]] for batch querying.
  • tests: Added tests/test_multi_doc.py with 5 tests verifying batch metadata, structure, and content retrieval, along with error handling and backward compatibility.

Verification

Run tests: export PYTHONPATH=. && pytest tests/test_multi_doc.py
Result: 5 passed.

Closes#187

Your Name added 3 commits March 28, 2026 00:16
- Use .get() with safe defaults for all LLM response dict accesses
- Optimize extract_toc_content retry loop to grow chat_history
incrementally instead of rebuilding with full accumulated response
- Optimize toc_transformer retry loop to use chat_history instead of
re-embedding the entire raw TOC and incomplete JSON in each prompt
- Return best-effort results on max retries instead of raising
- Add 14 mock-based tests covering all fix scenarios
ClosesVectifyAI#163
- Restore explicit Exception on max retries instead of silent warning
- Move truncation logic before the retry loop so it only runs once
on the initial incomplete response, not on every iteration
- Add explicit None guard for physical_index before passing to
convert_physical_index_to_int to prevent potential TypeError
- Update test to expect Exception on max retries
- Update retrieve.py functions to support Union[str, List[str]] for doc_id
- If a list of IDs is provided, return a JSON object mapping IDs to results
- Update PageIndexClient methods to support batch querying
- Add 5 comprehensive unit tests for multi-doc support
- Maintain 100% backward compatibility for single-doc requests

@claudeclaudeBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@BukeLy

Copy link
Copy Markdown
Member

Thanks for the contribution. Closing this PR because its SDK/chat/retrieval approach has been superseded by the supported PageIndexClient local/cloud architecture and later agent-tool and multi-document implementations. The branch is therefore no longer suitable to merge as-is.

@BukeLyBukeLy closed this Aug 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple Document Chat

2 participants

@Shreyansh1729@BukeLy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat: add multi-document support to retrieval and client API - #216

Closed
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support
Closed

feat: add multi-document support to retrieval and client API#216
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support

Conversation

@Shreyansh1729

Copy link
Copy Markdown
Contributor

Summary

Added the ability to query multiple documents simultaneously, addressing Issue #187. This allows for cross-document data retrieval and combined reasoning in RAG applications.

Changes Made

  • retrieve.py: Refactored get_document, get_document_structure, and get_page_content to accept a single string or a list of strings for doc_id.
  • client.py: Updated PageIndexClient methods to support Union[str, List[str]] for batch querying.
  • tests: Added tests/test_multi_doc.py with 5 tests verifying batch metadata, structure, and content retrieval, along with error handling and backward compatibility.

Verification

Run tests: export PYTHONPATH=. && pytest tests/test_multi_doc.py
Result: 5 passed.

Closes#187

Your Name added 3 commits March 28, 2026 00:16
- Use .get() with safe defaults for all LLM response dict accesses
- Optimize extract_toc_content retry loop to grow chat_history
incrementally instead of rebuilding with full accumulated response
- Optimize toc_transformer retry loop to use chat_history instead of
re-embedding the entire raw TOC and incomplete JSON in each prompt
- Return best-effort results on max retries instead of raising
- Add 14 mock-based tests covering all fix scenarios
ClosesVectifyAI#163
- Restore explicit Exception on max retries instead of silent warning
- Move truncation logic before the retry loop so it only runs once
on the initial incomplete response, not on every iteration
- Add explicit None guard for physical_index before passing to
convert_physical_index_to_int to prevent potential TypeError
- Update test to expect Exception on max retries
- Update retrieve.py functions to support Union[str, List[str]] for doc_id
- If a list of IDs is provided, return a JSON object mapping IDs to results
- Update PageIndexClient methods to support batch querying
- Add 5 comprehensive unit tests for multi-doc support
- Maintain 100% backward compatibility for single-doc requests

@claudeclaudeBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@BukeLy

Copy link
Copy Markdown
Member

Thanks for the contribution. Closing this PR because its SDK/chat/retrieval approach has been superseded by the supported PageIndexClient local/cloud architecture and later agent-tool and multi-document implementations. The branch is therefore no longer suitable to merge as-is.

@BukeLyBukeLy closed this Aug 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple Document Chat

2 participants

@Shreyansh1729@BukeLy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add multi-document support to retrieval and client API - #216

Closed
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support
Closed

feat: add multi-document support to retrieval and client API#216
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support

Conversation

@Shreyansh1729

Copy link
Copy Markdown
Contributor

Summary

Added the ability to query multiple documents simultaneously, addressing Issue #187. This allows for cross-document data retrieval and combined reasoning in RAG applications.

Changes Made

  • retrieve.py: Refactored get_document, get_document_structure, and get_page_content to accept a single string or a list of strings for doc_id.
  • client.py: Updated PageIndexClient methods to support Union[str, List[str]] for batch querying.
  • tests: Added tests/test_multi_doc.py with 5 tests verifying batch metadata, structure, and content retrieval, along with error handling and backward compatibility.

Verification

Run tests: export PYTHONPATH=. && pytest tests/test_multi_doc.py
Result: 5 passed.

Closes#187

Your Name added 3 commits March 28, 2026 00:16
- Use .get() with safe defaults for all LLM response dict accesses
- Optimize extract_toc_content retry loop to grow chat_history
incrementally instead of rebuilding with full accumulated response
- Optimize toc_transformer retry loop to use chat_history instead of
re-embedding the entire raw TOC and incomplete JSON in each prompt
- Return best-effort results on max retries instead of raising
- Add 14 mock-based tests covering all fix scenarios
ClosesVectifyAI#163
- Restore explicit Exception on max retries instead of silent warning
- Move truncation logic before the retry loop so it only runs once
on the initial incomplete response, not on every iteration
- Add explicit None guard for physical_index before passing to
convert_physical_index_to_int to prevent potential TypeError
- Update test to expect Exception on max retries
- Update retrieve.py functions to support Union[str, List[str]] for doc_id
- If a list of IDs is provided, return a JSON object mapping IDs to results
- Update PageIndexClient methods to support batch querying
- Add 5 comprehensive unit tests for multi-doc support
- Maintain 100% backward compatibility for single-doc requests

@claudeclaudeBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@BukeLy

Copy link
Copy Markdown
Member

Thanks for the contribution. Closing this PR because its SDK/chat/retrieval approach has been superseded by the supported PageIndexClient local/cloud architecture and later agent-tool and multi-document implementations. The branch is therefore no longer suitable to merge as-is.

@BukeLyBukeLy closed this Aug 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple Document Chat

2 participants

@Shreyansh1729@BukeLy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add multi-document support to retrieval and client API - #216

Closed
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support
Closed

feat: add multi-document support to retrieval and client API#216
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support

Conversation

@Shreyansh1729

Copy link
Copy Markdown
Contributor

Summary

Added the ability to query multiple documents simultaneously, addressing Issue #187. This allows for cross-document data retrieval and combined reasoning in RAG applications.

Changes Made

  • retrieve.py: Refactored get_document, get_document_structure, and get_page_content to accept a single string or a list of strings for doc_id.
  • client.py: Updated PageIndexClient methods to support Union[str, List[str]] for batch querying.
  • tests: Added tests/test_multi_doc.py with 5 tests verifying batch metadata, structure, and content retrieval, along with error handling and backward compatibility.

Verification

Run tests: export PYTHONPATH=. && pytest tests/test_multi_doc.py
Result: 5 passed.

Closes#187

Your Name added 3 commits March 28, 2026 00:16
- Use .get() with safe defaults for all LLM response dict accesses
- Optimize extract_toc_content retry loop to grow chat_history
incrementally instead of rebuilding with full accumulated response
- Optimize toc_transformer retry loop to use chat_history instead of
re-embedding the entire raw TOC and incomplete JSON in each prompt
- Return best-effort results on max retries instead of raising
- Add 14 mock-based tests covering all fix scenarios
ClosesVectifyAI#163
- Restore explicit Exception on max retries instead of silent warning
- Move truncation logic before the retry loop so it only runs once
on the initial incomplete response, not on every iteration
- Add explicit None guard for physical_index before passing to
convert_physical_index_to_int to prevent potential TypeError
- Update test to expect Exception on max retries
- Update retrieve.py functions to support Union[str, List[str]] for doc_id
- If a list of IDs is provided, return a JSON object mapping IDs to results
- Update PageIndexClient methods to support batch querying
- Add 5 comprehensive unit tests for multi-doc support
- Maintain 100% backward compatibility for single-doc requests

@claudeclaudeBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@BukeLy

Copy link
Copy Markdown
Member

Thanks for the contribution. Closing this PR because its SDK/chat/retrieval approach has been superseded by the supported PageIndexClient local/cloud architecture and later agent-tool and multi-document implementations. The branch is therefore no longer suitable to merge as-is.

@BukeLyBukeLy closed this Aug 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple Document Chat

2 participants

@Shreyansh1729@BukeLy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat: add multi-document support to retrieval and client API - #216

Closed
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support
Closed

feat: add multi-document support to retrieval and client API#216
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support

Conversation

@Shreyansh1729

Copy link
Copy Markdown
Contributor

Summary

Added the ability to query multiple documents simultaneously, addressing Issue #187. This allows for cross-document data retrieval and combined reasoning in RAG applications.

Changes Made

  • retrieve.py: Refactored get_document, get_document_structure, and get_page_content to accept a single string or a list of strings for doc_id.
  • client.py: Updated PageIndexClient methods to support Union[str, List[str]] for batch querying.
  • tests: Added tests/test_multi_doc.py with 5 tests verifying batch metadata, structure, and content retrieval, along with error handling and backward compatibility.

Verification

Run tests: export PYTHONPATH=. && pytest tests/test_multi_doc.py
Result: 5 passed.

Closes#187

Your Name added 3 commits March 28, 2026 00:16
- Use .get() with safe defaults for all LLM response dict accesses
- Optimize extract_toc_content retry loop to grow chat_history
incrementally instead of rebuilding with full accumulated response
- Optimize toc_transformer retry loop to use chat_history instead of
re-embedding the entire raw TOC and incomplete JSON in each prompt
- Return best-effort results on max retries instead of raising
- Add 14 mock-based tests covering all fix scenarios
ClosesVectifyAI#163
- Restore explicit Exception on max retries instead of silent warning
- Move truncation logic before the retry loop so it only runs once
on the initial incomplete response, not on every iteration
- Add explicit None guard for physical_index before passing to
convert_physical_index_to_int to prevent potential TypeError
- Update test to expect Exception on max retries
- Update retrieve.py functions to support Union[str, List[str]] for doc_id
- If a list of IDs is provided, return a JSON object mapping IDs to results
- Update PageIndexClient methods to support batch querying
- Add 5 comprehensive unit tests for multi-doc support
- Maintain 100% backward compatibility for single-doc requests

@claudeclaudeBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@BukeLy

Copy link
Copy Markdown
Member

Thanks for the contribution. Closing this PR because its SDK/chat/retrieval approach has been superseded by the supported PageIndexClient local/cloud architecture and later agent-tool and multi-document implementations. The branch is therefore no longer suitable to merge as-is.

@BukeLyBukeLy closed this Aug 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple Document Chat

2 participants

@Shreyansh1729@BukeLy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add multi-document support to retrieval and client API - #216

Closed
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support
Closed

feat: add multi-document support to retrieval and client API#216
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support

Conversation

@Shreyansh1729

Copy link
Copy Markdown
Contributor

Summary

Added the ability to query multiple documents simultaneously, addressing Issue #187. This allows for cross-document data retrieval and combined reasoning in RAG applications.

Changes Made

  • retrieve.py: Refactored get_document, get_document_structure, and get_page_content to accept a single string or a list of strings for doc_id.
  • client.py: Updated PageIndexClient methods to support Union[str, List[str]] for batch querying.
  • tests: Added tests/test_multi_doc.py with 5 tests verifying batch metadata, structure, and content retrieval, along with error handling and backward compatibility.

Verification

Run tests: export PYTHONPATH=. && pytest tests/test_multi_doc.py
Result: 5 passed.

Closes#187

Your Name added 3 commits March 28, 2026 00:16
- Use .get() with safe defaults for all LLM response dict accesses
- Optimize extract_toc_content retry loop to grow chat_history
incrementally instead of rebuilding with full accumulated response
- Optimize toc_transformer retry loop to use chat_history instead of
re-embedding the entire raw TOC and incomplete JSON in each prompt
- Return best-effort results on max retries instead of raising
- Add 14 mock-based tests covering all fix scenarios
ClosesVectifyAI#163
- Restore explicit Exception on max retries instead of silent warning
- Move truncation logic before the retry loop so it only runs once
on the initial incomplete response, not on every iteration
- Add explicit None guard for physical_index before passing to
convert_physical_index_to_int to prevent potential TypeError
- Update test to expect Exception on max retries
- Update retrieve.py functions to support Union[str, List[str]] for doc_id
- If a list of IDs is provided, return a JSON object mapping IDs to results
- Update PageIndexClient methods to support batch querying
- Add 5 comprehensive unit tests for multi-doc support
- Maintain 100% backward compatibility for single-doc requests

@claudeclaudeBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@BukeLy

Copy link
Copy Markdown
Member

Thanks for the contribution. Closing this PR because its SDK/chat/retrieval approach has been superseded by the supported PageIndexClient local/cloud architecture and later agent-tool and multi-document implementations. The branch is therefore no longer suitable to merge as-is.

@BukeLyBukeLy closed this Aug 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple Document Chat

2 participants

@Shreyansh1729@BukeLy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add multi-document support to retrieval and client API - #216

Closed
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support
Closed

feat: add multi-document support to retrieval and client API#216
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support

Conversation

@Shreyansh1729

Copy link
Copy Markdown
Contributor

Summary

Added the ability to query multiple documents simultaneously, addressing Issue #187. This allows for cross-document data retrieval and combined reasoning in RAG applications.

Changes Made

  • retrieve.py: Refactored get_document, get_document_structure, and get_page_content to accept a single string or a list of strings for doc_id.
  • client.py: Updated PageIndexClient methods to support Union[str, List[str]] for batch querying.
  • tests: Added tests/test_multi_doc.py with 5 tests verifying batch metadata, structure, and content retrieval, along with error handling and backward compatibility.

Verification

Run tests: export PYTHONPATH=. && pytest tests/test_multi_doc.py
Result: 5 passed.

Closes#187

Your Name added 3 commits March 28, 2026 00:16
- Use .get() with safe defaults for all LLM response dict accesses
- Optimize extract_toc_content retry loop to grow chat_history
incrementally instead of rebuilding with full accumulated response
- Optimize toc_transformer retry loop to use chat_history instead of
re-embedding the entire raw TOC and incomplete JSON in each prompt
- Return best-effort results on max retries instead of raising
- Add 14 mock-based tests covering all fix scenarios
ClosesVectifyAI#163
- Restore explicit Exception on max retries instead of silent warning
- Move truncation logic before the retry loop so it only runs once
on the initial incomplete response, not on every iteration
- Add explicit None guard for physical_index before passing to
convert_physical_index_to_int to prevent potential TypeError
- Update test to expect Exception on max retries
- Update retrieve.py functions to support Union[str, List[str]] for doc_id
- If a list of IDs is provided, return a JSON object mapping IDs to results
- Update PageIndexClient methods to support batch querying
- Add 5 comprehensive unit tests for multi-doc support
- Maintain 100% backward compatibility for single-doc requests

@claudeclaudeBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@BukeLy

Copy link
Copy Markdown
Member

Thanks for the contribution. Closing this PR because its SDK/chat/retrieval approach has been superseded by the supported PageIndexClient local/cloud architecture and later agent-tool and multi-document implementations. The branch is therefore no longer suitable to merge as-is.

@BukeLyBukeLy closed this Aug 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple Document Chat

2 participants

@Shreyansh1729@BukeLy
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat: add multi-document support to retrieval and client API - #216

Closed
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support
Closed

feat: add multi-document support to retrieval and client API#216
Shreyansh1729 wants to merge 4 commits into
VectifyAI:mainfrom
Shreyansh1729:feat/multi-doc-support

Conversation

@Shreyansh1729

Copy link
Copy Markdown
Contributor

Summary

Added the ability to query multiple documents simultaneously, addressing Issue #187. This allows for cross-document data retrieval and combined reasoning in RAG applications.

Changes Made

  • retrieve.py: Refactored get_document, get_document_structure, and get_page_content to accept a single string or a list of strings for doc_id.
  • client.py: Updated PageIndexClient methods to support Union[str, List[str]] for batch querying.
  • tests: Added tests/test_multi_doc.py with 5 tests verifying batch metadata, structure, and content retrieval, along with error handling and backward compatibility.

Verification

Run tests: export PYTHONPATH=. && pytest tests/test_multi_doc.py
Result: 5 passed.

Closes#187

Your Name added 3 commits March 28, 2026 00:16
- Use .get() with safe defaults for all LLM response dict accesses
- Optimize extract_toc_content retry loop to grow chat_history
incrementally instead of rebuilding with full accumulated response
- Optimize toc_transformer retry loop to use chat_history instead of
re-embedding the entire raw TOC and incomplete JSON in each prompt
- Return best-effort results on max retries instead of raising
- Add 14 mock-based tests covering all fix scenarios
ClosesVectifyAI#163
- Restore explicit Exception on max retries instead of silent warning
- Move truncation logic before the retry loop so it only runs once
on the initial incomplete response, not on every iteration
- Add explicit None guard for physical_index before passing to
convert_physical_index_to_int to prevent potential TypeError
- Update test to expect Exception on max retries
- Update retrieve.py functions to support Union[str, List[str]] for doc_id
- If a list of IDs is provided, return a JSON object mapping IDs to results
- Update PageIndexClient methods to support batch querying
- Add 5 comprehensive unit tests for multi-doc support
- Maintain 100% backward compatibility for single-doc requests

@claudeclaudeBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@BukeLy

Copy link
Copy Markdown
Member

Thanks for the contribution. Closing this PR because its SDK/chat/retrieval approach has been superseded by the supported PageIndexClient local/cloud architecture and later agent-tool and multi-document implementations. The branch is therefore no longer suitable to merge as-is.

@BukeLyBukeLy closed this Aug 31, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Multiple Document Chat

2 participants

@Shreyansh1729@BukeLy