Сделал вчера неочевидный баг...

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])

```Автор первого правильного ответа в комментариях не получит ничего, кроме респекта от таких же любопытных, которым зачем-то интересно просто так искать баги в чужом коде.

source