|
|
||
|---|---|---|
| api | ||
| archive | ||
| example | ||
| sdk | ||
| .dockerignore | ||
| .env.template | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| fly.toml | ||
| poetry.lock | ||
README.md
Honcho
A User context management solution for building AI Agents and LLM powered applications.
Read about the motivation of this project here.
Project Structure
The Honcho repo is a monorepo containing the server/API that manages database interactions and storing data about an application's state along with the python sdk for interacting with the API.
The folders are structured as follows:
api/- contains a FastAPI application that provides user context management routessdk/- contains the code for the python sdk and package hosted on PyPIexample/- contains example code for different use cases of honcho
This project utilizes poetry for dependency management
A separate changelog is managed for the sdk and api in their respective directories.
Usage
API
The API can be run either by installing the necessary dependencies and then specifying the appropriate environment variables.
- Create a virtualenv and install the API's dependencies
cd honcho/api/
source $(poetry run poetry env info --path)/bin/activate
poetry install
- Edit the
.env.templatefile to specify the type of database and connection_uri. For testing sqlite is fine.
Honcho has been tested with Postgresql and SQLite
DATABASE_TYPE=sqlite
CONNECTION_URI=sqlite:///./honcho.db
- Run the API via uvicorn
cd honcho/api
source $(poetry run poetry env info --path)/bin/activate
python -m uvicorn src.main:app --reload
Docker
Alternatively there is also a Dockerfile included to run the API server from a
docker container.
The .env file is not loaded into the docker container and should still be
configured from outside.
cd honcho/api
docker build -t honcho-api .
docker run --env-file .env -p 8000:8000 honcho-api:latest
Client SDK
Install the honcho client sdk from a python project with the following command:
pip install honcho-ai
alternatively if you are using poetry run:
poetry add honcho-ai
checkout the example folder for examples of how to use the sdk
Build Locally
For local development of the sdk you can build the sdk using poetry with the following commands.
cd honcho/sdk
poetry build
This will generate a dist/ folder within the honcho/sdk directory. The
dist/ will contain a wheel file. You can install the sdk in another local
project by specifiying the path to the wheel file in your installation command.
pip install ./dist/honcho-ai-0.0.1-py3-none-any.whl
Contributing
This project is completely open source and welcomes any and all open source contributions. The workflow for contributing is to make a fork of the repository. You can claim an issue in the issues tab or start a new thread to indicate a feature or bug fix you are working on.
Once you have finished your contribution make a PR pointed at the staging
branch, and it will be reviewed by a project manager. Feel free to join us in
our discord to discuss your changes or get
help.
Once your changes are accepted and merged into staging they will undergo a
period of live testing before entering the upstream into main
License
Honcho is licensed under the AGPL-3.0 License. Learn more at the License file