Skip to content
This repository has been archived by the owner on Aug 27, 2024. It is now read-only.

Commit

Permalink
Updated Readme (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
maxyu1115 authored Aug 26, 2023
1 parent e7846e7 commit 7e15b77
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 40 deletions.
55 changes: 55 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Contributing to MeMaS
Hi there! Thank you for even being interested in contributing to MeMaS. As an open source project in a rapidly developing field, we are extremely open to contributions, whether they be in the form of new features, improved infra, better documentation, or bug fixes.

To contribute to this project, please follow the [fork and pull request](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) workflow. Please do not try to push directly to this repo unless you are maintainer.

**For new features/bigger changes, talk to maintainers in the discord before you set off.**

## Development Guide

### Prerequiste
Python 3.10 and docker + linux. The code breaks on python 3.8 and below, and 3.9 is untested.

### Development Setup

Run `source setup-env.sh`, this will install all the needed development tools, as well as setup the needed environment variables.

### Running Docker
In the top level of this repo, run `docker compose up`, and it will spin up 1 es nodes, 1 scylla nodes, 1 milvus node, and a few more. This is a very basic development setup.

May need to run `sysctl -w vm.max_map_count=262144`.

### Initializing the MeMaS server
Due to the dependencies, the first time running MeMaS, we need to use a special command to initialize and configure the dependencies.

After `source setup-env.sh` and `docker compose up`, wait till the services are fully started.

Then run
```
flask --app 'memas.app:create_app(config_filename="memas-config.yml", first_init=True)' run
```

This will run for a while then exit. Upon exit, your MeMaS is properly setup.

### Running the MeMaS server
After `source setup-env.sh` and `docker compose up`, wait till the services are fully started.

Then run
```
flask --app 'memas.app:create_app(config_filename="memas-config.yml")' run
```
to start the memas server

To run the app with wsgi server, run
```
gunicorn -w 1 -k eventlet 'memas.app:create_app(config_filename="memas-config.yml")'
```
note `-w` sets the number of worker threads.

### Running Integration Tests
After `source setup-env.sh` and `docker compose up`, wait till the services are fully started.

Then run
```
python3 -m pytest integration-tests
```
68 changes: 28 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,32 @@
# MeMaS

## Development Setup
Run `source setup-env.sh`, this will install all the needed development tools, as well as setup the needed environment variables.

### Running Docker
In the top level of this repo, run `docker compose up`, and it will spin up 1 es nodes, 1 scylla nodes, 1 milvus node, and a few more. This is a very basic development setup.

May need to run `sysctl -w vm.max_map_count=262144`.

### Initializing the MeMaS server
Due to the dependencies, the first time running MeMaS, we need to use a special command to initialize and configure the dependencies.

After `source setup-env.sh` and `docker compose up`, wait till the services are fully started.

Then run
# MeMaS: a Long Term Memory Store for AI Chatbots and Agents
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![](https://dcbadge.vercel.app/api/server/j2NvzK5qN7?compact=true&style=flat)](https://discord.gg/j2NvzK5qN7)

**MeMaS**, abbreviated from Memory Management Service, is a Long Term Memory Store designed for AI Chatbots and Agents. We offer a simple memory abstraction (`recall` and `memorize`), as well as tools for admins to manage memory.

## Why MeMaS?
- A dedicated solution for chatbot/agent memory.
- Works out of the box and APIs easy to integrate.
- We save you the time and effort to implement your own memory.
- Store knowledge as well as chat memory.
- Use for Retrieval Augmented Generation and can reduce hallucination.
- Reduce need of fine tuning/retraining.
- Manage what the chatbot knows through Corpuses and Access Control
- Improved visibility and debuggability, parts of LLMs are no longer black boxes
- Fine grain and real time control over even individual chatbots

## Get Started
### Setting up the server
TODO, right now follow [CONTRIBUTING.md](CONTRIBUTING.md)
### Client and SDK
We offer client and sdks in 5 languages. Read more in the [api package](https://github.com/memas-ai/MeMaS-api). Example for python:
```
flask --app 'memas.app:create_app(config_filename="memas-config.yml", first_init=True)' run
pip install memas-client
pip install memas-sdk
```
Notice that there's both a `memas-client` and a `memas-sdk`. Read more in our documentation! TODO: add hyperlink

This will run for a while then exit. Upon exit, your MeMaS is properly setup.
## Contributing
As an opensource project, contributors are extremely welcome! Read [CONTRIBUTING.md](CONTRIBUTING.md) for more details.

### Running the MeMaS server
After `source setup-env.sh` and `docker compose up`, wait till the services are fully started.

Then run
```
flask --app 'memas.app:create_app(config_filename="memas-config.yml")' run
```
to start the memas server

To run the app with wsgi server, run
```
gunicorn -w 1 -k eventlet 'memas.app:create_app(config_filename="memas-config.yml")'
```
note `-w` sets the number of worker threads.

### Running Integration Tests
After `source setup-env.sh` and `docker compose up`, wait till the services are fully started.

Then run
```
python3 -m pytest integration-tests
```
Also join our community discord server, linked at the top!

0 comments on commit 7e15b77

Please sign in to comment.