Сделал вчера неочевидный баг...
Posted on Fri 27 January 2023 • Tagged with from_telegram, in_russian
Сделал вчера неочевидный баг в простом коде и какое-то время тупил, это ли не повод оставить задачку для уважаемых подписчиков?
Задача такая: из некоторого списка тегов отбираем наиболее важные по словарю рангов, формируем промпт и отправляем в модель. Что не так с этим кодом?
```import typing as t
def predict_from_tags(model: BertModel, tags: t.Sequence[str]): prompt = prompt_from_tags(tags, model.tag_ranks) return model.predict(prompt)
def prompt_from_tags(tags: t.Sequence[str], tag_ranks: t.Dict[str, float], max_tags: int = 20, allow_duplicates: bool = False, ) -> str:
if not allow_duplicates:
tags = list(set(tags))
sorted_tags = sorted(tags, key=lambda x: tag_ranks.get(x, float("inf")))
return " ".join(sorted_tags[:max_tags])
```Автор первого правильного ответа в комментариях не получит ничего, кроме респекта от таких же любопытных, которым зачем-то интересно просто так искать баги в чужом коде.