Spaces:
Sleeping
Sleeping
File size: 2,933 Bytes
650ba4d 5862173 1048d32 650ba4d f50936d f2a416f f50936d 3a3a439 f50936d 5f012b1 f50936d 650ba4d f2a416f f50936d 650ba4d f50936d 650ba4d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
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() |