mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2026-07-21 09:35:22 -04:00
Open
opened 2026-02-22 18:18:58 -05:00 by yindo
·
7 comments
No Branch/Tag Specified
master
5846-bug-when-scrolling-up-scrolling-jumps
2235-translations
2235-bug-how-to-upload-a-folder-with-subfolders-with-files-to-anythingllm
refactor-remove-workspace-pfp
5969-bug-stopgenerationbutton-disappears-on-the-first-prompt-that-initiates-an-agent-session
5968-chore-update-default-system-prompt-for-better-tool-use
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
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#327
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 @dlaliberte on GitHub (Jan 8, 2024).
Original GitHub issue: https://github.com/Mintplex-Labs/anything-llm/issues/556
Having experienced the confusion first hand of thinking that placeholder text was actual text, I found this article which highlights several additional reasons that placeholder text should probably not be used: Don’t Use The Placeholder Attribute.
In my case, the placeholder text happened to be the default value that was actually what I would have entered, which is why I thought it was already entered. (Since the text was not entered when the submit proceeded without complaint, I was very confused about the subsequent erroneous consequences.) Making it easy to enter that same text would be a good alternative. e.g. select (focus on) the empty field, then the default text is displayed in a dropdown that the user can select.
If you agree, I volunteer to create a PR to implement this.
@timothycarambat commented on GitHub (Jan 9, 2024):
For as long as I have been an SWE in various roles and projects I've heard this argument both ways. Currently, I take the opposite stance for that article, which I have read the likes of before! At a certain point I think the arguments can be pedantic but at our current stage of development, I'm strongly opposed to removing placeholders.
An example, take the LocalAI input field.

We have validations on the backend to ensure two things
/(eg.https://localhost:1223/v1/)/v1(eg.https://localhost:1223/v1)If the placeholder was removed there is zero indication that the input requires any specific format at all, which now the user is left to simply put something, likely just the hostname
https://localhost:1223, and get an error saying it needs to end in/v1so now they had to submit twice.Additionally, should any input be empty because there was placeholder-is-input confusion we use HTML native form controls for required fields so we need not rely on ping-ponging validations between the server and client.

Lastly, the color of the placeholder is a "softer" shade than the real input text, which is pretty normal for web design however if there is an agreement that its too close to white then we can make it darker but now will face possible contract issues.
I think the UX where an input shows as an option during focus for the default is counterintuitive so we should not pursue that. Inputs should be inputs, dropdowns should be dropdowns, etc etc.
Possible resolutions
We can supplement each input label to have an additional
infosymbol next to it the user can hover and get a tooltip that is descriptive of the required input or functionality of inputWe can then revise the placeholders to not be exact inputs one would expect to put anyway (eg. Token context window input!) where we can be more descriptive or now assume defaults

We could move the placeholder under the input as a
hintand that way it is no longer confusing what is in the input. Then placeholders can be dropped totally since the input instruction is still implied.I'm open to arguments either way but I do stand that in our current stage of UI/UX around inputs and placeholders. That's just where I'm at mentally on this. Appreciate you bringing this up so we can all find the best way forward 👍
@dlaliberte commented on GitHub (Jan 17, 2024):
Thanks for your extensive response. It affirms that you do care about the UI and ease of use. Btw, I think the AnythingLLM UI is mostly great, but this particular issue tripped me up and I thought it might be useful to help others.
I was able to submit the form without touching the field with the placeholder value that was identical to what I needed to enter. So perhaps there is a bug that allows an empty value for a required field. A passive indication that the field is required wouldn't help.
There was no other form text to compare with to suggest that it might not be the actual value. So lightening the text won't necessarily help either.
Showing the placeholder separate from the field is probably the best choice, if you don't want to show it in a drop-down that the user can quickly select.
@dlaliberte commented on GitHub (Jan 17, 2024):
Here is what I experienced regarding the default settings, which I had posted to the discord.
I installed (cloned and built) the AnythingLLM repo for development. I am on a windows 11 machine, using WSL Ubuntu shell. I want to use LMStudio with one of the huggingface LLMs that I downloaded, and I want to use the default AnythingLLM embedding. In the server/.env.development I uncommented the three LMStudio lines:
and left everything else as is. In the localhost:3000 web page, I set up a workspace, and clicked on the little wrench tool to configure the preferences. In the LLM Preferences, I selected LMStudio, and it seemed to have the right default base URL and token context window, so I just Saved my selection and tried to use it. This failed in a mysterious way, which I could see in the AnythingLLM server log:
Why was it complaining about "No embedding engine"? I also changed the model I was loading in LMStudio from "orca 2 ..." to "mistral instruct ..." and the error when trying to use this changed to:
I subsequently figured it out, so no need to help me on that. I'm just getting to make it clear why I was confused.
@timothycarambat commented on GitHub (Jan 17, 2024):
@dlaliberte Ah, then I think we have a path forward on this. I can completely understand how/why that confusion and the resulting ambiguous error would occur. We will outline some tickets in the internal tasks board to address this issue and also prevent the UX that ultimately leads to the error because of the input ambiguity.
Great write-up and explanation by the way. Makes addressing issues like this much easier!
@dlaliberte commented on GitHub (Jan 22, 2024):
Great. BTW, I continue to be fooled by placeholders that look like real text.
Another example: I went to re-import the GitHub repo of AnythingLLM, which I had done previously, but I wanted a fresh copy. (Auto-updating this, and other document sources will be nice - I expect you are planning on supporting that eventually.) The text in the URL field looked like it was all filled out as it was previously, but there was nothing there actually. But the Access Token was more obviously bogus looking. So I had to go create a new one, since it was not actually stored locally. Oh well. I digress.
When I went to copy the URL for real from GitHub, I pasted in the text, and it included the ".git" suffix which is not the expected format, but I couldn't tell since it is not even visible in the truncated placeholder text.
@MarwanNakhaleh commented on GitHub (Mar 28, 2024):
Related to this, entering
http://localhost:11434will not allow AnythingLLM to find local models, buthttp://127.0.0.1:11434works perfectly fine. Please allow "localhost" in addition to "127.0.0.1"?@shatfield4 commented on GitHub (Mar 28, 2024):
This is not an AnythingLLM issue but it is actually because Ollama does not listen to "localhost" it is just one of the quirks of using Ollama for running local models. Please keep using "127.0.0.1" as this just will point to your local device's IP address.
Placeholder text has many disadvantagesto [GH-ISSUE #556] Placeholder text has many disadvantages