Skip to main content

Genie™ Python SDK

A Python SDK for Intelligent Artifacts' Genie™.

What is Genie™?

Genie™ is a General Evolving Networked Intelligence Engine. It is an Artificial General Intelligence platform for rapidly building machine intelligence solutions for any problem domain.

Genie™ requires an account on [Intelligent Artifacts] (https://www.intelligent-artifacts.com).

What is Genie™ Python SDK?

This package, Genie™ Python SDK, is a software development kit for interacting with "GENIE agents" and "bottles" from Python. It provides useful tools and services.

Install

pip install ia-genie-sdk

Provides:

- GenomeInfo
- BottleClient
- BackTesting

To use GenomeInfo:

You will need to download your genie's genome file from your Intelligent Artifacts account.

from ialib.GenomeInfo import Genome
import json

genome_topology = json.loads(genome_json_string)
genome = Genome(genome_topology)

If you want to have the topology displayed, you need to install cyjupter:

pip3 install cyjupyter

The useful functions are:
genome.agent - returns the name of the agent.
    ex: 'focusgenie'

genome.get_nodes() - returns 2-tuple of primitives and manipulatives genomic data.

genome.get_actions() - returns dictionary of primitives with lists of action IDs.
    ex: {'P1': ['ma23b1323',
                'm390d053c']}

genome.get_action_manipulatives() - returns a list of action manipulative IDs.
    ex: ['m390d053c',
         'ma23b1323']

genome.get_primitive_map() - returns a dictionary of primitive names to primitive IDs.
    ex: {'P1': 'p464b64bc'}

genome.get_manipulative_map() - returns a dictionary of manipulative IDs to manipulative names.
    ex: {'m390d053c': 'ACTIONPath',
         'ma23b1323': 'ACTIONPath',
         'mcd6d4d68': 'negateContext',
         'm40aaf174': 'vectorFilter',
         'med2ed537': 'vectorPassthrough',
         'm89aa2c7e': 'reduceVectorsBySubtraction'}

genome.display() - graphically displays the topology.

To use BottleClient:

You will need to have an active bottle running on Intelligent Artifacts. The bottle's information such as 'name' and secrete 'api_key' can be found in your IA account.

If on IA cloud:

from ialib.bottle_client import BottleClient

bottle_info = {'api_key': 'ABCD-1234',
               'name': 'genie-bottle',
               'domain': 'intelligent-artifacts.com',
               'secure': True}

test_bottle = BottleClient(bottle_info)
test_bottle

If local: (Note: local, on-premises, on-board, at-the-edge, etc. usage requires licensing from Intelligent Artifacts. Send email to team@intelligent-artifacts.com for licensing support.)

from ialib.bottle_client import BottleClient

bottle_info = {'api_key': 'ABCD-1234',
               'name': 'genie-bottle',
               'domain': ':8181',
               'secure': False}

test_bottle = BottleClient(bottle_info)
test_bottle

Prior to utilizing the bottle, you must establish a connection between the client and bottle through the use of the connect method:

test_bottle.connect()

Note, this will download a copy of the genie's genome. Alternatively, you can manually inject your genie's genome into the bottle and connect in this manner:

test_bottle.inject_genome(genome)

Wait for return status.

Once you have a running genie, set ingress and query nodes by passing the node names in a list:

test_bottle.set_ingress_nodes(['P1'])
test_bottle.set_query_nodes(['P1'])

Send data to bottle:

data = {"strings": ["Hello"], "vectors": [], "determinants": []}
test_bottle.observe(data)

Query the bottle nodes:

print(test_bottle.show_status())
predictions = test_bottle.get_predictions()

You can also pass GenieMetalanguage data to the genie:

from ialib.genie_metalanguage import CLEAR_ALL_MEMORY, CLEAR_WM, LEARN, SET_PREDICTIONS_ON, SET_PREDICTIONS_OFF
test_bottle.observe(LEARN)

When sending classifications to a genie, it is best practice to send the classification as a singular symbol in the last event of a sequence. This allows for querying the last event in the prediction's 'future' field for the answer. The classification, though, should be sent to all the query nodes along with the ingress nodes. The observe_classification function of the BottleClient class does that for us:

data = {"strings": ["World!"], "vectors": [], "determinants": []}
test_bottle.observe_classification(data)

To use Backtesting:

There are 3 built-in backtesting reports:

- classification:
    - Train and predict a string value to be a classification of observed data.
- utility - polarity:
    - Polarity is basically a +/- binary classification test using the prediction's 'utility' value.  It scores correct if the polarity of the prediction matches the polarity of the expected.
- utility - value:
    - Value tests for the actual predicted value against the expected and scores correct if within a provided `tolerance_threshold`.

For each, the observed data can be a sequence of one or more events, containing any vectors or strings.

Metadata

Release files for ia-genie-sdk 0.1.28

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ia-genie-sdk 0.1.28
File Size Uploaded Provenance
ia-genie-sdk-0.1.28.tar.gz 14.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ia-genie-sdk 0.1.28
File Interpreter ABI Platform
ia_genie_sdk-0.1.28-py3-none-any.whl Python 3 none any Details

Total release size: 31.7 kB

Release files / ia-genie-sdk-0.1.28.tar.gz

Download URL ia-genie-sdk-0.1.28.tar.gz
Size 14.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5f195a103b66e0e4f6e2d15d1ff15b426d8c846d0f64affa38e7fe2e96027092
BLAKE2b-256 checksum
How to use checksums
67d560965e675b279cfdc0fdfa51d4b5fc0e64aad5da0e331ea91866d941b03b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.27.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.9

Release files / ia_genie_sdk-0.1.28-py3-none-any.whl

Download URL ia_genie_sdk-0.1.28-py3-none-any.whl
Size 17.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e320574a96f9366c5ac797ff5dbed458b9c1e11a928221fb4f86a78b1ccb0c5
BLAKE2b-256 checksum
How to use checksums
83d26673da2935378170d865a3559d9eee98d8c4de8b2a17f4cacf0d6b752d1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.27.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.9

Security for ia-genie-sdk 0.1.28

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.28 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page