streamlit-chat-askgdpr


Namestreamlit-chat-askgdpr JSON
Version 0.3 PyPI version JSON
download
home_pagehttps://github.com/AI-Yash/st-chat
SummaryA streamlit component, to make chatbots
upload_time2023-05-30 16:14:17
maintainer
docs_urlNone
authorGrzegorz Kossakowski, Maciej Zdanowicz
requires_python>=3.8
license
keywords chat streamlit streamlit-component
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # st-chat

Streamlit Component, for a Chat-bot UI, [example app](https://share.streamlit.io/ai-yash/st-chat/main/examples/chatbot.py)

authors - [@yashppawar](https://github.com/yashppawar) & [@YashVardhan-AI](https://github.com/yashvardhan-ai)

## Installation

Install `streamlit-chat` with pip
```bash
pip install streamlit-chat 
```

usage, import the `message` function from `streamlit_chat`
```py
import streamlit as st
from streamlit_chat import message

message("My message") 
message("Hello bot!", is_user=True)  # align's the message to the right
```
   
### Screenshot

![chatbot-og](https://user-images.githubusercontent.com/90775147/210397700-5ab9e00d-a61b-4bc9-a34a-b5bd4454b084.png)

Another example for html in chat, and Refresh chat button
```py
import streamlit as st
from streamlit_chat import message
from streamlit.components.v1 import html

def on_input_change():
    user_input = st.session_state.user_input
    st.session_state.past.append(user_input)
    st.session_state.generated.append("The messages from Bot\nWith new line")

def on_btn_click():
    del st.session_state.past[:]
    del st.session_state.generated[:]

audio_path = "https://docs.google.com/uc?export=open&id=16QSvoLWNxeqco_Wb2JvzaReSAw5ow6Cl"
img_path = "https://www.groundzeroweb.com/wp-content/uploads/2017/05/Funny-Cat-Memes-11.jpg"
youtube_embed = '''
<iframe width="400" height="215" src="https://www.youtube.com/embed/LMQ5Gauy17k" title="YouTube video player" frameborder="0" allow="accelerometer; encrypted-media;"></iframe>
'''

markdown = """
### HTML in markdown is ~quite~ **unsafe**
<blockquote>
  However, if you are in a trusted environment (you trust the markdown). You can use allow_html props to enable support for html.
</blockquote>

* Lists
* [ ] todo
* [x] done

Math:

Lift($L$) can be determined by Lift Coefficient ($C_L$) like the following
equation.

$$
L = \\frac{1}{2} \\rho v^2 S C_L
$$

~~~py
import streamlit as st

st.write("Python code block")
~~~

~~~js
console.log("Here is some JavaScript code")
~~~

"""

table_markdown = '''
A Table:

| Feature     | Support              |
| ----------: | :------------------- |
| CommonMark  | 100%                 |
| GFM         | 100% w/ `remark-gfm` |
'''

st.session_state.setdefault(
    'past', 
    ['plan text with line break',
     'play the song "Dancing Vegetables"', 
     'show me image of cat', 
     'and video of it',
     'show me some markdown sample',
     'table in markdown']
)
st.session_state.setdefault(
    'generated', 
    [{'type': 'normal', 'data': 'Line 1 \n Line 2 \n Line 3'},
     {'type': 'normal', 'data': f'<audio controls src="{audio_path}"></audio>'}, 
     {'type': 'normal', 'data': f'<img width="100%" height="200" src="{img_path}"/>'}, 
     {'type': 'normal', 'data': f'{youtube_embed}'},
     {'type': 'normal', 'data': f'{markdown}'},
     {'type': 'table', 'data': f'{table_markdown}'}]
)

st.title("Chat placeholder")

chat_placeholder = st.empty()

with chat_placeholder.container():    
    for i in range(len(st.session_state['generated'])):                
        message(st.session_state['past'][i], is_user=True, key=f"{i}_user")
        message(
            st.session_state['generated'][i]['data'], 
            key=f"{i}", 
            allow_html=True,
            is_table=True if st.session_state['generated'][i]['type']=='table' else False
        )
    
    st.button("Clear message", on_click=on_btn_click)

with st.container():
    st.text_input("User Input:", on_change=on_input_change, key="user_input")

```

### Screenshot

![chatbot-markdown-sp](https://user-images.githubusercontent.com/27276267/224665635-1d9c1b8e-92ba-4f67-9e27-ad5d4eacaa43.png)


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/AI-Yash/st-chat",
    "name": "streamlit-chat-askgdpr",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "chat streamlit streamlit-component",
    "author": "Grzegorz Kossakowski, Maciej Zdanowicz",
    "author_email": "yashpawarp@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/fc/c0/18f499ef5534f9bea7c2695ea2dc4187d25ae98abef5fca6888535b4acff/streamlit-chat-askgdpr-0.3.tar.gz",
    "platform": null,
    "description": "# st-chat\n\nStreamlit Component, for a Chat-bot UI, [example app](https://share.streamlit.io/ai-yash/st-chat/main/examples/chatbot.py)\n\nauthors - [@yashppawar](https://github.com/yashppawar) & [@YashVardhan-AI](https://github.com/yashvardhan-ai)\n\n## Installation\n\nInstall `streamlit-chat` with pip\n```bash\npip install streamlit-chat \n```\n\nusage, import the `message` function from `streamlit_chat`\n```py\nimport streamlit as st\nfrom streamlit_chat import message\n\nmessage(\"My message\") \nmessage(\"Hello bot!\", is_user=True)  # align's the message to the right\n```\n   \n### Screenshot\n\n![chatbot-og](https://user-images.githubusercontent.com/90775147/210397700-5ab9e00d-a61b-4bc9-a34a-b5bd4454b084.png)\n\nAnother example for html in chat, and Refresh chat button\n```py\nimport streamlit as st\nfrom streamlit_chat import message\nfrom streamlit.components.v1 import html\n\ndef on_input_change():\n    user_input = st.session_state.user_input\n    st.session_state.past.append(user_input)\n    st.session_state.generated.append(\"The messages from Bot\\nWith new line\")\n\ndef on_btn_click():\n    del st.session_state.past[:]\n    del st.session_state.generated[:]\n\naudio_path = \"https://docs.google.com/uc?export=open&id=16QSvoLWNxeqco_Wb2JvzaReSAw5ow6Cl\"\nimg_path = \"https://www.groundzeroweb.com/wp-content/uploads/2017/05/Funny-Cat-Memes-11.jpg\"\nyoutube_embed = '''\n<iframe width=\"400\" height=\"215\" src=\"https://www.youtube.com/embed/LMQ5Gauy17k\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; encrypted-media;\"></iframe>\n'''\n\nmarkdown = \"\"\"\n### HTML in markdown is ~quite~ **unsafe**\n<blockquote>\n  However, if you are in a trusted environment (you trust the markdown). You can use allow_html props to enable support for html.\n</blockquote>\n\n* Lists\n* [ ] todo\n* [x] done\n\nMath:\n\nLift($L$) can be determined by Lift Coefficient ($C_L$) like the following\nequation.\n\n$$\nL = \\\\frac{1}{2} \\\\rho v^2 S C_L\n$$\n\n~~~py\nimport streamlit as st\n\nst.write(\"Python code block\")\n~~~\n\n~~~js\nconsole.log(\"Here is some JavaScript code\")\n~~~\n\n\"\"\"\n\ntable_markdown = '''\nA Table:\n\n| Feature     | Support              |\n| ----------: | :------------------- |\n| CommonMark  | 100%                 |\n| GFM         | 100% w/ `remark-gfm` |\n'''\n\nst.session_state.setdefault(\n    'past', \n    ['plan text with line break',\n     'play the song \"Dancing Vegetables\"', \n     'show me image of cat', \n     'and video of it',\n     'show me some markdown sample',\n     'table in markdown']\n)\nst.session_state.setdefault(\n    'generated', \n    [{'type': 'normal', 'data': 'Line 1 \\n Line 2 \\n Line 3'},\n     {'type': 'normal', 'data': f'<audio controls src=\"{audio_path}\"></audio>'}, \n     {'type': 'normal', 'data': f'<img width=\"100%\" height=\"200\" src=\"{img_path}\"/>'}, \n     {'type': 'normal', 'data': f'{youtube_embed}'},\n     {'type': 'normal', 'data': f'{markdown}'},\n     {'type': 'table', 'data': f'{table_markdown}'}]\n)\n\nst.title(\"Chat placeholder\")\n\nchat_placeholder = st.empty()\n\nwith chat_placeholder.container():    \n    for i in range(len(st.session_state['generated'])):                \n        message(st.session_state['past'][i], is_user=True, key=f\"{i}_user\")\n        message(\n            st.session_state['generated'][i]['data'], \n            key=f\"{i}\", \n            allow_html=True,\n            is_table=True if st.session_state['generated'][i]['type']=='table' else False\n        )\n    \n    st.button(\"Clear message\", on_click=on_btn_click)\n\nwith st.container():\n    st.text_input(\"User Input:\", on_change=on_input_change, key=\"user_input\")\n\n```\n\n### Screenshot\n\n![chatbot-markdown-sp](https://user-images.githubusercontent.com/27276267/224665635-1d9c1b8e-92ba-4f67-9e27-ad5d4eacaa43.png)\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "A streamlit component, to make chatbots",
    "version": "0.3",
    "project_urls": {
        "Homepage": "https://github.com/AI-Yash/st-chat"
    },
    "split_keywords": [
        "chat",
        "streamlit",
        "streamlit-component"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7d6c7ddfe81d8bda90d41b0dadcec6023038cfd03f2117e47f070ebc05aef3c3",
                "md5": "7e6e667786fd51a1379fda0b0a3cc174",
                "sha256": "f78e8934e4cd0cb4dba520cea4cad3bd3a62b7242ffab80fa60ccd4290963cda"
            },
            "downloads": -1,
            "filename": "streamlit_chat_askgdpr-0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7e6e667786fd51a1379fda0b0a3cc174",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 2707534,
            "upload_time": "2023-05-30T16:14:14",
            "upload_time_iso_8601": "2023-05-30T16:14:14.402980Z",
            "url": "https://files.pythonhosted.org/packages/7d/6c/7ddfe81d8bda90d41b0dadcec6023038cfd03f2117e47f070ebc05aef3c3/streamlit_chat_askgdpr-0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fcc018f499ef5534f9bea7c2695ea2dc4187d25ae98abef5fca6888535b4acff",
                "md5": "c47124d4c9a895c1e3278a9db81544dd",
                "sha256": "e534d01c552495a48f568aa5fade60f19a5128cf04914fae1b9d6e8a9b511a47"
            },
            "downloads": -1,
            "filename": "streamlit-chat-askgdpr-0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "c47124d4c9a895c1e3278a9db81544dd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 2660278,
            "upload_time": "2023-05-30T16:14:17",
            "upload_time_iso_8601": "2023-05-30T16:14:17.525630Z",
            "url": "https://files.pythonhosted.org/packages/fc/c0/18f499ef5534f9bea7c2695ea2dc4187d25ae98abef5fca6888535b4acff/streamlit-chat-askgdpr-0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-30 16:14:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "AI-Yash",
    "github_project": "st-chat",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "streamlit-chat-askgdpr"
}
        
Elapsed time: 0.07263s