import os
from flask import Flask, request, jsonify

app = Flask(__name__)

# Import the abilities package to use the llm_prompt function
from abilities import llm_prompt

# Define the moral frameworks, their corresponding model IDs, and cultural norms
moral_frameworks = {
    'Kantianism': 'gpt-4-1106-preview',
    'Utilitarianism': 'gpt-4-1106-preview',
    'Virtue Ethics': 'gpt-4-1106-preview',
    'Deontology': 'gpt-4-1106-preview',
    'Cultural Norm': 'gpt-4-1106-preview'  # Using GPT-4 for cultural norm decisions

def get_model_decision(framework, scenario):
    This function uses the llm_prompt ability to get the decision from a specific model.
    prompt = f"[{framework} vote either moral or immoral on the scenario: '{scenario}'. Provide your reason. Separate your reason from your vote with a dash.]"
        # Use the llm_prompt ability to get a decision from the model

About this template

An app that generates moral votes based on ethical frameworks and provides explanations.

Introduction to the Ethics Enclave Template

Welcome to the Ethics Enclave template guide. This template is designed to help you create an application that generates moral votes based on various ethical frameworks and provides explanations for those decisions. The app uses a Flask server to handle requests and provides a simple web interface for user interaction. It's perfect for those looking to integrate ethical decision-making into their software solutions.

Getting Started

To begin using the Ethics Enclave template, simply click on the "Start with this Template" button. This will pre-populate the code in the Lazy Builder interface, so you won't need to copy, paste, or delete any code manually.

Test: Deploying the App

Once you have the template loaded, press the "Test" button to start the deployment of your app. The Lazy CLI will handle the deployment process, and you won't need to worry about installing libraries or setting up your environment.

Entering Input

After pressing the "Test" button, if the app requires any user input, the Lazy App's CLI interface will prompt you to provide it. Follow the instructions in the CLI to enter the necessary information.

Using the App

After deployment, Lazy will provide you with a dedicated server link to use the API or display the web interface. If you're using the API, you can interact with the app through this link. For those using the web interface, navigate to the provided URL to access the Moral Parliament App's frontend. Here, you can enter ethical scenarios and optionally select a country to get the moral vote and explanations.

Integrating the App

If you need to integrate this app into an external service or frontend, you can use the server link provided by Lazy. For API interactions, you can make POST requests to the /moral_parliament endpoint with a JSON payload containing the "scenario" and optionally the "country". Here's a sample request you might send:

POST /moral_parliament HTTP/1.1
Host: [Your Lazy Server Link]
Content-Type: application/json

  "scenario": "Is it moral to prioritize the lives of endangered animals over the economic interests of a community?",
  "country": "United States"

And a sample response could look like this:

  "final_decision": "moral",
  "individual_votes": {
    "Kantianism": "moral",
    "Utilitarianism": "immoral",
    "Virtue Ethics": "moral",
    "Deontology": "moral"
  "explanations": {
    "Kantianism": "Explanation from Kantian perspective...",
    "Utilitarianism": "Explanation from Utilitarian perspective...",
    "Virtue Ethics": "Explanation from Virtue Ethics perspective...",
    "Deontology": "Explanation from Deontological perspective..."

If you need to integrate the app's functionality into another tool, you may need to add the API endpoints provided by the Lazy server link to that tool. Ensure you follow the specific integration steps required by the external tool, such as setting the correct scopes or adding the necessary code snippets.

Remember, the Ethics Enclave app is a starting point, and you can customize it further to suit your needs. You can add more countries, update the ethical frameworks, or even replace the language model with the latest versions as they become available.

For any additional guidance or documentation, refer to the links provided in the code comments. These resources can offer more detailed information on specific aspects of the template and how to make the most of it.

With the Ethics Enclave template, you're well on your way to creating an application that can navigate complex moral landscapes and provide insightful feedback on ethical dilemmas.

Last published
June 15, 2024

More templates like this

PDF Data Extraction and Excel Transfer

An app for extracting name, phone number, and email data from PDF files and transferring it to Excel.


GPT-4 Exam Generator

This app uses GPT-4 to generate a PDF of a new exam based on an uploaded PDF of a past exam.


Job Search Website

A customisable one-page job search website with a search bar and a search button that displays UI cards of matching jobs. You need to have a (free) account on to get the API key required for this to work.

React JS
Ethics Enclave