This repository has been archived by the owner on Aug 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
83 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |