# yasi
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
## Background
What if you could have a more fluid, interactive conversation with AI?
Enter **Dialog Engineering**, a groundbreaking approach that lets you
construct and edit a dialogue with the AI in real-time.
> Unlike prompt engineering where you’re just creating a single sentence
> or paragraph or whatever, that’s actually part of a whole back and
> forth dialog. All of the previous steps get sent to the AI model as
> well, not just the prompt. And they all greatly influence how it
> responds. And how it responds influences you as to what you then add
> to the dialog. - Jeremy Howard, from [the MAD Podcast
> 34:42](https://www.youtube.com/watch?v=MbHL0uvKYbE&t=34h42s)
Yasi seamlessly integrates Jupyter Notebooks with AI to unlock the
potential of Dialog Engineering. With yasi, you can create, edit, and
refine your conversations with AI. It is a DIY implementation of the -
yet to be released - platform [solveit](https://solveit.fast.ai/) from
answer.ai.
For more information see the following articles:
- [Dialog
Engineering](https://www.linkedin.com/pulse/dialog-engineering-tobias-klings-jq34f)
- [Introducing Dialog Engineering with
yasi](https://www.linkedin.com/pulse/boost-your-ai-interactions-tobias-klings-bcnqe)
## Usage
### Installation
Install latest from the GitHub
[repository](https://github.com/Jack-Byte/yasi):
``` sh
$ pip install git+https://github.com/Jack-Byte/yasi.git
```
or from [pypi](https://pypi.org/project/yasi/)
``` sh
$ pip install ipy-yasi
```
### Documentation
Documentation can be found hosted on this GitHub
[repository](https://github.com/Jack-Byte/yasi)’s
[pages](https://Jack-Byte.github.io/yasi/). Additionally you can find
package manager specific guidelines on
[conda](https://anaconda.org/Jack-Byte/yasi) and
[pypi](https://pypi.org/project/yasi/) respectively.
## How to use
You can try it online with Binder
[](https://mybinder.org/v2/gh/Jack-Byte/yasi/HEAD?urlpath=%2Fdoc%2Ftree%2F%2Fexamples%2Fmoney_and_kangaroos.ipynb)
Import JupyterChat, set openai_base_url (only if you are not using
Openai itself), and provide your api key directly or as the env variable
`OPENAI_API_KEY`.
``` python
from yasi.core import JupyterChat
jc = JupyterChat(openai_base_url="https://openrouter.ai/api/v1", api_key=None)
```
### Query Openai directly
You can use the `send_query` method to interacte through a code cell
directly. The response will be added as a new markdown cell in your
current notebook.
``` python
jc.send_query('Kia ora, how are you?')
```
Kia ora! I’m doing well, thanks for asking! It’s great to connect with
you and practice some basic Maori phrases. How can I help you today?
### Send Dialoge from your Notebook
JupyterChat is designed to extract messages from your current notebook
and construct a dialoge.
It’s searching for markdown cells that contain the tags
- `#| chat_system` (optional) sets the context for the conversation,
providing the AI with a “hint” about the type of response expected
- `#| chat_user` your messages
- `#| chat_assistant` the AIs real responses, or the ones that you
ingest into the dialog
and sends the dialog to the Openai API.

Raw data
{
"_id": null,
"home_page": "https://github.com/Jack-Byte/yasi",
"name": "ipy-yasi",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "nbdev jupyter notebook python",
"author": "Jack-Byte",
"author_email": "tobi.klings@t-online.de",
"download_url": "https://files.pythonhosted.org/packages/84/8a/26e4906f60db6c61c701ffd7a183e98f271c92f0770fd51f015484920b33/ipy_yasi-0.1.2.tar.gz",
"platform": null,
"description": "# yasi\n\n\n<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->\n\n## Background\n\nWhat if you could have a more fluid, interactive conversation with AI?\nEnter **Dialog Engineering**, a groundbreaking approach that lets you\nconstruct and edit a dialogue with the AI in real-time.\n\n> Unlike prompt engineering where you\u2019re just creating a single sentence\n> or paragraph or whatever, that\u2019s actually part of a whole back and\n> forth dialog. All of the previous steps get sent to the AI model as\n> well, not just the prompt. And they all greatly influence how it\n> responds. And how it responds influences you as to what you then add\n> to the dialog. - Jeremy Howard, from [the MAD Podcast\n> 34:42](https://www.youtube.com/watch?v=MbHL0uvKYbE&t=34h42s)\n\nYasi seamlessly integrates Jupyter Notebooks with AI to unlock the\npotential of Dialog Engineering. With yasi, you can create, edit, and\nrefine your conversations with AI. It is a DIY implementation of the -\nyet to be released - platform [solveit](https://solveit.fast.ai/) from\nanswer.ai.\n\nFor more information see the following articles:\n\n- [Dialog\n Engineering](https://www.linkedin.com/pulse/dialog-engineering-tobias-klings-jq34f)\n- [Introducing Dialog Engineering with\n yasi](https://www.linkedin.com/pulse/boost-your-ai-interactions-tobias-klings-bcnqe)\n\n## Usage\n\n### Installation\n\nInstall latest from the GitHub\n[repository](https://github.com/Jack-Byte/yasi):\n\n``` sh\n$ pip install git+https://github.com/Jack-Byte/yasi.git\n```\n\nor from [pypi](https://pypi.org/project/yasi/)\n\n``` sh\n$ pip install ipy-yasi\n```\n\n### Documentation\n\nDocumentation can be found hosted on this GitHub\n[repository](https://github.com/Jack-Byte/yasi)\u2019s\n[pages](https://Jack-Byte.github.io/yasi/). Additionally you can find\npackage manager specific guidelines on\n[conda](https://anaconda.org/Jack-Byte/yasi) and\n[pypi](https://pypi.org/project/yasi/) respectively.\n\n## How to use\n\nYou can try it online with Binder\n[](https://mybinder.org/v2/gh/Jack-Byte/yasi/HEAD?urlpath=%2Fdoc%2Ftree%2F%2Fexamples%2Fmoney_and_kangaroos.ipynb)\n\nImport JupyterChat, set openai_base_url (only if you are not using\nOpenai itself), and provide your api key directly or as the env variable\n`OPENAI_API_KEY`.\n\n``` python\nfrom yasi.core import JupyterChat\n\njc = JupyterChat(openai_base_url=\"https://openrouter.ai/api/v1\", api_key=None)\n```\n\n### Query Openai directly\n\nYou can use the `send_query` method to interacte through a code cell\ndirectly. The response will be added as a new markdown cell in your\ncurrent notebook.\n\n``` python\njc.send_query('Kia ora, how are you?')\n```\n\nKia ora! I\u2019m doing well, thanks for asking! It\u2019s great to connect with\nyou and practice some basic Maori phrases. How can I help you today?\n\n### Send Dialoge from your Notebook\n\nJupyterChat is designed to extract messages from your current notebook\nand construct a dialoge.\n\nIt\u2019s searching for markdown cells that contain the tags\n\n- `#| chat_system` (optional) sets the context for the conversation,\n providing the AI with a \u201chint\u201d about the type of response expected\n- `#| chat_user` your messages\n- `#| chat_assistant` the AIs real responses, or the ones that you\n ingest into the dialog\n\nand sends the dialog to the Openai API.\n\n\n",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "DIY alternative to solve it from fast.ai (Yet-Another-SolveIt)",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/Jack-Byte/yasi"
},
"split_keywords": [
"nbdev",
"jupyter",
"notebook",
"python"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1d404692ef45d2c494aad6f0eb15fcfc004285aa1498c7c2c789800fbceb18b9",
"md5": "624f559a348e647da3cc52940956d75a",
"sha256": "cb709416f77eea7c27318c83c1add4fc8e6a61a819183d442865281ae7850879"
},
"downloads": -1,
"filename": "ipy_yasi-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "624f559a348e647da3cc52940956d75a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 12062,
"upload_time": "2025-07-17T04:31:13",
"upload_time_iso_8601": "2025-07-17T04:31:13.606010Z",
"url": "https://files.pythonhosted.org/packages/1d/40/4692ef45d2c494aad6f0eb15fcfc004285aa1498c7c2c789800fbceb18b9/ipy_yasi-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "848a26e4906f60db6c61c701ffd7a183e98f271c92f0770fd51f015484920b33",
"md5": "bb59cde6d02698b7c9bb451970264871",
"sha256": "9a5e8c904f4c8dbd4c36a78f45f5e9616ec9990055e9e0b02167babaec25c3dd"
},
"downloads": -1,
"filename": "ipy_yasi-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "bb59cde6d02698b7c9bb451970264871",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 12555,
"upload_time": "2025-07-17T04:31:14",
"upload_time_iso_8601": "2025-07-17T04:31:14.579302Z",
"url": "https://files.pythonhosted.org/packages/84/8a/26e4906f60db6c61c701ffd7a183e98f271c92f0770fd51f015484920b33/ipy_yasi-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-17 04:31:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Jack-Byte",
"github_project": "yasi",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "ipy-yasi"
}