Fix context references dropped due to wrong isinstance check#1270
Open
jnMetaCode wants to merge 1 commit intokhoj-ai:masterfrom
Open
Fix context references dropped due to wrong isinstance check#1270jnMetaCode wants to merge 1 commit intokhoj-ai:masterfrom
jnMetaCode wants to merge 1 commit intokhoj-ai:masterfrom
Conversation
`chat.context` is typed as `List[Context]` where `Context` is a Pydantic model. The `isinstance(item, dict)` guard filters out all items since they are `Context` objects after `model_validate()`, resulting in document references from chat history never being included in the prompt context. Remove the incorrect type guard so that note references from prior conversation turns are properly included. Signed-off-by: JiangNan <1394485448@qq.com>
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.
Summary
In
generate_chatml_messages_with_context(), document references from prior conversation turns are never included in the prompt because of an incorrectisinstance(item, dict)type check.Bug
chat.contextisList[Context]whereContextis a PydanticBaseModel. AfterChatMessageModel.model_validate()in theConversation.messagesproperty, context items areContextobjects, not raw dicts. Theisinstance(item, dict)guard therefore filters out all items, producing an emptyreferencesstring every time.Fix
Remove the
isinstance(item, dict)guard. The list is already typed asList[Context]and validated by Pydantic, so the type check is unnecessary and harmful.Impact
Without this fix, the LLM does not see document references from earlier turns in multi-turn conversations, which can degrade response quality when prior context is relevant.