A wrapper for FastAPI to automatically generate a frontend
Project description
From backend to frontend with one line
Don't waste hours generating a frontend for your users.
https://github.com/axelpey/natural-frontend/assets/1381992/dbef93fa-6313-4122-902b-9109961abeec
Features
- Works with 2 major backend frameworks: (https://flask.palletsprojects.com/en/2.3.x/)[Flask] and (https://fastapi.tiangolo.com/)[FastAPI]
- Natural Frontend understands your codebase and the potential user personas for your product.
- On the
/frontend
endpoint, select a user persona and NF will generate a tailored frontend.
Coming soon:
- Save your generated frontends to modify them later.
- Use local models instead of OpenAI.
Usage
⬇️ Installation
With pip: pip install natural-frontend
➕ Add to your code
With FastAPI
Just add one-line to your api project:
from fastapi import FastAPI
from natural_frontend import NaturalFrontend
openai_key = "sk-..."
app = FastAPI()
app = NaturalFrontend(app, openai_key)
@app.get("/books")
async def get_books():
return books_db
@app.post("/books")
async def add_book(book: Book):
books_db.append(book.dict())
return {"message": "Book added successfully"}
class Book(BaseModel):
id: int
title: str
author: str
genre: str
With Flask
It's the same!
from flask import Flask
from natural_frontend import NaturalFrontend
openai_key = "sk-..."
app = Flask(__name__)
app = NaturalFrontend(app, openai_key)
⚙️ Options
You can provide options to customize your Natural Frontend:
nf_options = NaturalFrontendOptions(
colors={"primary": "lightblue", "secondary": "purple"},
personas=[{"Bookworm": "Loves to look for new books"}],
cache_expiry_time=600,
frontend_endpoint="frontend",
)
app = NaturalFrontend(app, openai_key, nf_options)
Documentation of options:
colors
: Customize the color themes of the frontend. Use two keys: "primary" and "secondary".personas
: Add custom personas for your frontend. NF will guess more until there's a total of 5 personas.cache_expiry_time
: Set the time in seconds before the generation cache expires.frontend_endpoint
: Change the endpoint of the frontend.
Development
We're happy to get contributors working with us! Follow the instructions below to quickly setup your local environment.
Running the Application
-
(Optional) Use virtualenv to quickly setup your environment:
virtualenv venv && source venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt
-
Run one of the example applications:
uvicorn example.APP.main:app --reload
where APP is one in theexamples
directory.
(With Docker)
-
Make sure you have Docker installed
-
Run
docker compose up --build
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file natural_frontend-0.1.1.tar.gz
.
File metadata
- Download URL: natural_frontend-0.1.1.tar.gz
- Upload date:
- Size: 235.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 779939f5a18ff906fb39f52657f95f0a90909d9abbbc65f0d0043bf58d5d663e |
|
MD5 | a0a726fbd4c9d8ab0ed67790f3be80b1 |
|
BLAKE2b-256 | 95283cf29f727a30fda8b1317e91f671f93f686a76601e01db54a04a46046b09 |
File details
Details for the file natural_frontend-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: natural_frontend-0.1.1-py3-none-any.whl
- Upload date:
- Size: 229.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d76bff98b09eb41307b0756c319926f26a5a0866d4cd39bd854e84856618a9b2 |
|
MD5 | 48cda5c813313815b9120855a288de5a |
|
BLAKE2b-256 | d8173c77c8c6bc1eeecf11439048ba1b45773fe1179bef952c3147cc9f5e962f |