Skip to main content

Message system for connecting tools on a single or multiple Computer.

Project description

Still Need testing

Some important parts will change until everything is ready for release.

shikoni

This tool is for connection AI tools to combine them.

Github: https://github.com/VGDragon/shikoni

Idea

It could take a lot of computer power for tools and AI to run. It makes sense to seperate some tools or use a entrypoint. The idea behind this project is to create an tool to make it easy to connect tools between computers.

Example:

You want to take an audio file (or microfon input) and want an AI to answer you with TTS.

Audio input, AI, TTS, Audio output

You make for each point an shikoni instance and conect them together if you need them. You take an shikoni instance and tell each point to connect to the next one.

Audio output: start server
TTS: start server, connect client to "Audio output"
AI: start server, connect client to "TTS"
Audio input: connect client to "AI"

Audio input -> AI -> TTS -> Audio output

If you want to switch the AI, you only need make an instance for that AI and keep the rest. You just have to remove the old connection and create the new one.

Audio input: disconnect client from "AI"
AI: stop server, disconnect client from "TTS"

AI_2: start server, connect client to "TTS"
Audio input: connect client to "AI_2"

Audio input -> AI_2 -> TTS -> Audio output

Workflow

I try to make everything as easy to use as posible but stull have important functionality. The messages are send in bytes to keep it open for all kind of messages to be sent. To be able to know the message type, shikoni uses type_id with a combination of json to find the right Message class.

It should be possible to add new message types later on.

Messages

In doc you can find a description for each message that is currently implemented.

For a base structure of each message, you can look at doc/message_overview.md

I want to use the listed message structure to write shikoni in other programming languages, but first I want to make it in python to be usable. The messages stricture should be the same for each language, to make a connection between all instances possible.

Task before release

Some important parts can change until I am sure everything important is added.

I need some testing with different tools before I can make a real release.

Current status

I am still working on the base scripts.

  • ✅ Server Connection
  • ✅ Client Connection
  • ✅ start script
  • ✅ search for free ports (API)
  • ✅ forbid access for unauthorised users (using path)
  • ❌ setup script
  • ❌ make module and test it
  • ✅ test run with tools

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

shikoni-0.0.2.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

shikoni-0.0.2-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file shikoni-0.0.2.tar.gz.

File metadata

  • Download URL: shikoni-0.0.2.tar.gz
  • Upload date:
  • Size: 34.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for shikoni-0.0.2.tar.gz
Algorithm Hash digest
SHA256 19ea83af0aefaab3d69fd17110098de2d08bdefc216fdff262d68cc308f5012e
MD5 a81efd1645511298741e649323ac4dd3
BLAKE2b-256 f8d1fd0c3b77946f7fbf3042ba8eee9d9e87902bf97ad4a53476b5a5146042db

See more details on using hashes here.

File details

Details for the file shikoni-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: shikoni-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for shikoni-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 54560eca5fb8d6ee8f91d4f42292e0bd08526bd4c59f94e55b1c732cf2f6e567
MD5 7ed3ff16762c45d55430ec1960017a4a
BLAKE2b-256 a232dd924b87c15799a761cc0d786fde53ce65773d5c74898b4132514e3faa27

See more details on using hashes here.

Supported by

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