Skip to content

Latest commit

 

History

History
299 lines (218 loc) · 23.5 KB

README.md

File metadata and controls

299 lines (218 loc) · 23.5 KB

Caution

This is an LLM generated translation. If you are proficient in русский, please consider submitting a pull request with improvements

Логотип Nextpy Логотип Nextpy

繁體中文 . 简体中文 . Français · German · Italiano · Português · Tamil · Ukrainian · русский · عربي · Español · हिंदी · Türkçe · 한국어


Фреймворк веб-приложений на Python: Для людей и LLM

Простой как Streamlit + Быстрый и Гибкий как Next.js

+ 🤖 Ищете 'OpenAMS' или 'OpenAgent'? Теперь они бесшовно интегрированы в Nextpy. +

🤔 Nextpy: Будущее разработки приложений

Создавайте любые веб-приложения — легко и быстро ⚡. Он упрощает разработку на Python для всего, от бэкенда до фронтенда (да, визуально 🦚потрясающие фронтенды на Python!), интеграции ИИ, API и далее — расширяя возможности как людей, так и агентов ИИ.

Nextpy разработан для решения проблем совместимости и улучшения генерации кода. Он основан на нашем понимании🔍, что выбор фреймворка приложений значительно влияет на эффективность генерации кода ИИ, независимо от других факторов, таких как LLM, подсказки или методы дообучения.

  • Что Вы Можете Построить за 1 час: Красивые портфолио, порталы, данные приложения, внутренние инструменты, API и т.д.
  • 📚 И лучшая часть? Передаваемые знания: Разработка с Nextpy прогрессивно учит вас лучшим библиотекам Python - FastAPI, Pydantic, SQLModel, Pandas, Jinja2, SQLAlchemy и т.д.

-----------------------------------------------------

💡 Основные Характеристики

Упрощение разработки приложений:🧩

  • 🐍 Раскройте полный потенциал Python - Устраните сложности и создавайте всё — фронтенд и бэкенд — на Python, беспрепятственно интегрируя любые библиотеки Python.
  • 🎨 Богатая библиотека пользовательского интерфейса - Более 100 полностью настраиваемых встроенных компонентов для быстрой разработки UI.
  • ⚛️ Используйте мощь React с помощью Python-обёрток - Используйте огромный экосистему React непосредственно в Python, используя любую библиотеку React без знания JavaScript.
  • 🚀 Встроенные оптимизации производительности - Обеспечьте исключительный пользовательский опыт с автоматическими оптимизациями изображений, шрифтов и скриптов для молниеносной скорости загрузки и отзывчивости. Увидьте разницу сами на nextpy.org.

Улучшенное поколение ИИ: ‍🤖

  • 🧠 Эффективнее, чем цепочки команд или инженерия запросов - Next.py согласуется с паттернами обработки LLM, обеспечивая точный контроль выходных данных и оптимальное использование модели.
  • 💡 Оптимизировано для генерации кода - Независимо от используемых LLM, запросов или тонкой настройки, архитектура приложения значительно влияет на эффективность генерации кода. Архитектура Next.py специально разработана для максимизации эффективности.
  • 💾 Состояние сессии с LLM - Эффективно поддерживайте состояние с LLM, используя кэши KV для преобразования множественных выходных токенов в пакеты запросов. Этот подход сокращает избыточные генерации, ускоряя обработку длинных и сложных запросов. (только для открытых моделей)
  • 🧪 Обнаружение синтаксических ошибок: Тестируйте код, сгенерированный LLM, выявляя и исправляя галлюцинации LLM, недопустимые методы Nextpy и автоматически генерируя запросы для бесшовного исправления.

Ориентированность на разработчиков: ❤️

  • 📘 Переносимые знания - Изучение Next.py включает в себя фундаментальные знания, не зависящие от фреймворков, повышая вашу экспертизу в разработке приложений и позволяя вам преуспеть в любых фреймворках.
  • 🛠️ Расширяемость - Если вы знаете, как что-то сделать на Python или на простом английском, вы можете интегрировать это с nextpy.

-----------------------------------------------------

🚀 Быстрый старт (3 mins)

Build a python webapp in 3 minutes

1. Установка Nextpy

Откройте терминал и приготовьтесь к приключению, которое запомнится на всю жизнь!

