A packaged GenieScript in Python
Project description
Packaged GenieScript for Python
GenieScript's core engine is originally built in Java/TypeScript. This is its language extension in Python. The goal of this package is to:
-
Provide an easy installation, almost directly from
pip
-
Expose the GenieScript engine as a set of easy-to-use APIs, enabling it to be used in larger Python projects
Installation
-
Install node in your current environment.
- GenieScript recommends
node >= 18
, although it is yet to be tested on earlier nodes. If you have multiple nodes in your environment, we recommend using nvm. After installing it, run (1)nvm install 18
, (2)nvm use 18
, and finally (3)nvm alias default 18
.
- GenieScript recommends
-
Install some required system dependency of
pyGenieScript
, including:- install gettext. Install by brew on Mac and by other package managers on linux.
-
pip install pyGenieScript
-
pip install genienlp==0.7.0a4
(because installation ofgenienlp
depends on more libraries, it is not included as a mandatory dependency ofpyGenieScript
). For Mac M1/M2 users, refer to this installation guide.
Usage
A minimalist example to run the yelp semantic parser
You can use GenieScript to query yelp database in natural language. We have prepared a yelp parser. Here are the steps to run this example:
- Open a
python
REPL process. Do the following:
>>> import pyGenieScript.geniescript
>>> genie = pyGenieScript.geniescript.Genie() # This command installs genie-toolkit and might take a while for the first time
>>> genie.nlu_server('yelp') # This command will download the yelp parser and might take a while for the first time
Tip: If you see Prediction worker had an error: spawn genienlp ENOENT
, this means genienlp
is not installed correctly.
If successful, the final message you see should be similar to this:
[I 230211 02:15:11 util:299] TransformerSeq2Seq has 139,420,416 parameters
Keep this REPL running, and in a separate terminal, run:
- The yelp skill requires you to register an API online and obtain a developer key. Register an account, retrieve the API key, and run:
export YELP_API_KEY=[your key]
- Open another
python
REPL process. Do the following:
>>> import pyGenieScript.geniescript
>>> genie = pyGenieScript.geniescript.Genie() # You should not need to wait now
>>> genie.initialize('localhost', 'yelp') # This sets the semantic parser to be accesible over local server
>>> genie.query("show me a chinese restaurant") # You should see meaningful results returned from Genie
>>> genie.quit() # Shuts down Genie server
Installation FAQ
If you encounter a stall of genie.query()
when running for the first time (see here), please
cancel the stalled process and run again.
API documentation
Main API documentations are aviliable here.
Project details
Release history Release notifications | RSS feed
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 pyGenieScript-0.0.0b20.tar.gz
.
File metadata
- Download URL: pyGenieScript-0.0.0b20.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75cb41e5440b1612e43521f3b3570a512450e3c6ab221320d9f4f5276a8deaaf |
|
MD5 | cf49f9440e8906aa502204318327ee1d |
|
BLAKE2b-256 | 70699f757a8bc956c7a08b6aeca200072fa73adec10ed639ef35ab4984c00e68 |
File details
Details for the file pyGenieScript-0.0.0b20-py3-none-any.whl
.
File metadata
- Download URL: pyGenieScript-0.0.0b20-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb0a288ced7db87e966a409ebc220ccfc3005c3f8dc8a4b80b87527796169bd4 |
|
MD5 | afd4022f51f516c2e2adb6afefc4a0ef |
|
BLAKE2b-256 | ca44ca43cd65f5d38f4a2843ec318a399c342b29fe5afa53ff0cac036912b939 |