in shared/util.py [0:0]
def optmize_messages(chat_history_messages, model):
messages = chat_history_messages
# check each get_sources function message and reduce its size to fit into the model's max tokens
for idx, message in enumerate(messages):
if message['role'] == 'function' and message['name'] == 'get_sources':
# top tokens to the max tokens allowed by the model
sources = json.loads(message['content'])['sources']
tokens_allowed = model_max_tokens[model] - number_of_tokens(json.dumps(messages), model=model)
while tokens_allowed < int(AZURE_OPENAI_RESP_MAX_TOKENS) and len(sources) > 0:
sources = sources[:-1]
content = json.dumps({"sources": sources})
messages[idx]['content'] = content
tokens_allowed = model_max_tokens[model] - number_of_tokens(json.dumps(messages), model=model)
return messages