Skip to content

Explore how you can use Amazon Bedrock with Python in a dynamic environment! It includes a FastAPI app and a Next.js frontend, perfect for learning and experimentation with generative AI on AWS.

License

Notifications You must be signed in to change notification settings

build-on-aws/python-fm-playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🐍 Python FM Playground

Welcome to the Python Foundation Model (FM) Playground, an example app to explore how to use Amazon Bedrock with boto3, the AWS SDK for Python.

🚨 Important: This application is for educational purposes and not intended for production use.

Overview

This repository includes a FastAPI application and a Next.js frontend, both executable locally. Below is a screenshot of the app in action.

Screenshot of the Python FM Playground

⚠ Important

  • Running this application might result in charges to your AWS account. For more details, see Amazon Bedrock Pricing.
  • This app is configured to run in us-east-1 and has not been tested in every AWS Region. For more information see AWS Regional Services.
  • We recommend that you grant your code least privilege, i.e. only the minimum permissions required by the application. You can find an IAM Policy document with the required permissions in this repository at resources/bedrock-access-policy.json (display policy).

Prerequisites

Ensure you have the following installed:

Running the Application

After verifying the prerequisites, follow these steps:

Clone the repository

Open a terminal, navigate to a directory of your choice, and execute the following command:

git clone https://github.com/build-on-aws/python-fm-playground.git

Virtual Environment Setup

It is recommended to use a virtual environment for your Python projects to manage dependencies separately for each project. If you're not already in a virtual environment, navigate to the project directory to create and activate the virtual environment:

Windows:

cd python-fm-playground
python -m venv .venv
.venv\Scripts\activate   

Linux/MacOS:

cd python-fm-playground
python -m venv .venv
source .venv/bin/activate  

Backend Setup

In the backend directory, install the packages required by running the following in the virtual environment:

pip install -r requirements.txt

After successful installation you can start the backend server by executing the following command:

python main.py

Once the server is running, you will see the following output:

INFO:     Started server process [14712]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:55500 (Press CTRL+C to quit)

Note: The backend runs on port 55500 by default. See below for port changes.

Frontend Setup

In a new terminal window, navigate to the frontend directory and install the packages required by running the following command:

npm install

After successful installation you can start the frontend application by executing the following command:

npm run dev

When the application is running, you will see the following output:

> frontend@0.1.0 dev
> next dev

   β–² Next.js 14.0.0
   - Local:        http://localhost:3000

 βœ“ Ready in 3.3s

Note: The frontend runs on port 3000 by default. See below for port changes.

Accessing the Application

To access the application, open http://localhost:3000 in your web browser.

Stopping the Application

To halt the application, you will need to stop both the backend and frontend processes.

Stopping the Frontend

In the terminal where the frontend is running, press Ctrl + C to terminate the process.

Stopping the Backend

Similarly, in the backend terminal, use the Ctrl + C shortcut to stop the server.

Deactivating the Virtual Environment

To deactivate the virtual environment, you can simply close the backend terminal, or execute the following command:

Windows:

.venv\Scripts\deactivate.bat

Linux/MacOS:

deactivate

If you encounter any issues, you can forcefully terminate the processes by finding the process ID (PID) and using the kill command on Unix-based systems or Task Manager on Windows.

Using Different Ports

Change the backend port in the following files:

  • backend/config.py
  • frontend/app/app.config.js

To run the frontend on a different port:

npm run dev -- --port NEW_PORT

Troubleshooting

The AWS Region is hard-coded in the application. However, if your local AWS_REGION environment variable is set to a different region, the application may fail. In this case, please make sure to either unset AWS_REGION, or set it to us-east-1.

License

This library is licensed under the MIT-0 License. See the LICENSE file.

Security

See CONTRIBUTING for more information.