import gradio as gr import re def split(lst): return lst.split(",") def inters(lst1, lst2): return list(set(lst1) & set(lst2)) def diff(lst1, lst2): return list(set(lst1) - set(lst2)) def convert(list, sign): return [(item, sign) for item in list] def diff_texts(text1, text2): input1 = re.findall('АГС (.+?) ', text1) input2 = re.findall('АГС (.+?) ', text2) lst1 = input1 or split(text1) lst2 = input2 or split(text2) diff1 = convert(diff(lst1, lst2), '-') diff2 = convert(diff(lst2, lst1), '+') intrs = convert(inters(lst1, lst2), None) return diff1 + diff2 + intrs demo = gr.Interface( diff_texts, [ gr.Textbox( label="Text 1", info="Initial text", lines=3, #value="ЭУ063473,ЭУ063414,ТО041305", ), gr.Textbox( label="Text 2", info="Text to compare", lines=3, #value="ЭУ063443,ЭУ063473,ТО041384,ТО041305,ЭУ063414", ), ], #"textbox", gr.HighlightedText( label="Diff", combine_adjacent=True, adjacent_separator=", ", show_legend=True, color_map={"-": "red", "+": "green"} ), theme=gr.themes.Base() ) demo.launch()