-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Simply continue on the work step where the last person stopped. Feel free to edit whatever you think need to be changed.
Intelligent shell that learns from you and others and shares the learned stuff to others. As a side effect it can create tutorials from the commands that were sent.
Is simply a working name. For now I like the meaning of the word putty as something that is somehow sticking everything together.
- Install xyz
- How much CPUs do I have?
- #ls -la
- Show me the folder with most activity
- What can you do?
- I need help
- Servers with the learned essence
- Differentiating between personal content and public shareable content
- NLP Agent to understand intent
- In order to support low cpu clients the shell will have an option to act as satellite and leave intent and solution detection to server. This means the client sends all strings to the server and the server sends back solution strings.
Most NLP agents are written in Python. Therefore the C# Project needs to be able to execute Python code. I will use IronPython for this part. As a first approach I will use DeepPavlov and nlp-intent-toolkit for indent detection.
The backend is an ASP.NET Core 2.2 api running on IIS or in docker. It is an interesting possibility to develop the backend based on different technology. For example a Node.JS backend in addition could be interesting.
The final vision is a decentralized or event distributed backend system that exchanges wisdown/experiences based on most need and redundance in the network. But for now it simply will be one running backend you can connect the shell to. It will not connect to other backends or share wisdom. Of course if somebody else has time to develop on the p2p network stack and how to exchange wisdom he is happily invited.
Every command is based on intent, subset of other commands and the verification step. Example: Intent: Update everything Subset of commands:
- Check linux version
- Command update of Register
- Command update of software
- Check for any questions
- Question if software can be updated or installed
- Question if bootloader change is ok (with file diff) Verification:
- Command update again and verify that no updates are left
The command can be represented as JSON string which would enable a simple RESTfull based API implementation.
Additionally the detection and error correction network is the important step there.
Szenario 1: An open solution server offers a strategy I need right now. I use the strategy offered but the description the computer thinks he is executing differs from the real code. Result: One could hide security sensitive code and can access my system.
Actually this is not limited to terminals. Overtime a connection framework would be better. But as a starting point a simple ssh terminal will work.
- IronPython - Apache License 2.0 (here)
- DeepPavlov - Apache License 2.0 (here)
- nlp-intent-toolkit - The Unlicense (here)