{"id":15584231,"url":"https://github.com/ableinc/krystal","last_synced_at":"2025-06-17T20:36:36.977Z","repository":{"id":98807592,"uuid":"120938063","full_name":"ableinc/krystal","owner":"ableinc","description":"Krystal - Python Smart Assistant","archived":false,"fork":false,"pushed_at":"2019-06-28T18:21:01.000Z","size":27520,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-10T09:05:15.705Z","etag":null,"topics":["able","ai","assistant","krystal","python3","smart"],"latest_commit_sha":null,"homepage":"https://www.able.digital/access","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ableinc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-09T17:58:43.000Z","updated_at":"2019-08-01T10:24:13.000Z","dependencies_parsed_at":"2023-04-18T10:47:03.529Z","dependency_job_id":null,"html_url":"https://github.com/ableinc/krystal","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ableinc/krystal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fkrystal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fkrystal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fkrystal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fkrystal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ableinc","download_url":"https://codeload.github.com/ableinc/krystal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ableinc%2Fkrystal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260438835,"owners_count":23009268,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["able","ai","assistant","krystal","python3","smart"],"created_at":"2024-10-02T20:40:27.097Z","updated_at":"2025-06-17T20:36:31.963Z","avatar_url":"https://github.com/ableinc.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Krystal\n- Author: Able (Jaylen Douglas)\n- Platform: MacOS\n- Version: 0.91.0\n- Required: [Skip to 'Getting Started']\n- Python \u003e= 3.6 Required\u003cbr\u003e\u003cbr\u003e\n\nKrystal is in \u003cb\u003eAlpha\u003c/b\u003e testing.\n\n# Use\nTo use Krystal please register for an account on \u003ca href=\"https://www.able.digital#access\"\u003eAble Access\u003c/a\u003e, there you will receive\nyour own AiKey. This key grants you access to all of Able's software.\n\u003cb\u003eNote: You can use Krystal in Demo mode.\u003c/b\u003e\n\n# Getting Started:\nThere are a few dependencies required to use Krystal. I've created a python script that will install everything for you.\nFeel free to open the file to check each individual package.\n1) Clone or download the zip file for Krystal\u003cbr\u003e\n2) Run 'install.py'\n3) Run 'python3 krystal.py'\n\n# Change Log:\nDate: March 13, 2019 - Version: \u003cb\u003e0.91.0\u003c/b\u003e\n\n1) Training algorithm has been added; not connected\n2) Error handling updated. Current bug in fetching new information; happens often but not always.\n3) \"Who's that\" command has been simplified and should return accurately every time. (\"Whats that\" still offline)\n3) You can run requests via terminal (instead of speech) by uncommenting line 45 and commenting line 44 on krystal.py (run as normal)\n\n# Heads up\nPlanned updates and improvements | Completion dates:\n1) Krystal web application (any smartphone compatibility) | N/A\n2) Less dependency on 'on-the-spot' information gathering (upon model completion) | N/A\n3) Mobile application (not of importance at the moment, major changes to Krystal still needed) | N/A\n\n# Starting Krystal:\nInteracting with Krystal starts with: \u003ci\u003e\"Hey Krystal\" or \"Krystal\"\u003c/i\u003e\u003cbr\u003e\nAccepted commands:\n\n1) \"Open [application]\" (i.e. \"Open Safari\")\n2) \"Search for [your hearts desire]\" (i.e. \"Search Google for how to make the world's best sandwich\")\n1) \"What is your name?\"\n2) \"Who is Barack Obama?\"\n3) \"Who is that?\" (This uses face recognition to detect who's in front of the camera - Training required)\n4) \"What is that?\" (This uses object detection to detect what object is in front of the camera - No training required)\n# Training\nTensorflow is required for Krystal. To train Krystal on faces close to your heart refer to the 'Face Detection' section below.\n\n\n# Features (Detailed)\n\u003cb\u003eFace Detection (Vision)\u003c/b\u003e\u003cbr /\u003e\nKrystal comes with a unique feature that allows her to detect whomever you desire with a blink of an eye (well, a\ncapture of a frame, but you get my point). She uses the well-designed source code of Ageitgey's\n\u003ca href=\"https://github.com/ageitgey/face_recognition\"\u003eFace Recognition\u003c/a\u003e software. In Ageitgrey's example code,\nwhich Krystal uses, you must train a model that will contain the information for each individual person's name\n(described as the folder name/label). The training script is contained within the \"model\" directory, the file is called\nfacerectrain.py. Special thanks to Ageitgrey. \u003cbr /\u003e\n\u003cb\u003eNOTE:\u003c/b\u003e Krystal comes with a pre-compiled model called \"faces.ai\" in the \"model\" directory, alongside the faces\nshe is trained on are located in the \"train\" folder. When you add or remove images in the \"train\" folder the model will\nbe updated upon training. If you would like to remove the known faces in the \"train\" directory please do so, but as\nlater version of Krystal are released this option will be deprecated and you will only be using a model that is\nmaintained by Able (with contributions from you of course). Login \u003ca href=\"http://www.able.digital/access/login.php\"\u003ehere\u003c/a\u003e\nto add your selfie to our universal model for training and release in the future.\n\u003cbr /\u003e\n\u003cb\u003eObject Detection\u003c/b\u003e\u003cbr /\u003e\nKrystal comes with an pre-trained Caffe model that contains a few commonly known or easy-to-train images. The images are\ngeneral and there is a good chance of misidentification of abstract or unique objects. You can see the exact images the\nmodel can detect by checking the resources \u003e Detection.py file.\n\u003cbr /\u003e\n\u003cb\u003ePersonality \u0026 Thoughts\u003c/b\u003e\u003cbr /\u003e\nKrystal contains a very simple personality model that contains general information about her such as her name, age or\ncreator. This is only invoked when a specific question or type of question is asked. As stable updates are released Krystal's \npersonality model will expand in complexity and will begin to respond in conversation like dialogue.\nKrystal is intended to always be running and will only gather information when activated.\u003cbr\u003e\n\n# Demo Mode\n1) Data is not personalized in this mode. Meaning, Krystal will not have any information about you (i.e. your name or habits).\n2) Automatic updates are disabled\n3) Some features may be limited in the future\n\n# Known issues\n1) \u003cb\u003eQ/S\u003c/b\u003e: Random info when asked about who/what someone/something.\u003cbr /\u003e\n   A: This is due to a less than stable algorithm that parses the web for information on what you're searching for.\u003cbr\u003e\n2) \u003cb\u003eQ/S\u003c/b\u003e: No file found named _snowboydetect.so\u003cbr /\u003e\n   A: You may need to grab a precompiled build for Snowboy (follow their instructions \u003ca href=\"https://github.com/Kitt-AI/snowboy\"\u003ehere\u003c/a\u003e) then add the correct files to the \"SBpy3\" folder.\n3) \u003cb\u003eQ/S\u003c/b\u003e: I get a warning message from Tensorflow every time I start Krystal (i.e. keep_dims)\u003cbr /\u003e\n   A: This is all dependant on Tensorflow, please ignore. Krystal will use a modified version of Tensorflow in the future.\n4) \u003cb\u003eQ/S\u003c/b\u003e I cannot connect to Able servers with AiKey\n   A: Please run in demo mode. Features are being updated daily and Krystal's API is going through changes as well. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fableinc%2Fkrystal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fableinc%2Fkrystal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fableinc%2Fkrystal/lists"}