Anchoring AI
Why Anchoring AI? | Live Demo and Videos | Docker Deployment | Installation Guide
Why Anchoring AI?
Anchoring AI is an open-source no-code tool for teams to collaborate on building, evaluating, and hosting applications leveraging GPT and other large language models. You could easily build and share LLM-powered apps, manage your budget and run batch jobs. With Anchoring AI, managing access, controlling budgets, and running batch jobs is a breeze. We aim to be the destination of choice for transforming your team into an AI-centric powerhouse.
We provide:
- No-Code Interface: Quickly build apps with language models.
- Modular Design: Easily add your own models, datasets and extensions.
- Drag-and-Drop: Chain components to create powerful apps.
- Batch Processing: Efficiently handle evaluations and repetitive tasks.
- Prompt Management: Effortlessly manage your prompt and chains.
- Easy Sharing: Streamline collaboration and sharing.
- Secure Access: Customizable authentication for team management.
- Langchain Integration: Seamless compatibility with Langchain (Python).
- Optimized Caching: Reduce costs and boost performance.
Live Demo and Videos
Live Website
You can check out our Alpha Release here.
Videos
https://github.com/AnchoringAI/anchoring-ai/assets/20156958/eece7096-7e54-476e-a0f9-93926918ada1
Upcoming Features
- Expanded Language Model Support: Integration with more language models.
- Extended Capabilities: Additional extensions and a new chat mode.
- Advanced Evaluation Metrics: Custom modules for calculating evaluation metrics.
- Robust Security: Strengthened security measures.
- Enhanced Modularity: Improved standard components for increased flexibility.
Docker Deployment
If you prefer to deploy Anchoring AI using Docker, this section provides a step-by-step guide to do so.
Prerequisites
- Docker must be installed on your system.
Instructions
-
Clone the GitHub Repository
If you haven't already, clone the repository to your local machine.git clone https://github.com/AnchoringAI/anchoring-ai.git
-
Navigate to the Project Root Directory
cd anchoring-ai
-
Build the Docker Image
docker-compose build
-
Run Docker Containers
docker-compose up
Your application should now be accessible at localhost:3000
.
Teardown
-
Stop Docker Containers
docker-compose down
-
Remove All Docker Resources (Optional)
docker system prune -a
Installation Guide
This guide is primarily designed for Linux and macOS. Windows users can still follow along with some adjustments specified below.
Prerequisites
Before starting the installation, ensure you have administrator-level access to your system.
Note for Windows Users
- Install and start Redis which is not supported on Windows through Windows Subsystem for Linux (WSL).
- Comment out
uwsgi==2.0.21
inback-end/requirements.txt
as this package is not supported for Windows.- Add
--pool=solo
for the Celery worker args inback-end/src/celery_worker.py
to support batch jobs.
Step 1: Install MySQL 8.0
-
Download MySQL 8.0: Go to the official MySQL downloads page and download the MySQL 8.0 installer for your operating system.
-
Install MySQL: Run the installer and follow the on-screen instructions to install MySQL.
- Choose a setup type (Developer Default, Server only, etc.)
- Configure the server (if prompted)
- Set the root password and optionally create other users
-
Start MySQL:
- For Linux and macOS, you can usually start MySQL with the following command:
sudo systemctl start mysql
- For Windows, it often starts automatically or you can start it through the Services application.
- For Linux and macOS, you can usually start MySQL with the following command:
-
Verify Installation: Open a terminal and execute the following:
mysql --version
This should display the installed MySQL version.
Step 2: Install Redis 5.0.7
- Download Redis 5.0.7: Visit the official Redis downloads page and download the Redis 5.0.7 tarball or installer for your operating system.
- Install Redis:
- For Linux and macOS: Extract the tarball and run the following commands in the terminal:
cd redis-5.0.7 make make install
- For Windows: You may need to use Windows Subsystem for Linux (WSL) or a Redis Windows port.
- For Linux and macOS: Extract the tarball and run the following commands in the terminal:
- Start Redis:
- For Linux and macOS: You can usually start Redis by running:
redis-server
- For Windows: If you're using WSL, you can start it the same way as on Linux.
- For Linux and macOS: You can usually start Redis by running:
- Verify Installation: Open a new terminal and run:
If Redis is running, this will return "PONG".redis-cli ping
Step 3: Install Node.js v18.16.0
- Download and install Node.js version 18.16.0 from the official website.
- Verify the installation by running
node -v
in the terminal.
Step 4: Install Python 3.8.10
- Download and install Python version 3.8.10 from the official website.
- Verify the installation by running
python --version
orpython3 --version
in the terminal.
Step 5: Clone the GitHub Repository
Run the following command in the terminal:
git clone https://github.com/AnchoringAI/anchoring-ai.git
Step 6: Initialize and Configure Database
Initialize Database
-
Open your terminal and navigate to the
scripts
directory within your project:cd path/to/your/project/scripts
-
Open the MySQL shell by entering the following command:
mysql -u [your_username] -p
You will be prompted to enter the password for
[your_username]
. -
Once inside the MySQL shell, switch to the database you intend to use (if it already exists). Replace
[your_database]
with the name of your database:use [your_database];
-
Execute the
init_db.sql
script to initialize your MySQL database:source init_db.sql
Configure Database Connection in Code
-
Navigate to the
config.py
file located in theback-end/src
directory:cd path/to/your/project/back-end/src
-
Open
config.py
in your favorite text editor and locate theDevelopmentConfig
class. -
Update the database configuration class to match your MySQL settings:
class DevelopmentConfig(BaseConfig): USERNAME = '[your_username]' PASSWORD = '[your_password]' HOST = 'localhost' PORT = '3306' DATABASE = '[your_database]' DB_URI = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}?charset=utf8' SQLALCHEMY_DATABASE_URI = DB_URI
Replace [your_username]
, [your_password]
, and [your_database]
with the MySQL username, password, and database name you've chosen.
After completing these steps, your database should be initialized and your application configured to connect to it.
Step 7: Set Up Front-end
- Change your current directory to the
front-end
folder:
cd front-end
- Install all necessary packages:
npm install
- Start the front-end server:
npm start
Step 8: Set Up Back-end
- Change your current directory to the root directory and then navigate to
back-end
:
cd ..
cd back-end
- Install all required Python packages:
pip install -r requirements.txt
Step 9: Run the Application
-
Navigate to the
src
directory:cd src
-
Start the Python application:
- For Linux and macOS:
python3 app.py
- For Windows:
python app.py
- For Linux and macOS:
-
Start the Celery worker in the background:
- For Linux and macOS:
python3 celery_worker.py >> logs/celery_worker_log.txt 2>&1
- For Windows:
python celery_worker.py >> logs/celery_worker_log.txt 2>&1
- For Linux and macOS:
After completing these steps, you should be able to see the app running at localhost:3000.