GigaScholar / app.py
fruitpicker01's picture
Update app.py
5862173 verified
raw
history blame
2.29 kB
import gradio as gr
from io import BytesIO
import docx
def process_input(uploaded_file, function):
if uploaded_file is not None:
# Определяем тип файла по расширению
if uploaded_file.name.endswith('.txt'):
# Если файл текстовый, читаем как текст
content = uploaded_file.read().decode("utf-8")
elif uploaded_file.name.endswith('.docx'):
# Если файл Word, используем библиотеку python-docx
doc = docx.Document(BytesIO(uploaded_file.read()))
content = '\n'.join([para.text for para in doc.paragraphs])
else:
return "Неподдерживаемый тип файла"
# Тут можно добавить логику обработки текста
return f"Результат для функции '{function}': {content[:100]}... (показаны первые 100 символов)"
return "Файл не загружен или пустой"
def main():
with gr.Blocks() as demo:
gr.Markdown("### AI Research Assistant")
with gr.Row():
file_input = gr.File(label="Загрузите файл")
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, function_select],
outputs=output_text
)
demo.launch()
if __name__ == "__main__":
main()