___ _ _ ___
/ __| |_ __ _(_)_ _ | __| _ _ _ _ _
| (__| ' \/ _` | | ' \ | _| || | '_| || |
\___|_||_\__,_|_|_||_||_| \_,_|_| \_, |
|__/
e0 a4 b8 e0 a4 a4 e0 a5 8d e0 a4 af e0 a4
ae e0 a5 87 e0 a4 b5 20 e0 a4 9c e0 a4 af
e0 a4 a4 e0 a5 87
π¦ The open source chaining engine behind Tune Chat and Tune Studio.
Read the Docs
The documentation page contains all the information on using chainfury
and chainfury_server
.
Here's a few example to get your journey started on Software 2.0:
- π Retrieval Augmented Generation (RAG): Load a PDF and ask it questions, read docs
- ποΈ Image generation using Stability: Generate your world, read here
- π Private Storage: Privately store the data on AWS S3, read privacy
There are two separate packages built into this repository, first is chainfury
which contains the fury-engine for running
the DAGs and chainfury_server
which contains the self hosted server for the GUI.
pip install chainfury
pip install chainfury_server
# to launch the server
python3 -m chainfury_server
Easiest way to run the server is to use docker. You can use the following command to run ChainFury:
docker build . -f Dockerfile -t chainfury:latest
docker run -p 8000:8000 chainfury:latest
To pass any env variables you can use the command:
docker run --env ENV_KEY=ENV_VALUE -p 8000:8000 chainfury:latest
Checkout all the:
component
environment variables herechainfury
specific variables herechainfury_server
specific variables here
Here's a breakdown of folder:
chainfury/
contains the chainfury engineserver/
contains the chainfury serverclient/
contains the frontend code for the GUIapi_docs/
contains the documentation
To build the entire system from scratch follow these steps:
git clone https://github.com/NimbleBoxAI/ChainFury
cd ChainFury
python3 -m venv venv
source venv/bin/activate
You will need to have yarn
installed to build the frontend and move it to the correct location on the server
sh build_ui.sh
Once the static files are copied we can now proceed to install dependecies:
pip install -e . # editable install the chainfury
pip install -e server/. # editable install the chainfury_server
python3 -m chainfury_server
You can now visit localhost:8000 to see the GUI and sign in with the default username password admin:admin
.
There are a few test cases for super hard problems like get_kv
which checks the chainfury.base.get_value_by_keys
function.
python3 tests/main.py
ChainFury is an open-source project used in production. We are open to contributions to the project in the form of features, infrastructure or documentation.
- If you're looking for help with your code, hop onto Discord, so that community can help you get to answer faster.
- We would appreciate help towareds writing more tests, see what we have in tests folder