import gradio as gr from litellm import completion GROQ_API_KEY = "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" def summarize_text(text: str) -> str: """ Функція робить ОДИН виклик до LLM і повертає коротке резюме тексту """ if not text.strip(): return "" response = completion( model="groq/llama-3.1-8b-instant", api_key=GROQ_API_KEY, messages=[ { "role": "system", "content": "Стисло підсумуй текст. Поверни лише резюме без вступних фраз." }, { "role": "user", "content": text } ], temperature=0.3 ) return response["choices"][0]["message"]["content"] # ---------- UI ---------- with gr.Blocks() as demo: gr.Markdown(""" ## 🧠 Сумаризація тексту за допомогою LLM Встав текст — отримаєш коротке резюме. """) text_input = gr.Textbox( label="Вхідний текст", lines=8, placeholder="Встав текст для сумаризації" ) output_text = gr.Textbox( label="Резюме", lines=5 ) summarize_button = gr.Button("Зробити резюме") summarize_button.click( fn=summarize_text, inputs=text_input, outputs=output_text ) demo.launch()