core: Fix IndexError when trim_messages invoked with empty list (#26896)

This prevents `trim_messages` from raising an `IndexError` when invoked
with `include_system=True`, `strategy="last"`, and an empty message
list.

Fixes #26895

Dependencies: none
This commit is contained in:
Julius Stopforth
2024-09-26 17:29:58 +02:00
committed by GitHub
parent 7091a1a798
commit 121e79b1f0
2 changed files with 16 additions and 0 deletions

View File

@@ -332,6 +332,19 @@ def test_trim_messages_allow_partial_text_splitter() -> None:
assert _MESSAGES_TO_TRIM == _MESSAGES_TO_TRIM_COPY
def test_trim_messages_include_system_strategy_last_empty_messages() -> None:
expected: list[BaseMessage] = []
actual = trim_messages(
max_tokens=10,
token_counter=dummy_token_counter,
strategy="last",
include_system=True,
).invoke([])
assert actual == expected
def test_trim_messages_invoke() -> None:
actual = trim_messages(max_tokens=10, token_counter=dummy_token_counter).invoke(
_MESSAGES_TO_TRIM