ChainFury is a powerful tool that simplifies the creation and management of chains of prompts, making it easier to build complex chat applications using LLMs.
Project description
🦋 NimbleBox ChainFury
🦋 Build complex chat apps using LLMs in 4 clicks ⚡️ Try it out here. Used in production by chat.nbox.ai.
Read the Docs
The documentation page contains all the information on using chainfury
and chainfury_server
.
Looking for Inspirations?
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
Installation
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
Run Docker
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
From Source
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 stories/build_and_copy.sh
Once the static files are copied we can now proceed to install dependecies:
pip install setuptools
pip install -e . # editable install the chainfury
cd server
pip install -e . # editable install the chainfury_server
To start you can now do:
cd chainfury_server
python3 server.py
You can now visit localhost:8000 to see the GUI.
Contibutions
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.
-
Our issues page is kept up to date with bugs, improvements, and feature requests.
-
If you're looking for help with your code, hop onto GitHub Discussions board or Discord, so that more people can benefit from it.
-
Describing your issue: Try to provide as many details as possible. What exactly goes wrong? How is it failing? Is there an error? "XY doesn't work" usually isn't that helpful for tracking down problems. Always remember to include the code you ran and if possible, extract only the relevant parts and don't just dump your entire script. This will make it easier for us to reproduce the error.
-
Sharing long blocks of code or logs: If you need to include long code, logs or tracebacks, you can wrap them in
<details>
and</details>
. This collapses the content so it only becomes visible on click, making the issue easier to read and follow.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for chainfury-1.6.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f502ee2b8eca4ee5f4300d10a23736379f29e01268f8d730ca578b91da94bde3 |
|
MD5 | 3e5a0053ba4c9863533d26a275d198e0 |
|
BLAKE2b-256 | 8d28edfbd86d91247cb50c6332980b0a174147239050b206f650934b3a19f078 |