Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: Workspace Documents popup Becomes Unusable with Large Number of Documents #2317

Closed
blazeyo opened this issue Sep 18, 2024 · 0 comments · Fixed by #2365
Closed

[BUG]: Workspace Documents popup Becomes Unusable with Large Number of Documents #2317

blazeyo opened this issue Sep 18, 2024 · 0 comments · Fixed by #2365
Labels
possible bug Bug was reported but is not confirmed or is unable to be replicated.

Comments

@blazeyo
Copy link
Contributor

blazeyo commented Sep 18, 2024

How are you running AnythingLLM?

Docker (local)

What happened?

When working with a large number of documents (around 6.5k in my case after importing a repository), the workspace UI becomes unresponsive. Rendering all items at once causes the browser to freeze for several minutes, making it nearly impossible to use.

Proposed Solution(s)

Implement Lazy Loading

To improve performance, implement lazy loading for the document list. Instead of rendering all documents upfront, only load a subset initially and load more as the user scrolls.

Load a small batch of items initially (e.g., 20 documents).
When scrolling is detected in the container, load the next batch of items.
This would significantly reduce the initial rendering time and prevent the UI from freezing.

Add Fuzzy Search for Document Lists

In addition to lazy loading, improve document navigation by implementing fuzzy search functionality. This would help users quickly find the documents they are looking for without needing to scroll through thousands of files.

Initially load a small subset of items (e.g., 20 documents).
Add input fields for each document container (e.g., left and right panels) to allow users to search.
When the search input changes, display only the subset of files that match the search string using fuzzy search techniques.
Both features would improve performance and usability when dealing with large document sets.

Impact

By implementing either lazy loading, fuzzy search, or both, the usability of the workspace with large document sets would improve dramatically. These changes would reduce the load time, prevent browser freezes, and make it easier for users to locate documents quickly.

What do you think?

Are there known steps to reproduce?

Add 6k files to the database and open the workspace documents popup.

@blazeyo blazeyo added the possible bug Bug was reported but is not confirmed or is unable to be replicated. label Sep 18, 2024
blazeyo added a commit to blazeyo/anything-llm that referenced this issue Sep 23, 2024
timothycarambat added a commit that referenced this issue Sep 24, 2024
* #2317 Fetch pinned documents once per folder to reduce the number of queries.

* Reorder the lines to keeps const declarations together.

* Add some comments to functions
move pinned document fetch for folder to function
move watched documents per-folder to also function the same
remove unused function in documents model

---------

Co-authored-by: Błażej Owczarczyk <[email protected]>
lohawk-azalea pushed a commit to azalea-gograbcode/anything-llm that referenced this issue Oct 4, 2024
* patch scrollbar on msgs
resolves Mintplex-Labs#2190

* remove system setting cap on messages (use at own risk)

