Spaces:
Running
Running
File size: 915 Bytes
29b313e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from langchain_core.messages import trim_messages, BaseMessage
import tiktoken
enc = tiktoken.get_encoding("cl100k_base")
def custom_token_counter(messages: list[BaseMessage]) -> int:
text_content = ""
for msg in messages:
if isinstance(msg.content, str):
text_content += msg.content
elif isinstance(msg.content, list):
for part in msg.content:
if isinstance(part, str):
text_content += part
elif isinstance(part, dict) and 'text' in part:
text_content += part['text']
return len(enc.encode(text_content))
def get_chat_history(messages, max_tokens=1000):
return trim_messages(
messages,
max_tokens=max_tokens,
strategy="last",
token_counter=custom_token_counter,
include_system=True,
start_on="human",
allow_partial=False
) |