Skip to main content

A ML model serving library

Project description

Krypton ML

Krypton ML is a simple ML model serving framework with an emphasis on a config-driven approach. It's designed to make deploying machine learning models as API endpoints quick and easy.

Note: This project is currently in the experimental stage and only supports LangChain invocation.

Author: Varun Kruthiventi
Website: kryptonhq.com
PyPI Package: krypton-ml
GitHub Repository: krypton-ml

Features

  • Config-driven approach to model deployment
  • Easy integration with LangChain. More ML frameworks coming soon!
  • Support for text completion and chat-based chains currently for LangChain
  • Simple API deployment from configuration files

Installation

You can install Krypton ML using pip:

pip install krypton-ml

Usage

  1. Crate a LangChain model(chain) and save it as a Python file (e.g., langchain_example/app.py).
  2. The app.py should have a valid chain callable that can be invoked by Krypton framework.
  3. Create a configuration file (e.g., config.yaml) for your model:
krypton:
  models:
    - name: langchain-example # Name of the model
      type: langchain # Currently only LangChain is supported
      module_path: ./examples # Path to the directory containing the parent module
      callable: langchain_example.completion.chain # <parent_module>.<module>.<callable>
      endpoint: /langchain-example # API endpoint for the model
  server:
    host: 0.0.0.0 # Host to run the server on
    port: 8000 # Port to run the server on
  1. Run the Krypton ML server with your config file:
krypton config.yaml

This will start a server on http://0.0.0.0:8000 with the specified model endpoint.

Examples

Check out the examples folder in the repository for LangChain and Ollama based examples:

  1. Text completion chain
  2. Chat-based chain

These examples demonstrate how to deploy LangChain models as API endpoints using Krypton ML's config-driven approach.

Running Examples with Docker

cd examples
docker compose up -d

Pull the llama3.2:1b model in Ollama container

container_id=$(sudo docker ps | grep ollama | awk '{print $1}')
docker exec -it $container_id ollama pull llama3.2:1b

Test the example langchain endpoint which completes the text

curl -X 'POST' \
  'http://0.0.0.0:5000/langchain/llama3.2/completion' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"topic": "Iron man"}'

You should see the text completion as a response.

Contributing

We welcome contributions to Krypton ML! Please feel free to submit issues, fork the repository and send pull requests.

License

This project is licensed under the Apache License 2.0 License - see the LICENSE file for details.

Disclaimer

Krypton ML is currently in an experimental stage. Use in production environments is not recommended without thorough testing and validation.

For more information, visit kryptonhq.com or check out the GitHub repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

krypton_ml-0.1.8.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

krypton_ml-0.1.8-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file krypton_ml-0.1.8.tar.gz.

File metadata

  • Download URL: krypton_ml-0.1.8.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for krypton_ml-0.1.8.tar.gz
Algorithm Hash digest
SHA256 865838aba5e0ec36421bc83b6ee0881e3a050cc01d3791fb3e92e479de8c3ff8
MD5 a9a57887b4d21d03a2f2ebef274d91d3
BLAKE2b-256 002aaee0b84799b63a9acdf34ea031f395b4af6b54fe1949c7e91911aa648749

See more details on using hashes here.

File details

Details for the file krypton_ml-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: krypton_ml-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for krypton_ml-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0f1b4a525cf8b9279db084d061a7c8d0fe7400c1162f6711b61be234ef8b166b
MD5 1dfbf521b6929512948aa83087ccace7
BLAKE2b-256 326c11d24ed1d9c57d4f574824afc2144b5c18929f7feb227b882940081465fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page