Skip to content

Latest commit

 

History

History
300 lines (218 loc) · 22.6 KB

README.md

File metadata and controls

300 lines (218 loc) · 22.6 KB

Caution

This is an LLM generated translation. If you are proficient in Ukrainian, 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.
  • 🎨 Багата бібліотека UI - Понад 100 повністю налаштовуваних вбудованих компонентів для швидкої розробки інтерфейсу користувача.
  • ⚛️ Використовуйте потужність React з Pythonic обгортками - Використовуйте величезний екосистему 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

Note

Тепер ваш додаток повністю функціональний. Щоб побачити фронтенд, перейдіть до 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 і ви повинні бути готові до роботи.

🤗 Долучайтесь

Ми вітаємо учасників будь-якого рівня навичок! 🤝

Хочете зробити внесок? Почніть з клонування нашого репозиторію та надсилання ваших запитів на злиття. Ми раді вітати вас у нашій спільноті. Разом ми створимо щось справді видатне! ✨

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

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

У нашому прагненні створити додатки, які пишуть себе самі, ми глибоко занурилися в лабіринт інструментів кодування, фреймворків та бібліотек. Наші експерименти охопили всі основні великі моделі мов (LLM), тисячі запитів та кожен основний фреймворк розробки веб-сайтів, від 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 Framework — це передовий фреймворк для розробки додатків, оптимізований для генерації коду на основі ШІ, створений на дусі співпраці відкритого коду. Він інтегрує ключові компоненти з визначних проектів, таких як Guidance, Llama-Index, FastAPI-Mail, LangChain, ReactPy, Reflex, Chakra, Radix, Numpy та Next.js, а також використовує здобутки екосистем React та Rust. Це злиття ідей мало вирішальне значення для формування Nextpy як фреймворку, який не лише дружній до ШІ, але й піонерський у сфері інструментів генеративної веб-розробки.

Ми глибоко вдячні творцям, учасникам та обслуговуючим відкритого коду, чия робота стала основою для Nextpy. Ваша прихильність до інновацій та відкритості мала вирішальне значення для формування цього фреймворку. Ваші внески не лише покращили Nextpy, але й сприяють розвитку нової ери розробки програмного забезпечення на основі ШІ. Дякуємо вам за те, що стали каталізаторами та сприяли цій трансформаційній подорожі.