mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2026-07-19 14:13:35 -04:00
Closed
opened 2026-02-22 18:26:55 -05:00 by yindo
·
4 comments
No Branch/Tag Specified
master
5846-bug-when-scrolling-up-scrolling-jumps
refactor-remove-workspace-pfp
5969-bug-stopgenerationbutton-disappears-on-the-first-prompt-that-initiates-an-agent-session
2235-bug-how-to-upload-a-folder-with-subfolders-with-files-to-anythingllm
5990-workspace-update-fails-with-unknown-argument-router_id-v1130v1150-intel-mac
opencomputer-examples
pg
feat/image-generation-translations
feat/image-generation
5924-bug-meeting-summary-fails-with-sincludes-is-not-a-function-when-default-llm-is-anthropic-claude
render
feat/uniform-modal-component
5883-bug-unescaped-content-in-json-strings-being-passed-to-document-generator-tools
5901-bug-api-update-embeddings-fails-prisma-argument-filename-is-missing-on-workspace_documentscreate-desktop-windows-v1141
hybrid-search
1981-translations
5752-bug-prompts-to-local-jan-endpoint-unresponsive
feat-disable-native-tool-calling-env-var
5676-bug-non-ollama-agent-providers-do-not-parse-and-present-reasoning-content
feat/markdown-web-scraping
5717-bug-apiv1documentupload-silently-drops-metadata-field-in-desktop-1130-arg-count-mismatch-nested-payload-key
fix/aibitat-context-overflow
5711-bug-erratic-deepseek-v4-flash-the-agent-model-failed-to-respond-400-the-reasoning_content
5631-feat-custom-api-request-timeouts-for-ai-providers
feat-reasoning-control
feat-agent-clarifying-questions-translations
5583-bug-lm-studio-provider-does-not-present-reasoning-output
5313-normalize-translations
feat/memory-translations
5305-lemonade-embedding-engine-swallows-errors-falsely-reports-documents-as-embedded
5060-bug-agent-interactions-agent-are-not-persisted-to-thread-history-via-api
pptx-subagent
feat-render-images-from-mcp-tool-results
stt-provider-expansion-openai-api-compatible
feat-file-search-agent-tool
feat-native-embedder-job-queue
5189-normalize-translations
feat-file-search-agent-tool-translations
i18n-eslint
5140-auto-migration
5112-bug-openrouter-failed-message-bug
3506-feat-parameters-for-openrouter-models
4992-feat-preserve-scroll-position
4973-bug-markdown-numbered-list-display-in-reasoning-pane
desktop
4938-bug-pending-chat-rerendering-ui-bug
quickstart-env
node-llama-cpp-in-container-cuda
node-llama-cpp-in-container
ollama-in-container
4817-feat-set-cooldown-per-mcp-server
4845-keyboard-shortcuts-to-navigate-in-chat
4844-feat-reorder-threads-by-latest-interaction
standardize-username-constraints-normalize-translations
4792-feat-refactor-workspacepfp-image
1382-embed-ip-improvements
1382-bug-embed-api-improvements
refactor-eslint-frontend
4687-feat-refactor-vector-db-providers
4615-feat-disable-apidocs-with-environment-variable
4559-feat-agent-web-search-enable-ordering-of-results
4599-bug-ollama-race-condition-bug
4572-bug-lmstudio-provided-llm-stopped-working-with-anything-llm-after-upgrading-to-190
4508-agent-youtube-transcript-analysis
4497-feat-workspace-names
frontend-eslint
ollama-lmstudio-auto-context-window
4431-validate-vector-database-connectioN
2019-slash-command-keyboard-selection
microsoft-foundry-provider
4431-validate-vector-database-connection
4325-sys-prompt-var-improvements
3209-feat-apiv1workspacestream-chat-sources-citations
4210-bug-voice-to-text-overwrite
4136-feat-jan-as-a-backend-server-option
4172-feat-openai-o3-support
1.8.3-rerelease
web-push-notifications-service
tasks
3955-feat-jinaai-embedder-provider-support
3921-feat-agent-skills-uiux-improvements
3901-bug-validfunccall-checks-optional-arguments
keyboard-dev
1787-custom-roles-and-permissions
add-jira-slack-data-connector
office-extension-wip
lightmode-dropdown-color-update
3586-bug-agent-flow-function-description-provided-by-user-is-not-seen-in-the-llm-query
3463-bug-agent-continues-to-run-if-request-failed-even-after-exit
3439-feat-call-variables-within-the-flow-api-block-url-field
3282-manager-view-models-workspace
3280-token-counting-server-side-truncation-improvements
3147-bug-embedded-chat-widget---not-considering-query-mode-option-always-working-in-chat-mode
2995-feat-disable-temperature-setting-for-deepseek-r1-deepseek-reasoner-model
2827-feat-perplexity-citations
2866-feat-finally-a-gemini-models-endpoint
2647-feat-hpp-header-for-a-c++-code-file-mime-addition
lancedb-revert
1656-feat-implement-tooltip-ui-designs
2011-feat-bump-perplexity-models
1873-feat-auto-add-and-watch-folder-for-document-uploads
1297-feat-gemini-agent-support
1759-bug-ui-bug-fixes
1686-feat-implement-winston-for-logging
1536-bug-toggling-on-users-can-delete-workspaces-does-not-take-effect
agent-ui-mobile-styles
1522-feat-chromadb-support
1595-bug-unable-to-get-live-web-search-and-browsing-agent-working-using-google-custom-search-engine-error-getaddrinfo-enotfound-http-errno-3008
1582-bug-lm-studio-does-not-allow-for-different-model-selection
1312-bug-usernames-should-not-be-case-sensitive-when-logging-in
1029-feat-hf-serverless-inference-api
1086-feat-implement-normalized-input-fields
knowledge-graph-support
644-bug-uploaded-file-name-does-not-match-the-displayed-file-name-after-the-upload
v1.15.0
v1.14.2
v1.14.1
v1.14.0
v1.13.0
v1.12.1
v1.12.0
v1.11.2
v1.11.1
v1.11.0
v1.10.0
v1.9.1
v1.9.0
v1.8.5
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.8
v1.7.6
v1.7.5
v1.7.4
v1.4.0
v1.3.0
v1.2.4
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.1.1
v1.1.0
v1.0.0
Labels
Clear labels
Desktop
Docker
Integration Request
Integration Request
OS: Linux
OS: Mobile
OS: Windows
UI/UX
blocked
bug
bug
core-team-only
documentation
duplicate
embed-widget
enhancement
feature request
github_actions
good first issue
investigating
needs info / can't replicate
possible bug
pull-request
question
stage: specifications
wontfix
Mirrored from GitHub Pull Request
No Label
possible bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Mintplex-Labs/anything-llm#1872
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @TheNeeloy on GitHub (Jan 4, 2025).
Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/2937
Originally assigned to: @shatfield4 on GitHub.
How are you running AnythingLLM?
Docker (local)
What happened?
Hi, thanks for releasing such an awesome project; really is helping with swapping out models and providers quickly during LLM experiments. I have a question about the intended effect of the
api/v1/workspace/{slug}/vector-searchAPI endpoint.Based off of these issues and PRs: #2811, #2812, #2815
TLDR:
When testing the new vector-search API endpoint, I found that I needed to add metadata to my query to retrieve the vector with distance 0. However, I thought that the vector search originally was based purely on the page content, excluding metadata. Below, I wrote down my environment setup, testing process, expectations, results, and questions. Thanks for your time!
Workspace and System Setup:
My AnythingLLM instance is hosted locally via Docker. It is using the default, out of the box, AnythingLLM embedding provider and LanceDB vector database settings. I setup a workspace using Ollama as the provider, running a llama3.2:1b LLM.
This is the response from
/api/v1/workspace/{slug}(my workspace slug istesting_api):This is the response from
/api/v1/system:Goal:
I've written a simple Python API to interface with the AnythingLLM instance, and I want to test out its functionality before using the API in my experiments. I've implemented functions for creating a folder, uploading a raw text document, moving a file into a folder, adding a file to a workspace, and performing vector search within a workspace given a query. Every function works as expected, except for the
vector_searchfunction.Below is my Python API and testing script (it assumes the AnythingLLM API key is set as an environment variable
ANYTHINGLLM_API_KEY):Expectation:
My understanding (and correct me if I am wrong) is that:
api/v1/document/raw-textendpoint will add a json document to the system with fields like itsid,title,description,pageContent, etc. I see that thepageContentis directly taken from thetextContentfield from the request.api/v1/workspace/{slug}/update-embeddingsendpoint to embed and add the document to a workspace, ONLY thepageContentfield will be split into chunks, passed through the embedder, and stored into LanceDB.api/v1/workspace/{slug}/vector-searchendpoint, the query string will similarly be passed through the embedder. The endpoint returns chunks that are most similar to the given query.Based on my assumptions, I expect that, if I query the workspace's vector database using the same exact
textContentI used to add a document to the server, the query should return a vector with a distance of0and a similarity of1.I tested with
textContentwith less than5tokens, so the text is not chunked separately, and the entire text should be returned with a similarity of1.You can see the tests above at the bottom of the provided script.
Reality:
The response of the first call to my
vector_searchfunction returns vectors with nonzero distance, and low score.Below is the resulting response (it has two search results because I ran the script multiple times, so the workspace has multiple files in it with the same name and contents.)
Debugging:
I was weirded out that the scores of both documents returned in the response were not the same, even though their content is the exact same. The only difference was their
metadataandtextfields.So, I tried running the vector search again, but using the exact string from the
textfield of one of the documents in the response (ie.test_query = '<document_metadata>\nsourceDocument: pirate.txt ......).And this time, the query returned a response with a vector of distance
0and similarity0:I'm not fluent in JavaScript, but I took a look at the following source files for debugging, and I thought the code should return a vector closest based on the text excluding the metadata:
Questions:
0, could there be a different endpoint added where the vector search is based purely on the text content from the raw-text endpoint?0when the distance is0in the example above?Are there known steps to reproduce?
No response
@shatfield4 commented on GitHub (Jan 17, 2025):
Thank you for the detailed write up on this issue! I have just opened the PR to fix the similarity score bug you pointed out where if there is an exact match the similarity should not be 0 but should actually be 1.
Regarding the info about the metadata being embedded in each text chunk, this is actually intentional. We do this because it helps when users request certain information about a document by it's name and allows them to refer to it by the name while also asking it more about the document. This improves the RAG results from our testing. It also allows them to ask things like "when was that information collected" and the chunk has enough info to respond to the user that way.
@TheNeeloy commented on GitHub (Jan 19, 2025):
Thanks for adding the fix Sean and explaining the expected results! Could you point me to where in the source code the metadata is added to the content string when embedding? I'd like to modify the behavior in my local installation so that only the content string is embedded when adding a document to a workspace.
@timothycarambat commented on GitHub (Jan 20, 2025):
@TheNeeloy You will see a line like this in each vector db provider (lancedb example below)
https://github.com/Mintplex-Labs/anything-llm/blob/f8c72786dfa84e60150e99750306c038cf542b59/server/utils/vectorDbProviders/lance/index.js#L330
Which comes from this class method
https://github.com/Mintplex-Labs/anything-llm/blob/f8c72786dfa84e60150e99750306c038cf542b59/server/utils/TextSplitter/index.js#L70
You can modify the method to return what you would like - or simple return
""from it to do nothing@TheNeeloy commented on GitHub (Jan 21, 2025):
Thanks Tim, that's really helpful!
[BUG]: Vector Search using APIto [GH-ISSUE #2937] [BUG]: Vector Search using API