kin-kernel contain the default templates of Cells that compose a Kin.
Project description
📖 DigitalKin.ai - KinKernel
Welcome to the DigitalKin KinKernel ! This package is designed to enable developers to create Cells, which are autonomous agents that can be integrated into the Internet of Agents (IoA) ecosystem powered by DigitalKin.
👀 Overview
The KinKernel provides a framework for creating and managing Cells. Each Cell represents a distinct autonomous agent with a specific role and behavior within the IoA. The KinKernel ensures that all Cells adhere to a standard interface and can communicate effectively within the ecosystem.
💡 Features
- Abstract base classes for standardizing Cell creation
- Response models for consistent communication
- Helper methods for schema information access
- Configuration management
- Example Cell implementation
🛠️ Installation
Before installing the KinKernel, ensure you have Python installed on your system. This package requires Python 3.10 or higher.
To install the KinKernel With pipy:
pip install kin-kernel
Or clone the repository and install the dependencies:
git clone https://github.com/DigitalKin/kin-kernel.git
cd kin-kernel-kit
pip install -r requirements/prod.txt
For development purposes, you may also want to install the development dependencies:
pip install -r requirements/dev.txt
✨ Linter
Execute linters:
flake8 kinkernel
black kinkernel --check --diff
black kinkernel
mypy kinkernel
pylint kinkernel
💻 Usage
To create a new Cell, you'll need to subclass the Cell
class provided in the kinKernel and implement the required methods and properties.
Here's a simple example of a Cell that processes input data:
from pydantic import BaseModel
from kinkernel import Cell
from kinkernel.config import ConfigModel, EnvVar
class MyInputModel(BaseModel):
value1: int
value2: str
class MyOutputModel(BaseModel):
processed_value: int
class MyCell(Cell[MyInputModel, MyOutputModel]):
role = "Processor"
description = "Processes input data"
input_format = MyInputModel
output_format = MyOutputModel
config = ConfigModel(
env_vars=[
EnvVar(key="ENV_VAR_1", value="value1"),
EnvVar(key="ENV_VAR_2", value="value2"),
]
)
async def _execute(self, input_data: MyInputModel) -> MyOutputModel:
# Process the input_data as needed
exec_result = {"processed_value": input_data.value1 * 2}
return MyOutputModel(**exec_result)
You can then instantiate and execute your Cell as follows:
my_cell = MyCell()
input_data = MyInputModel(value1=10, value2="example")
output_data = my_cell.execute(input_data)
print(output_data)
For a more detailed example, refer to the examples/simple_cell_example.py
file in the repository.
🧪 Testing
The CDK comes with a set of unit tests to ensure that your Cells work as expected. To run the tests, execute the following command:
pytest
👥 Contribution
Contributions to the KinKernel are welcome! If you have suggestions for improvements or find any issues, please open an issue on our GitHub repository.
🤗 Support
If you have any questions or need support with the KinKernel, please reach out to us at contact@digitalkin.ai.
Thank you for using the DigitalKin Cell Development Kit. We look forward to seeing the innovative Cells you'll create for the Internet of Agents!
Kin-kernel © 2023 by DigitalKin is licensed under CC BY-NC-SA 4.0
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
Built Distribution
File details
Details for the file kin-kernel-0.0.3.tar.gz
.
File metadata
- Download URL: kin-kernel-0.0.3.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1eb5b0571d1661f9e328185e5efa85907440e431ffb612d3c6da61582a6fdfa1 |
|
MD5 | f86197dab7705bbf1b0a75133429b7bb |
|
BLAKE2b-256 | 30d094f78f0196b63b5ceda636ebd0091a3e4a24ddf9e6a6765e7e347a529c37 |
File details
Details for the file kin_kernel-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: kin_kernel-0.0.3-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73f8c0f53276a11aa01942aadcd3d565d02de6b2c62c05f5cd8c251b33988555 |
|
MD5 | 102dc29f730523b52f87ba2cf96d15c3 |
|
BLAKE2b-256 | dc88af612bc625235ecdd0e0cd139b536fda5c24514235de046ae6e82263981d |