pip install nextpy

(Не забудьте, что требуется Python версии 3.7 или выше.)

2. Инициализация вашего приложения

Перейдите в желаемую директорию для вашего проекта в терминале. Используйте команду nextpy init, чтобы инициализировать шаблонное приложение в вашей новой директории.

nextpy init

3. Выбор вашего шаблона:

На данный момент просто нажмите Enter, чтобы автоматически выбрать шаблон по умолчанию.

    Blank Template: Простой шаблон одностраничного приложения
    Base Template: Многостраничное приложение с боковой панелью

4. Запуск приложения

В той же директории, где вы ранее выполнили команду nextpy init, введите следующую команду:

nextpy run

5. Просмотр приложения:

Посмотрите ваше приложение, посетив http://localhost:3000

[!ПРИМЕЧАНИЕ] Ваше приложение теперь полностью функционально. Чтобы посмотреть фронтенд, перейдите на localhost:3000. Сервер бэкенда доступен по адресу localhost:8000. Хотя вряд ли вы будете напрямую взаимодействовать с ним, документацию API бэкенда можно найти на localhost:8000/docs, а файл openapi.json расположен по адресу localhost:8000/openapi.json.

🎨 Начните с шаблона!

Мы ускоряем вашу разработку с постоянно пополняющимся списком шаблонов сообщества. Некоторые примеры:

Мощные таблицы Портфолио сайты Интерактивные диаграммы Искусственный интеллект чат Приложения CRUD Процесс ввода

Настройка шаблона

  1. Скопируйте файлы шаблона в вашу локальную папку.
  2. Установите необходимые зависимости с помощью pip install -r requirements.txt.
  3. Инициализируйте ваше приложение, запустив nextpy init.
  4. Запустите приложение командой nextpy run, чтобы увидеть его в действии. Чтобы проверить сайт, посетите localhost:3000.

➖ или ➖


🤣 Создание приложения для генерации шуток (5 минут)

Измените myapp/myapp.py, чтобы создать ваше приложение.

1. Импорт библиотек

import nextpy as xt
import pyjokes

Начните с импорта nextpy для разработки и pyjokes для случайных шуток.

2. Настройка состояния приложения

class State(xt.State):
    joke: str = "Нажмите кнопку, чтобы получить шутку!"

    def generate_joke(self):
        self.joke = pyjokes.get_joke()

Создайте класс State с переменной joke. Используйте generate_joke для получения новых шуток.

3. Дизайн главной страницы

def index():
    layout = xt.vstack(
        xt.text(State.joke, font_size="2em"),
        xt.button("Сгенерировать шутку", on_click=State.generate_joke),
    )
    return layout

Функция index организует отображение шутки и кнопку. vstack используется для вертикального стекинга компонентов, в то время как hstack используется для горизонтального стекинга.

4. Необязательное стилизирование

def index():
    layout = xt.vstack(
        xt.text(State.joke, font_size="2em"),
        xt.button("Сгенерировать шутку", on_click=State.generate_joke),

        spacing="1em",
        align_items="center",
        justify_content="center",
        height="100vh",
   )
    return layout

Атрибут spacing добавляет пространство между элементами text и button, в то время как align_items и justify_content обеспечивают центрирование этих элементов. Высота стека height устанавливается равной 100% высоты окна просмотра (100vh), что позволяет вертикальному стеку заполнить всю высоту экрана.

5. Настройка приложения

app = xt.App()
app.add_page(index)

Установите приложение, добавьте главную страницу. Чтобы просмотреть фронтенд, перейдите на localhost:3000.

-----------------------------------------------------

🛣️ Дорожная карта проекта

🌟 Предстоящие функции

  1. Магические компоненты фронтенда

    • 🪄 Резюме в PDF в персональный сайт: Создайте "магический компонент", который преобразует резюме в PDF в настраиваемые полноценные персональные сайты.
  2. Модули бэкенда

    • 🔐 Аутентификация пользователей и интеграция электронной почты: Добавьте модули для надежной функциональности входа в систему и подписки на электронную почту.
    • 🛒 Модули для блогов и электронной коммерции: Добавьте бэкенд-модули для управления блогами и веб-приложениями электронной коммерции.
  3. Оптимизация сборки и производительности

    • 🔧 Улучшение компилятора с помощью Rust или mojo: Переход нашего существующего компилятора на Rust или mojo для достижения более высокой производительности.
  4. Генеративный ИИ

    • 🐍 Nextpy LLM: Создайте лучшую Python LLM.
    • 💬 Функция копилота для конечного пользователя: Чат-копилот для пользователей приложений, который позволяет им взаимодействовать с вашим продуктом и выполнять действия текстом. У нас уже есть все модули для этого, нам просто нужно упростить абстракцию. Просто установите copilot = True в xtconfig, и вы должны быть готовы.

