npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@baselinejs/ai-stack

v0.0.6

Published

A AI chat app built on Baseline

Downloads

51

Readme

1688515420018

Baseline AI Stack

BaselineJS AI Stack is an open-source, fullstack TypeScript, serverless first framework designed to make building cloud native applications easier. This is a customized version of BaselineJS that demonstrates how Bedrock AI can be integrated into the BaselineJS framework in a working application.

If you like BaselineJS give us a ⭐️

Baseline AI Stack

Baseline | Website | Documentation | Discord | LinkedIn | YouTube

Startups, want $10k USD of AWS Credits to Get Started? Apply Here

Getting Started

You have 3 different options to setup Baseline AI Stack:

  1. Workshop Form
  2. Quickstart
  3. Setup

Workshop Form

A simplified deployment to try out the Baseline AI Stack can be found at Baseline AI Workshop. This will guide you through the process of deploying the Baseline AI Stack to your AWS account. This is the easiest no code way to get started.

Quickstart

  1. npx @baselinejs/quickstart-ai and follow the setup instructions

Setup

Alternatively, follow the setup instructions below.

  1. Install requirements pnpm run install:requirements
  2. npx @baselinejs/create-ai
  3. pnpm install
  4. pnpm run setup to name your project and set the region
  5. pnpm run aws:profile to setup your AWS credentials profile (if you have issues please update aws cli)
  6. pnpm run deploy:staging to deploy api & chat
  7. pnpm run add:user:staging to add a chat user to the application
  8. pnpm run urls:staging To see your project URLs

Setup the AI settings

packages/api/src/baseblocks/chat/chat-api.ts contains the settings for the AI model. Set them to the desired values. Deploy the application again after changing these settings with pnpm run deploy:staging.

The settings are as follows:

const MODEL_REGION = 'ap-southeast-2';
const MODEL_ID = ModelIdentifiers.MISTRAL_MISTRAL_7B_INSTRUCT_V0;
const MAX_INPUT_TOKENS = 100000;
const MAX_OUTPUT_TOKENS = 100000;
const MAX_COMPUTE_MS = 1000000;
const MAX_TOTAL_TOKENS = 0; // No limit
const GLOBAL_MAX_INPUT_TOKENS = 1000000;
const GLOBAL_MAX_OUTPUT_TOKENS = 1000000;
const GLOBAL_MAX_COMPUTE_MS = 10000000;
const GLOBAL_MAX_TOTAL_TOKENS = 0; // No limit

Explanation of the settings:

  • MODEL_REGION: The region of the AI model.
  • MODEL_ID: The ID of the AI model. See the Bedrock AI docs for list.
  • MAX_INPUT_TOKENS: The maximum number of tokens in the input to the AI model.
  • MAX_OUTPUT_TOKENS: The maximum number of tokens in the output from the AI model.
  • MAX_COMPUTE_MS: The maximum time in milliseconds the AI model can take to compute.
  • MAX_TOTAL_TOKENS: The maximum number of tokens in the input and output combined.
  • GLOBAL_MAX_INPUT_TOKENS: The maximum number of tokens in the input to the AI model for all users combined.
  • GLOBAL_MAX_OUTPUT_TOKENS: The maximum number of tokens in the output from the AI model for all users combined.
  • GLOBAL_MAX_COMPUTE_MS: The maximum time in milliseconds the AI model can take to compute for all users combined.
  • GLOBAL_MAX_TOTAL_TOKENS: The maximum number of tokens in the input and output combined for all users combined.

Set any of them to 0 to disable the limit.

The user and global limits will be enforced by the API. If the limits are exceeded, the API will return an error. The user limits are enforced per user, and the global limits are enforced for all users combined. A DynamoDB table is used to store the usage of each user as well as the default values, that way any user can be tracked and the limits can be enforced as well as modified.

Local Requirements

These must be installed before following the setup instructions.

Experimental Requirements Installation

Alternatively, try the experimental requirements installation script. Use at your own risk.

If you are starting a new Baseline project.

curl -o- https://raw.githubusercontent.com/Baseline-JS/core/main/scripts/experimental-install-requirements.sh | bash

or

wget -qO- https://raw.githubusercontent.com/Baseline-JS/core/main/scripts/experimental-install-requirements.sh | bash

If you are joining an existing Baseline project

pnpm run install:requirements

Run Locally

If the project is already setup and you are trying run the project locally make sure you run pnpm run aws:profile first so that you have the correct credentials for AWS configured locally.

Commands

Start the api and chat in their own terminal windows/tabs with the following commands.

  1. pnpm run generate:env:local to generate the env files for the frontend clients
  2. pnpm run start:api
  3. pnpm run start:chat

Running locally Limitations

  • API, Chat: No S3, you will need to rely on AWS staging S3
  • API: No local Cognito Authorizer, the deployed staging cognito can be used (see packages/api/serverless.yml) or the payload set by AUTHORIZER in packages/api/scripts/run-api-local.sh.
  • Chat: Cognito UI relies on an active AWS Cognito user pool, use deployed staging

Deploy a Change

Swap staging to prod to deploy to production. All environment variables will be automatically set in the process.

  1. pnpm run deploy:staging to deploy api and chat

Remove Stack

To destroy the deployed cloudformation stacks so it is no longer on AWS run pnpm run remove:staging. This will likely destroy all data associated with the application.

Major Components

  • 🚀 API
  • 🌐 React User Application
  • ⚙️ CI/CD
  • 🔧 Developer Tooling
  • 🔒 Authentication
  • 🔄 Multiple Environments
  • 💻 Run Locally
  • 🏗️ Infrastructure as Code (IaC)
  • 📦 Managed Environment Variables
  • ✨ Baseline Commands

Technology

  • 🎁 Package Management: Pnpm + Monorepo
  • 🔨 Language & Build: TypeScript + ESBuild
  • 🖼 Frontend: React + Vite
  • ⚙️ Backend: NodeJS + Express
  • 🎨 Linting & Formatting: Prettier + Eslint
  • 🏗 IaC: AWS + Serverless Framework
  • 🚀 Deploy: Local/Bitbucket/GitHub CI/CD

AWS Services

  • Cognito
  • S3
  • Lambda
  • DynamoDB
  • CloudFormation
  • Route53
  • Systems Manager
  • CloudFront
  • API Gateway
  • CloudWatch
  • SNS

What can you build with Baseline?

  • 🌐 SaaS Solutions: Build software-as-a-service solutions tailored to your audience.
  • 🖥️ Web Applications: Develop responsive and scalable web applications.
  • 🛒 Marketplaces: Launch and manage online marketplaces with ease.
  • 📱 Mobile Applications: Create robust mobile apps for iOS and Android platforms.
  • 💼🛍️ B2B/B2C Applications: Seamlessly cater to both business and consumer audiences.
  • 🗄️ Headless CMS: Manage content efficiently using a headless content management system.

Benefits

  • Serverless First
  • Open source
  • Full control
  • Cost effective implementation
  • Hosted in your own AWS account
  • Uses popular technology
  • Scales on demand
  • Staging and production environments
  • Runs locally

Baseline

If you would like to learn more about what we do please visit Baseline