{ "info": { "author": "Mikul\u00e1\u0161 Zelinka", "author_email": "miki.myke@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "=========\npyfiction\n=========\n\nPython API for all kinds of text-based games.\n\n\nIntroduction\n------------\nText-based games, more commonly known as interactive fiction (IF), come in various formats and use different interpreters that aren't often compatible with each other.\n\nThe goal of pyfiction is to wrap the functionality of different IF simulators and to provide a universal API for text games for research purposes.\n\nPyfiction also includes sample agents that can learn to play the supplied text games.\n\nRequirements\n------------\n\n* Python 3.6 (older version might work but they aren't tested, Python 3.5 tested briefly)\n* `text-games `_ submodule for games 'Saving John' and 'Machine of Death'\n* `keras `_, `tensorflow `_ and their dependencies for launching the example agents\n* selenium and `chromedriver `_ for running the HTML-based games\n* h5py for saving and loading models\n* pydot for visualising model graphs\n\nInstallation\n------------\n\nTo install the latest published version, simply run: ::\n\n pip install pyfiction\n\n\nTo install the bleeding-edge version from this repository, run: ::\n\n git clone --recursive https://github.com/MikulasZelinka/pyfiction\n cd pyfiction\n pip install -e .\n\nInterface\n---------\n\n*pyfiction* provides a simple agent-environment interface for text-game environments.\n\n\n.. figure:: http://web.stanford.edu/group/pdplab/pdphandbookV3/suttonbarto_rl.png\n :align: center\n :alt: agent-environment interface\n\n Simple RL interface [4]. In *pyfiction*, the agent calls the corresponding functions of the game environment:\n\n * ``state, actions, rewards = game.read()`` (left branch),\n * ``game.write(action)`` (right branch).\n\nExamples\n--------\n\nTo run any example (from the game list below or from this list), simply run: ::\n\n python file.py\n\non these files:\n\n* `Interactively play any of the supported games `_,\n* `An SSAQN (siamese state-action q-network) agent [3] learning to play multiple games at once `_,\n* `Interactive testing `_ of state-action Q-values of the above agent trained on the supported games,\n\nor on one of the supported games below.\n\nCurrently supported games\n-------------------------\nThe following links lead to training experiments of the SSAQN agent on the supported games:\n\n* `Saving John `_\n* `Machine of Death `_\n* `Cat Simulator 2016 `_ [HTML-based]\n* `Star Court `_ [HTML-based]\n* `The Red Hair `_ [HTML-based]\n* `Transit `_ [HTML-based]\n\nAdditionally, the plan is to integrate the individual games to the `OpenAI Gym `_, see\nthe `pull request `_ and the `text_games branch `_ for details.\n\nAdding new games\n~~~~~~~~~~~~~~~~\n\nTODO.\n\n\n\nReferences\n----------\n\n[1] `Language Understanding for Text-based Games Using Deep Reinforcement Learning `_\n\n[2] `Deep Reinforcement Learning with a Natural Language Action Space `_\n\n[3] `Using reinforcement learning to learn how to play text-based games `_ (Master thesis, available in 09/2017)\n\n[4] `Reinforcement Learning: An Introduction `_\n\n\nStatus\n------\nVersion 0.1.2, Alpha\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MikulasZelinka/pyfiction", "keywords": "pyfiction text games interactive fiction gym", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyfiction", "package_url": "https://pypi.org/project/pyfiction/", "platform": "", "project_url": "https://pypi.org/project/pyfiction/", "project_urls": { "Homepage": "https://github.com/MikulasZelinka/pyfiction" }, "release_url": "https://pypi.org/project/pyfiction/0.1.2/", "requires_dist": [ "h5py", "keras (>=2.0.4)", "numpy", "pydot", "selenium", "tensorflow (>=1.1.0)" ], "requires_python": "", "summary": "pyfiction, a universal API for text-based games", "version": "0.1.2" }, "last_serial": 3059100, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "066b40f7ea1aaeb73317c73c7614f3e4", "sha256": "258a5dd3b84962a9b95ecfd332397db79c95ef936494a85e8970d159323fa4ff" }, "downloads": -1, "filename": "pyfiction-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "066b40f7ea1aaeb73317c73c7614f3e4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 75558, "upload_time": "2017-07-30T00:34:47", "url": "https://files.pythonhosted.org/packages/7e/d5/7bac114612ccfa7a35a6818a32870cf7ca18a79c5049ec2ac87df05cd9f4/pyfiction-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2224843a7294eeb364efbfacb5bb5d61", "sha256": "77db928cd0c32873f970b6393ac3a30c38c0e774b07c6be155c746ddcc5ba100" }, "downloads": -1, "filename": "pyfiction-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2224843a7294eeb364efbfacb5bb5d61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63960, "upload_time": "2017-07-30T00:31:51", "url": "https://files.pythonhosted.org/packages/a1/b0/ade4e47e453cb437d30daf7685f0ee7432f026671774b437cbaa74e995bb/pyfiction-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f940fe792c8559f6d05f6e93fa09178b", "sha256": "b1a7da7237e43bbcd61ecd032a7f600a132c0b94f692d5c231ad8639c3b52185" }, "downloads": -1, "filename": "pyfiction-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f940fe792c8559f6d05f6e93fa09178b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 75562, "upload_time": "2017-07-30T00:37:07", "url": "https://files.pythonhosted.org/packages/97/4b/2561d59d5aae4534bc268df63442b5ab85a436fdba8b43d3342b46e23932/pyfiction-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "71911e9b4aa3979f7d4e47db33b6cb89", "sha256": "16d6a6e1eceabc259babbfc630cbe6188194513925d0546218b454cff3b697ad" }, "downloads": -1, "filename": "pyfiction-0.1.1.tar.gz", "has_sig": false, "md5_digest": "71911e9b4aa3979f7d4e47db33b6cb89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63965, "upload_time": "2017-07-30T00:37:09", "url": "https://files.pythonhosted.org/packages/a0/ae/bfd46e0ff2898019f780f0224d0c256151d9e971fa1b5405b56a12b6942a/pyfiction-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "33a282b17d213ad94a7e315791848b68", "sha256": "9453323b89a3743fdf88367cb01519baf1524e38dabdd9ab513733418938cef2" }, "downloads": -1, "filename": "pyfiction-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "33a282b17d213ad94a7e315791848b68", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8124306, "upload_time": "2017-07-30T10:36:11", "url": "https://files.pythonhosted.org/packages/69/77/0a78624e46d356dac89055a63113753f2f30a105e05438aefaab94545053/pyfiction-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9c31e3cd14d993b35aec24216e62da9", "sha256": "0fd20859511c45c98e104bdb12d234475130912e300873622381e1c5cedd0b89" }, "downloads": -1, "filename": "pyfiction-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a9c31e3cd14d993b35aec24216e62da9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8102771, "upload_time": "2017-07-30T10:36:29", "url": "https://files.pythonhosted.org/packages/b5/de/b2e8f45e4d5d5b3a29201227ad2368b59dfb87b6358f251ef9c4ab67e2dc/pyfiction-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33a282b17d213ad94a7e315791848b68", "sha256": "9453323b89a3743fdf88367cb01519baf1524e38dabdd9ab513733418938cef2" }, "downloads": -1, "filename": "pyfiction-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "33a282b17d213ad94a7e315791848b68", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8124306, "upload_time": "2017-07-30T10:36:11", "url": "https://files.pythonhosted.org/packages/69/77/0a78624e46d356dac89055a63113753f2f30a105e05438aefaab94545053/pyfiction-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9c31e3cd14d993b35aec24216e62da9", "sha256": "0fd20859511c45c98e104bdb12d234475130912e300873622381e1c5cedd0b89" }, "downloads": -1, "filename": "pyfiction-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a9c31e3cd14d993b35aec24216e62da9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8102771, "upload_time": "2017-07-30T10:36:29", "url": "https://files.pythonhosted.org/packages/b5/de/b2e8f45e4d5d5b3a29201227ad2368b59dfb87b6358f251ef9c4ab67e2dc/pyfiction-0.1.2.tar.gz" } ] }