🤗 Присоединяйтесь к нам

Мы приветствуем участников всех уровней навыков! 🤝

Хотите внести свой вклад? Начните с создания форка нашего репозитория и отправки ваших пул-реквестов. Мы рады приветствовать вас в нашем сообществе. Вместе мы создадим действительно замечательный продукт! ✨

-----------------------------------------------------

Почему еще один фреймворк?

В нашем стремлении создать приложения, которые пишут себя, мы глубоко погрузились в лабиринт инструментов для кодирования, фреймворков и библиотек. Наши эксперименты охватывали все основные крупные языковые модели (LLMs), тысячи запросов и каждый основной фреймворк веб-разработки, от React до Streamlit.

Прозрение

Tip

Мы обнаружили, что выбор основного фреймворка приложений значительно влияет на эффективность генерации кода, независимо от LLM, запросов или методов тонкой настройки.

Изначально гибкость Reflex казалась многообещающей, соответствуя нескольким нашим требованиям. Однако в процессе экспериментов с различными веб-приложениями появились существенные пробелы в функциональности. Заполнение этих пробелов потребовало большого количества "склеивающего кода", что значительно замедлило разработку.

В течение нескольких месяцев мы сопротивлялись желанию изобретать велосипед и пытались собрать разные инструменты, чтобы воплотить нашу мечту в жизнь. Вместо создания фреймворка с нуля, мы стремились создать предвзятый набор для старта приложений, выборочно интегрируя лучшие функции из топовых фреймворков. Хотя мы все еще рассматриваем этот проект как набор для старта полнофункционального приложения, а не как фреймворк, различие становится несколько размытым, поскольку мы разработали несколько пользовательских модулей и приняли конкретные дизайнерские решения.

Этот новый фреймворк сочетает в себе простоту Streamlit с скоростью и адаптивностью Next.js. Для серверной части мы выбрали FastAPI за его простоту, в сочетании с Pydantic для надежной проверки типов. Наш фронтенд был создан с использованием настроенной версии библиотеки Reflex, дополненной новыми компонентами. В настоящее время мы занимаемся переработкой основного компилятора Python в JavaScript для оптимизации скорости. Кроме того, мы приняли SQLModel и SQLAlchemy для подключения к базам данных. Также мы разработали отдельные функции специально для генеративного ИИ. Мы создали базу данных на основе JSON, которая использует JSON в качестве среды хранения данных, обеспечивая при этом возможности, подобные SQL.

Наша миссия? Сделать Next.py самым эффективным фреймворком приложений для людей и ИИ!

Хотите узнать больше? Посмотрите наш манифест! https://nextpy.org/manifesto/

🙏 Спасибо

Фреймворк Nextpy - это передовой инструментарий для разработки приложений, оптимизированный для генерации кода на основе искусственного интеллекта, созданный в духе сотрудничества открытого сообщества. Он интегрирует ключевые компоненты из знаковых проектов, таких как Guidance, Llama-Index, FastAPI-Mail, LangChain, ReactPy, Reflex, Chakra, Radix, Numpy и Next.js, а также использует идеи из экосистем React и Rust. Это слияние идей играло ключевую роль в формировании Nextpy как фреймворка, который не только дружественен к ИИ, но и является пионером в инструментах генеративной веб-разработки.

Мы глубоко признательны создателям, участникам и сопровождающим открытого исходного кода, чья работа послужила основой для Nextpy. Ваше стремление к инновациям и открытости было жизненно важным для формирования этого фреймворка. Ваши вклады не только улучшили Nextpy, но также продвигают новую эру разработки программного обеспечения на основе ИИ. Спасибо за то, что вы стали катализаторами и соучастниками этого трансформационного путешествия.