import gradio as gr import pdfkit import os # Функция для генерации PDF из введенного текста def generate_pdf(text): # Создаем HTML-контент с текстом html_content = f"""
{text}
""" # Задаем пути к временным файлам html_path = "chat_dialog.html" pdf_path = "chat_dialog.pdf" try: # Сохраняем HTML-контент во временный файл with open(html_path, "w", encoding="utf-8") as html_file: html_file.write(html_content) # Конвертируем HTML в PDF pdfkit.from_file(html_path, pdf_path) # Возвращаем путь к PDF-файлу return pdf_path except Exception as e: return f"Произошла ошибка при создании PDF: {str(e)}" finally: # Удаляем временный HTML-файл, если он существует if os.path.exists(html_path): os.remove(html_path) # Функция для создания и запуска приложения Gradio def run_app(): # Интерфейс Gradio with gr.Blocks() as demo: with gr.Row(): chatbot = gr.Chatbot() with gr.Column(): user_input = gr.Textbox(label="Введите текст из чата", placeholder="Введите текст...") generate_button = gr.Button("Сохранить в PDF") pdf_link = gr.Textbox(label="Ссылка на PDF", interactive=False) # Устанавливаем действие для кнопки generate_button.click(generate_pdf, inputs=[user_input], outputs=[pdf_link]) # Запуск приложения demo.launch() # Запуск приложения через вызов функции if __name__ == "__main__": run_app()