Spaces:
Sleeping
Sleeping
import gradio as gr | |
import docx | |
import numpy as np | |
def process_input(uploaded_file, input_text, function): | |
if uploaded_file is not None: | |
try: | |
# Получаем путь к загруженному файлу | |
file_path = uploaded_file.name | |
# Читаем содержимое файла | |
with open(file_path, "rb") as file: | |
file_content = file.read() | |
# Определяем тип файла по расширению | |
if file_path.endswith('.txt'): | |
# Если файл текстовый, декодируем содержимое | |
content = file_content.decode("utf-8") | |
elif file_path.endswith('.docx'): | |
# Если файл Word, используем библиотеку python-docx | |
doc = docx.Document(file_path) | |
content = '\n'.join([para.text for para in doc.paragraphs]) | |
else: | |
return "Неподдерживаемый тип файла" | |
except Exception as e: | |
return f"Ошибка при обработке файла: {str(e)}" | |
elif input_text: | |
content = input_text | |
else: | |
return "Пожалуйста, загрузите файл или введите текст" | |
# Тут можно добавить логику обработки текста | |
return f"Результат для функции '{function}': {content[:100]}... (показаны первые 100 символов)" | |
def main(): | |
with gr.Blocks() as demo: | |
gr.Markdown("### AI Research Assistant") | |
with gr.Row(): | |
file_input = gr.File(label="Загрузите файл", file_types=["text", "docx"]) | |
text_input = gr.Textbox(label="Или введите текст", lines=5) | |
with gr.Row(): | |
function_select = gr.Dropdown(choices=[ | |
"Суммаризатор", "Поиск новых статей", "Учитель", "Критик", "Тестировщик", | |
"Визуализатор связей", "Советник", "Соавтор", "Переводчик", "Аннотатор", | |
"Факт-чекер", "Аналитик данных", "Стилистический редактор", "Рецензент", | |
"Презентатор", "Грант-райтер", "Научный сторителлер", "Библиограф" | |
], label="Выберите функцию") | |
with gr.Row(): | |
submit_button = gr.Button("Обработать") | |
output_text = gr.Textbox(label="Результат") | |
submit_button.click( | |
fn=process_input, | |
inputs=[file_input, text_input, function_select], | |
outputs=output_text | |
) | |
demo.launch() | |
if __name__ == "__main__": | |
main() |