Conversation
Added context length
Added num_ctx variable
fixed bad ,
Adding num_ctx to the model settings page
explorigin
pushed a commit
to explorigin/open-webui
that referenced
this pull request
Feb 2, 2024
feat: advanced settings refac & num_ctx added
tjbck
pushed a commit
that referenced
this pull request
Feb 21, 2026
…e send (#21596) * perf: eliminate 2 redundant full chat deserialization on every message send (#162) Problem: Every message send triggered get_chat_by_id_and_user_id which loads the entire Chat row — including the potentially massive JSON blob containing the full conversation history — even when the caller only needed a simple yes/no ownership check or a single column value. Two call sites in the message-send hot path were doing this: 1. main.py ownership verification: loaded the entire chat object including all message history JSON, then checked `if chat is None`. The JSON blob was immediately discarded — only the existence of the row mattered. 2. middleware.py folder check: loaded the entire chat object including all message history JSON, then read only `chat.folder_id` — a plain column on the chat table that requires zero JSON parsing. Fix: - Added `chat_exists_by_id_and_user_id()`: uses SQL EXISTS subquery which returns a boolean without loading any row data. The database can satisfy this from the primary key index alone. - Added `get_chat_folder_id()`: queries only the `folder_id` column via `db.query(Chat.folder_id)`, which tells SQLAlchemy to SELECT only that single column instead of the entire row. Both new methods preserve the same error handling semantics (return False/None on exception) and user_id filtering (ownership check) as the original get_chat_by_id_and_user_id. Impact: - Best case (typical): eliminates deserializing 2 full chat JSON blobs per message send. For long conversations (hundreds of messages with tool calls, images, file attachments), this blob can be multiple megabytes. - Worst case: no regression — the new queries are strictly cheaper than the old ones (less data transferred, less Python object construction, no Pydantic model_validate overhead). - The 3 remaining full chat loads in process_chat_payload (load_messages_from_db, add_file_context, chat_image_generation_handler) are left untouched as they genuinely need the full history and require separate analysis. * Address maintainer feedback: rename method and inline call (#166) - Rename chat_exists_by_id_and_user_id -> is_chat_owner - Remove intermediate chat_owned variable; call is_chat_owner directly in if condition
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.