* Bug/make swagger json output openapi 3 compliant (Mintplex-Labs#2219)

update source to ensure swagger.json is openapi 3.0.0 compliant

* Feature/use escape key to close documents modal (Mintplex-Labs#2222)

* Add ability to use Esc keypress to close modal for documents

* move escape close to hook

---------

Co-authored-by: Mr Simon C <[email protected]>

* Feature/add searchapi web browsing (Mintplex-Labs#2224)

* Add SearchApi to web browsing

* UI modifications for SearchAPI

---------

Co-authored-by: Sebastjan Prachovskij <[email protected]>

* fixed the typo in LLMs (Mintplex-Labs#2225)

(not a big deal, just to avoid someone pointing it out)

* Ollama sequential embedding (Mintplex-Labs#2230)

* ollama: Switch from parallel to sequential chunk embedding

* throw error on empty embeddings

---------

Co-authored-by: John Blomberg <[email protected]>

* remove log

* remove Jazzicons & Add default pfps (Mintplex-Labs#2233)

remove Jazzicons
update pfps

* update docs showing no need for manual port forwarding of Server in G… (Mintplex-Labs#2247)

update docs showing no need for manual port forwarding of Server in GHCodespaces

* Add verbose logging to GH loader
connect Mintplex-Labs#2243

* match user prompts exactly not partially (Mintplex-Labs#2245)

* Milvus bug fix (Mintplex-Labs#2183)

* patch no text results for milvus chunks

* wrap addDocumentToNamespace in try catch for handling milvus errors

* lint

* revert milvus db changes

* add try catch to handle grpc error from milvus

* Fix UI for slash cmd presets (Mintplex-Labs#2260)

* fix ui for slash cmd presets

* hide scroll

---------

Co-authored-by: timothycarambat <[email protected]>

* Add support for custom agent skills via plugins (Mintplex-Labs#2202)

* Add support for custom agent skills via plugins
Update Admin.systemPreferences to updated endpoint (legacy has deprecation notice

* lint

* dev build

* patch safeJson
patch label loading

* allow plugins with no config options

* lint

* catch invalid setupArgs in frontend

* update link to docs page for agent skills

* remove unneeded files

---------

Co-authored-by: shatfield4 <[email protected]>

* update 128k label for Azure models
resolves Mintplex-Labs#2264

* Add Gemini `exp` models (Mintplex-Labs#2268)

Add Gemini  models
resolves Mintplex-Labs#2263

* Update OpenAI models and prices Mintplex-Labs#2261 (Mintplex-Labs#2269)

* Update OpenAI models

* Sort OpenAI models by created timestamp in ascending order

* Update OpenAI models price

* uncheck fallback listing (even if old)
closes Mintplex-Labs#2261

* linting

---------

Co-authored-by: Yaner <[email protected]>

* UI Cleanup (Mintplex-Labs#2270)

Remove FineTuningBanner
remove AgentAlert for first time users

* Patch missing folder autogenerate for plugins (Mintplex-Labs#2273)

* bump ref to browser ext

* bump Perplexity models (Mintplex-Labs#2275)

* Make `userId` actually optional for workspaceThread endpoint (Mintplex-Labs#2276)

* update doc links and readme

* Support `@agent` custom skills (Mintplex-Labs#2280)

* Support `@agent` custom skills

* move import

* Patch UI bug with agent skill web-search and sql-connector (Mintplex-Labs#2282)

* Patch UI bug with agent skill

* wrap call in try/catch for failures
res?. optional call for settings since null is default

* uncheck

* Patch 11Labs selection UI bug (Mintplex-Labs#2284)

* Patch 11Labs selection UI bug

* remove log

* 1943 add fireworksai support (Mintplex-Labs#2300)

* Issue Mintplex-Labs#1943: Add support for LLM provider - Fireworks AI

* Update UI selection boxes
Update base AI keys for future embedder support if needed
Add agent capabilites for FireworksAI

* class only return

---------

Co-authored-by: Aaron Van Doren <[email protected]>

* Appearance setting for show/hide scroll bar on chat window (Mintplex-Labs#2187)

* implement appearance setting for show/hide scrollbar

* put back comments

* revert backend for show_scrollbar

* show scrollbar save to localstorage

* old model function

* lint

* edit

---------

Co-authored-by: Timothy Carambat <[email protected]>

* Fix gitlab data connector for self-hosted instances (Mintplex-Labs#2315) (Mintplex-Labs#2316)

* Fix gitlab data connector for self-hosted instances (Mintplex-Labs#2315)

* Linting fix.

* Add more verbose error messages in embed chat (Mintplex-Labs#2306)

* publish embed updates

* server sided error messages

* publish embed chat widget

* sync submodule

* unset change

* update embed to merged changes for error

---------

Co-authored-by: timothycarambat <[email protected]>

* Load all branches in gitlab data connector (Mintplex-Labs#2325)

* Fix gitlab data connector for self-hosted instances (Mintplex-Labs#2315)

* Linting fix.

* Load all branches in the GitLab data connector Mintplex-Labs#2319

* Mintplex-Labs#2319 lint fixes.

* update fetch on fail

---------

Co-authored-by: Błażej Owczarczyk <[email protected]>

* Add ability to copy/paste images, files, and text from web, local, or otherwise (Mintplex-Labs#2326)

* Fix custom domain in confluence (Mintplex-Labs#2328)

confluence custom domain fix

* Enable Mistral Multimodal (Mintplex-Labs#2343)

* Enable Mistral Multimodal

* remove console

* Added JSONSchema for `plugin.json` files (Mintplex-Labs#2344)

Added JSONSchema for agent skill plugin manifest files

Signed-off-by: Jaid <[email protected]>

* Make streaming behavior more natural (Mintplex-Labs#2336)

* fix scrolling behavior + add cursor to streaming chats

* lint

* linting

---------

Co-authored-by: timothycarambat <[email protected]>

* Dont overwrite content in input on paste
linting

* Add select/unselect all context menu to directory component (Mintplex-Labs#2337)

add select/unselect all context menu to directory component

* PR#2355 Continued + expanded scope (Mintplex-Labs#2365)

* Mintplex-Labs#2317 Fetch pinned documents once per folder to reduce the number of queries.

* Reorder the lines to keeps const declarations together.

* Add some comments to functions
move pinned document fetch for folder to function
move watched documents per-folder to also function the same
remove unused function in documents model

---------

Co-authored-by: Błażej Owczarczyk <[email protected]>

* Export embedded chat history (Mintplex-Labs#2329)

export embedded chat history

Co-authored-by: Timothy Carambat <[email protected]>

* Bulk document removal from workspace

* wip improve remove document ux

* fix border ui bugs when adding files to workspace

* sort workspacedirectory put adding files at top

* fix workspace file row ui shifting

* fix selected items bug when adding another item with items already selected on workspace

* fix tooltip

* lint

* refactor

* fix bug where unadding single item while selected would stay selected

---------

Co-authored-by: timothycarambat <[email protected]>

* Workspace agent autoselection (Mintplex-Labs#2357)

* refactor agent to add fallback to workspace, then to chat provider/model

* commenting
update logic for bedrock and fireworks fallbacks

---------

Co-authored-by: timothycarambat <[email protected]>

* Support attachments in developer API (Mintplex-Labs#2373)

* support attachments in developer api

* lint

---------

Co-authored-by: Timothy Carambat <[email protected]>

* 1417 completion timeout (Mintplex-Labs#2374)

* Refactor handleDefaultStreamResponseV2 function for better error handling

* run yarn lint

* small error handling changes

* update error handling flow and scope of vars

* add back space

---------

Co-authored-by: Roman <[email protected]>

* Support more Confluence URL formats (Mintplex-Labs#2118)

* support more confluence url formats

* use pattern matching for confluence urls and manual splitting as fallback

* rework entire Confluence flow to prevent issues with custom, local, and cloud spaces

* remove dep

---------

Co-authored-by: Timothy Carambat <[email protected]>

* Add dropdown for confluence connector deployment (Mintplex-Labs#2376)

* Added an option to fetch issues from gitlab. Made the file fetching a… (Mintplex-Labs#2335)

* Added an option to fetch issues from gitlab. Made the file fetching asynchornous to improve performance. Mintplex-Labs#2334

* Fixed a typo in loadGitlabRepo.

* Convert issues to markdown.

* Fixed an issue with time estimate field names in issueToMarkdown.

* handle rate limits more gracefully + update checkbox to toggle switch

* lint

---------

Co-authored-by: Timothy Carambat <[email protected]>
Co-authored-by: shatfield4 <[email protected]>

* 1959 filetype filters (Mintplex-Labs#2378)

* Updated the `GitHubRepoLoader` class to use the new import syntax and adjust the `recursiveLoader` method accordingly.

* add @langchain/community to collector package.json

* fix: Improve handling of complex ignore patterns in GitLabRepoLoader

* refactor: use ignore package for simplified ignore logic

* run yarn lint

* add @langchain/community@^0.2.23

* remove unused dep
lint

---------

Co-authored-by: Emil Rofors (aider) <[email protected]>

* Support DeepSeek (Mintplex-Labs#2377)

* add deepseek support

* lint

* update deepseek context length

* add deepseek to onboarding

---------

Co-authored-by: Timothy Carambat <[email protected]>

* Once again, modify Confluence to support every esoteric combination and undocumented way of running Confluence ever devised
resolves Mintplex-Labs#2379

* Patch bug with pasted text not being detected (Mintplex-Labs#2386)

* [FEAT] Add Llama 3.2 models to Fireworks AI's LLM selection dropdown (Mintplex-Labs#2384)

Add Llama 3.2 3B and 1B models to Fireworks AI LLM selection

* Added voyage-3 and voyage-3-lite. (Mintplex-Labs#2394)

* Add 3GB file size limit to body parser middlewares (Mintplex-Labs#2390)

* Tavily search web search agent support (Mintplex-Labs#2395)

* support tavily search web search agent

* lint

* remove unneeded comments

* Add exception handling for special case files like `Dockerfile` and `Jenkinsfile` (Mintplex-Labs#2410)

* Support XLSX files (Mintplex-Labs#2403)

* support xlsx files

* lint

* create seperate docs for each xlsx sheet

* lint

* use node-xlsx pkg for parsing xslx files

* lint

* update error handling

---------

Co-authored-by: timothycarambat <[email protected]>

---------

Signed-off-by: Jaid <[email protected]>
Co-authored-by: timothycarambat <[email protected]>
Co-authored-by: Mr Simon C <[email protected]>
Co-authored-by: Sebastjan Prachovskij <[email protected]>
Co-authored-by: amrrs <[email protected]>
Co-authored-by: John Blomberg <[email protected]>
Co-authored-by: Sean Hatfield <[email protected]>
Co-authored-by: Yaner <[email protected]>
Co-authored-by: Aaron Van Doren <[email protected]>
Co-authored-by: Blazej Owczarczyk <[email protected]>
Co-authored-by: Jaid <[email protected]>
Co-authored-by: Roman <[email protected]>
Co-authored-by: Emil Rofors (aider) <[email protected]>
Co-authored-by: a4v2d4 <[email protected]>
Co-authored-by: Bahtiar Ariyanki <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
possible bug Bug was reported but is not confirmed or is unable to be replicated.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant