Difflib.SequenceMatcher внезапно возвращает другой коэффициент сходства без изменений кода или среды.Python

Программы на Python
Anonymous
Difflib.SequenceMatcher внезапно возвращает другой коэффициент сходства без изменений кода или среды.

Сообщение Anonymous »

Мы используем difflib.SequenceMatcher Python для сравнения строк в производственной системе. Вот упрощенный соответствующий код:

Код: Выделить всё

from difflib import SequenceMatcher

similarity = SequenceMatcher(
None,
normalized_transcript,
normalized_expected
).ratio()
До 16:10 по всемирному координированному времени сегодня приведенный выше код возвращал коэффициент сходства, превышающий наш внутренний порог для конкретного сравнения строк.
После этого, без каких-либо изменений в нашем коде, конфигурации сервера или среде, то же сравнение начало возвращать более низкий показатель сходства, не проходя проверку порога.
Некоторые ключевые факты:
  • Поведение постоянно менялось во всех средах: как разработки, так и рабочей.
  • Серверы работают под управлением Windows (dev) и Unix (dev + prod), поэтому вряд ли это проблема конкретной ОС.
  • Не было развертывания кода, изменений зависимостей и изменений переменных среды.
  • Мы знаем, что SequenceMatcher работает полностью локально — здесь не задействованы сторонние запросы или модели.
  • Мы проверили, что входные данные SequenceMatcher идентичны предыдущим значениям (подтверждено журналами).
Важная деталь: приходит строкаnormalized_transcript из доработок OpenAI API. Это единственный потенциально «переменный» внешний компонент в системе. Однако рассматриваемые строки очень короткие, и исторически мы видели последовательные выходные данные OpenAI для этой настройки приглашения.
Такое поведение сбивает с толку. Есть ли какой-либо известный крайний случай, возможно, чувствительная ко времени внутренняя оптимизация или что-то еще, что могло бы объяснить это внезапное изменение в поведении SequenceMatcher?

Вернуться в «Python»