Skip to content

Self-hosted and local-first application for inference and RAG on consumer grade hardware.

License

Notifications You must be signed in to change notification settings

SkywardAI/kirin

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3baf287 Β· Jul 21, 2024
Jul 14, 2024
Jul 14, 2024
Jul 14, 2024
Jul 21, 2024
Jul 9, 2024
Jul 8, 2024
Jul 9, 2024
Mar 29, 2024
Jul 9, 2024
Mar 16, 2024
Apr 13, 2024
Apr 13, 2024
Apr 1, 2024
Jul 21, 2024
Jul 16, 2024
Apr 28, 2024
Apr 8, 2024
Jul 21, 2024
Jul 17, 2024
Jul 21, 2024
Jun 18, 2024

Repository files navigation

Kirin

Linter and Builder πŸš€ Release Drafter πŸš€ Releasing Image πŸš€ CodeQL

Architecture

Doing inference on 8 CPUs

v013demo.mov

Requirements

See Requirements.md

Quick setup

See quick start

Tech stack

This is a repository is the API aggregator of SkywardAI. It's using the following tech stack:

When the Docker is started, these are the URL addresses:

  • Backend Application (API docs) β†’ http://localhost:8000/docs
  • Database editor (Adminer) β†’ http//localhost:8081

Why the above Tech-Stack?

Well, the easy answer is Asynchronousity and Speed!

  • FastAPI is crowned as the fastest web framework for Python and thus we use it for our backend development.
  • The database of my choice is the asynchronous version of PostgreSQL (via SQLAlchemy 2.0). Read this blog from Packt if you want to educate yourself further about the topic Asynchronous, Synchronous, Concurrency, and Parallelism.
  • Docker is a technology that packages an application into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime.

Other Technologies

The above-listed technologies are just the main ones. There are other technologies utilized in this project template to ensure that your application is robust and provides the best possible development environment for your team! These technologies are:

  • CodeCov β†’ A platform that analyzes the result of your automated tests.
  • PyTest β†’ The testing framework for Python code.
  • DBDiagram β†’ A platform that lets your design your database by writing SQL and converting it into ERD. This platform provides a complete symbol for entity relationships (not like many other platforms!).
  • GitHub Actions β†’ The platform to setup our CI/CD by GitHub.
  • SQLAlchemy 2.0 β†’ The go-to database interface library for Python. The 2.0 is the most recent update where it provides an asynchronous setup.
  • CODEOWNERS β†’ A file for distributing the responsibilities in our project to each team/teammate.

Build and deployment

Build and Deployment

Also See deployment. And if you are interested in docker-in-docker development, see Development.md

Acknowledgements

LICENSE

This project is licensed under the terms of the Apache 2.0 license. See the LICENSE file.