# fstflowchat
**fstflowchat** is a small, pedagogical, fst-based dialog toolkit.
fstflowchat uses finite state transducers to control dialog flow. It
uses graphviz to visualize the dialog flow and as a graph
specification language for the dialog FST. Each graph edge specifies
two functions, a test function that determines if the edge is a valid
transition, and an output fuction that determines the system's output
as it changes state.
## Installation
To run the stable version run
```
pip install fstflowchat
```
You will first need to install graphviz [graphviz
application](https://graphviz.org/download/) and the [pygraphviz
library](https://pygraphviz.github.io/documentation/stable/install.html).
For mac installation issues, if you receive an error, please use the
following command after running `brew install graphviz`, as described
in this [stackoverflow
question](https://stackoverflow.com/questions/69970147/how-do-i-resolve-the-pygraphviz-error-on-mac-os)
```
python -m pip install \
--global-option=build_ext \
--global-option="-I$(brew --prefix graphviz)/include/" \
--global-option="-L$(brew --prefix graphviz)/lib/" \
pygraphviz
```
To install on a Colab notebook, run the following shell escaped
commands to install graphviz and its development libraries and test
the python pygraphviz library before installing fstflowchat:
```
# install graphviz with development libraries
!apt install libgraphviz-dev
# test pygraphviz library (used by fstflowchat
!pip install pygraphviz
# install fstflowchat
!pip install fstflowchat
```
If you are interested in contributing to fstflowchat or if you want to
use the latest code from github (potentially with breaking changes)
you can install fstflowchat in the following ways:
```
# clone and install as an editable pip library
git clone git+https://github.com/abecode/fstflowchat
cd fstflowchat
pip install -e .
# pip install directly from github
pip install git+https://github.com/abecode/fstflowchat
```
## Running a demo
To see a demo, run
```
fstflowchat-example
```
## Documentation
For more information, please see the [documentation](https://fstflowchat.readthedocs.io/en/latest/)
Raw data
{
"_id": null,
"home_page": "https://fstflowchat.readthedocs.io/en/latest/",
"name": "fstflowchat",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7, <4",
"maintainer_email": "",
"keywords": "dialog,dialogue,chat,finite state transducer,dialog agent,dialog system",
"author": "Abe Kazemzadeh",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/52/f2/c1a8d1e0c2cfc363b6dbaa03c257138a8249a2d0e5cbb6d2898c0a98de1b/fstflowchat-0.0.7.tar.gz",
"platform": null,
"description": "# fstflowchat\n\n**fstflowchat** is a small, pedagogical, fst-based dialog toolkit.\n\n\nfstflowchat uses finite state transducers to control dialog flow. It\nuses graphviz to visualize the dialog flow and as a graph\nspecification language for the dialog FST. Each graph edge specifies\ntwo functions, a test function that determines if the edge is a valid\ntransition, and an output fuction that determines the system's output\nas it changes state.\n\n\n## Installation\n\n\nTo run the stable version run\n\n```\npip install fstflowchat\n```\n\nYou will first need to install graphviz [graphviz\napplication](https://graphviz.org/download/) and the [pygraphviz\nlibrary](https://pygraphviz.github.io/documentation/stable/install.html).\n\n\nFor mac installation issues, if you receive an error, please use the\nfollowing command after running `brew install graphviz`, as described\nin this [stackoverflow\nquestion](https://stackoverflow.com/questions/69970147/how-do-i-resolve-the-pygraphviz-error-on-mac-os)\n\n```\npython -m pip install \\\n\t--global-option=build_ext \\\n\t--global-option=\"-I$(brew --prefix graphviz)/include/\" \\\n\t--global-option=\"-L$(brew --prefix graphviz)/lib/\" \\\n\tpygraphviz\n```\n\nTo install on a Colab notebook, run the following shell escaped\ncommands to install graphviz and its development libraries and test\nthe python pygraphviz library before installing fstflowchat:\n\n```\n# install graphviz with development libraries\n!apt install libgraphviz-dev\n\n# test pygraphviz library (used by fstflowchat\n!pip install pygraphviz\n\n# install fstflowchat\n!pip install fstflowchat\n```\n\n\nIf you are interested in contributing to fstflowchat or if you want to\nuse the latest code from github (potentially with breaking changes)\nyou can install fstflowchat in the following ways:\n\n```\n# clone and install as an editable pip library\ngit clone git+https://github.com/abecode/fstflowchat\ncd fstflowchat\npip install -e .\n\n# pip install directly from github\npip install git+https://github.com/abecode/fstflowchat\n```\n\n\n## Running a demo\n\nTo see a demo, run\n\n```\nfstflowchat-example\n```\n\n## Documentation\n\nFor more information, please see the [documentation](https://fstflowchat.readthedocs.io/en/latest/)\n",
"bugtrack_url": null,
"license": "",
"summary": "a small, pedagogical, fst-based dialog toolkit.",
"version": "0.0.7",
"project_urls": {
"Bug Reports": "https://github.com/abecode/fstflowchat/issues",
"Funding": "https://donate.pypi.org",
"Homepage": "https://fstflowchat.readthedocs.io/en/latest/",
"Say Thanks!": "http://saythanks.io/to/example",
"Source": "https://github.com/abecode/fstflowchat/issues"
},
"split_keywords": [
"dialog",
"dialogue",
"chat",
"finite state transducer",
"dialog agent",
"dialog system"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5df7b02cd9ec21fa1e2ef9427dfd7ea24bc64420c804bd24a44077eb13077f04",
"md5": "808cbbfd70e43d169c768b095c3c5523",
"sha256": "c3c8b38955423038701e747bf6cd6dd058c64e37476a50f5cc6a4b753c84b51a"
},
"downloads": -1,
"filename": "fstflowchat-0.0.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "808cbbfd70e43d169c768b095c3c5523",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7, <4",
"size": 7178,
"upload_time": "2023-05-10T02:50:30",
"upload_time_iso_8601": "2023-05-10T02:50:30.650153Z",
"url": "https://files.pythonhosted.org/packages/5d/f7/b02cd9ec21fa1e2ef9427dfd7ea24bc64420c804bd24a44077eb13077f04/fstflowchat-0.0.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "52f2c1a8d1e0c2cfc363b6dbaa03c257138a8249a2d0e5cbb6d2898c0a98de1b",
"md5": "4bfb1db4a46f5abcfae5b76e997a6287",
"sha256": "9ebf471344e9ebfb1c2896301fafd81fa1889f9dbde85071849cf0d719fd62ee"
},
"downloads": -1,
"filename": "fstflowchat-0.0.7.tar.gz",
"has_sig": false,
"md5_digest": "4bfb1db4a46f5abcfae5b76e997a6287",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7, <4",
"size": 9787,
"upload_time": "2023-05-10T02:50:32",
"upload_time_iso_8601": "2023-05-10T02:50:32.665297Z",
"url": "https://files.pythonhosted.org/packages/52/f2/c1a8d1e0c2cfc363b6dbaa03c257138a8249a2d0e5cbb6d2898c0a98de1b/fstflowchat-0.0.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-10 02:50:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "abecode",
"github_project": "fstflowchat",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "fstflowchat"
}