mirror of
https://github.com/ollama/ollama-python.git
synced 2026-05-01 11:48:17 +08:00
fix: preserve falsy values like empty strings in _copy_messages
The _copy_messages helper uses `if v` to filter out dictionary entries, but this incorrectly drops legitimate falsy values such as empty strings (`content: ""`), zero (`0`), and `False`. For example, a message with `content: ""` would silently lose the content field entirely, which can cause unexpected behavior downstream when the message structure no longer matches what was originally provided. Change the filter condition from `if v` to `if v is not None` so that only actual None values are excluded, preserving all other falsy values. Signed-off-by: JiangNan <1394485448@qq.com>
This commit is contained in:
parent
dbccf192ac
commit
df0e2e73ee
@ -1321,7 +1321,7 @@ def _copy_images(images: Optional[Sequence[Union[Image, Any]]]) -> Iterator[Imag
|
||||
def _copy_messages(messages: Optional[Sequence[Union[Mapping[str, Any], Message]]]) -> Iterator[Message]:
|
||||
for message in messages or []:
|
||||
yield Message.model_validate(
|
||||
{k: list(_copy_images(v)) if k == 'images' else v for k, v in dict(message).items() if v},
|
||||
{k: list(_copy_images(v)) if k == 'images' else v for k, v in dict(message).items() if v is not None},
|
||||
)
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user