https://github.com/neurotech-hq/sarufi-python-sdk
  
  
    Sarufi Python SDK to help you interact with Sarufi Conversational API 
    https://github.com/neurotech-hq/sarufi-python-sdk
  
conversational-platform sarufi sarufi-sdk
        Last synced: 24 days ago 
        JSON representation
    
Sarufi Python SDK to help you interact with Sarufi Conversational API
- Host: GitHub
- URL: https://github.com/neurotech-hq/sarufi-python-sdk
- Owner: Neurotech-HQ
- License: apache-2.0
- Created: 2022-05-14T17:50:30.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-05T16:33:46.000Z (over 1 year ago)
- Last Synced: 2025-04-15T14:53:48.203Z (7 months ago)
- Topics: conversational-platform, sarufi, sarufi-sdk
- Language: Python
- Homepage: https://docs.sarufi.io/
- Size: 59.6 KB
- Stars: 23
- Watchers: 0
- Forks: 13
- Open Issues: 4
- 
            Metadata Files:
            - Readme: README.md
- License: LICENSE
 
Awesome Lists containing this project
README
          
# sarufi-python-sdk
[](https://pepy.tech/project/sarufi)
[](https://pepy.tech/project/sarufi)
[](https://pepy.tech/project/sarufi)
Sarufi Python SDK to help you interact with SARUFI platform
## Table of Contents
- [Installation](#installation)  
- [Authentication](#authentication)  
- [Creating a Bot](#creating-a-bot)  
    - [Creating a Bot from file](#creating-a-bot-from-file)  
- [Updating bot](#updating-bot)     
    - [Update a bot from file](#update-a-bot-from-file)  
- [Using it in a conversation](#using-it-in-a-conversation)    
    - [Get a bot](#get-a-bot)  
- [Deleting a bot](#deleting-a-bot) 
## Installation
Make sure you have [sarufi package](https://github.com/Neurotech-HQ/sarufi-python-sdk) installed on your machine before launching your telegram bot, you can easily install by the following command;
```bash
git clone https://github.com/Neurotech-HQ/sarufi-python-sdk
cd sarufi-python-sdk
sarufi-python-sdk $ python setup.py install
```
## Authentication
To authenticate you're bot, you have to specify your client_id and client_secret for Sarufi Platform just as shown below;
```python
>>> from sarufi import Sarufi
>>> sarufi = Sarufi(api_key='your API KEY')
```
## Creating a Bot
To create you're bot with sarufi, you have to be aware of two importants idea or concepts which is **intents** and **flow**.
Here an example on how to create your bot;
```python
sarufi.create_bot(
    name="Athony bot",
    description="My bot can do a lot",
    intents={
        "salamu": ["Mambo", "Hi", "Hello", "Niaje"],
        "contact": [
            "naomba mawasiliano",
            "naomba number",
            "naomba namba",
            "nipe mawasiliano",
            "nipe contact",
        ],
    },
    flow={
        "salamu": {"message": ["Hi", "Naimani upo salama"], "next": "end"},
        "contact": {
            "message": ["Ungependa kupata namba ya nani ?"],
            "next_state": "chukua_namba",
        },
        "chukua_namba": {
            "message": ["Namba ya huyo mtu ni 07374734737", "Karibu tena !!"],
            "next_state": "end",
        },
    },
)
```
### Creating a Bot from file
You can create your bot from a file, Here is an example on how to create your bot from a file;
```python
from sarufi import Sarufi
sarufi = Sarufi(api_key='your API KEY')
if __name__ == "__main__":
    response = sarufi.create_from_file(
        intents="data/intents.yaml",
        flow="data/flows.yaml",
        metadata="data/metadata.yaml",
    )
    print(response.data)
```
## Updating bot
Updating the bot is comparatively similar to creating a bot but this time you have to explicity specify the **project ID** of your bot.
```python
sarufi.update_bot(
    name="Athony bot",
    description="My bot can do a lot",
    intents={
        "salamu": ["Mambo", "Hi", "Hello", "Niaje"],
        "contact": [
            "naomba mawasiliano",
            "naomba number",
            "naomba namba",
            "nipe mawasiliano",
            "nipe contact",
        ],
    },
    flow={
        "salamu": {"message": ["Hi", "Naimani upo salama"], "next": "end"},
        "contact": {
            "message": ["Ungependa kupata namba ya nani ?"],
            "next_state": "chukua_namba",
        },
        "chukua_namba": {
            "message": ["Namba ya huyo mtu ni 07374734737", "Karibu tena !!"],
            "next_state": "end",
        },
    },
    id=2,
)
```
### Update a bot from file
You can update your bot from a file as follows;
```python
from sarufi import Sarufi
sarufi = Sarufi(api_key='your API KEY')
if __name__ == "__main__":
    response = sarufi.update_from_file(
        id=5,
        intents="data/intents.yaml",
        flow="data/flows.yaml",
        metadata="data/metadata.yaml",
    )
    print(response.data)
```
## Using it in a conversation
Here you have to know the bot ID and also specify your user unique ID;
```python
>>> from sarufi import Sarufi
>>> sarufi = Sarufi(api_key='your API KEY')
2022-08-23 18:30:32,918 - root - INFO - Getting token
>>> bots = sarufi.bots()
2022-08-23 18:30:38,223 - root - INFO - Getting bots
>>> bots
[Bot(id=4, name=iBank), Bot(id=5, name=Maria)]
>>> maria = bots[1]
>>> maria.respond('Hi')
2022-08-23 18:30:52,065 - root - INFO - Sending message to bot and returning response
2022-08-23 18:30:54,126 - root - INFO - Status code: 200
2022-08-23 18:30:54,127 - root - INFO - Message sent successfully
{'message': [['vipi uhali gani?'], ['umeshindaje?'], ['mzima wewe?'], ['Hello! u hali gani ?'], ['Freshi nambie ?'], ['Hi, mzima wewe'], ['salama sijui wewe'], ['za kwako?'], ['Vipi hali yako'], ['Uhali gani?']]}
>>> maria.respond("mi mzima wa afya")
2022-08-23 18:31:02,245 - root - INFO - Sending message to bot and returning response
2022-08-23 18:31:04,237 - root - INFO - Status code: 200
2022-08-23 18:31:04,237 - root - INFO - Message sent successfully
{'message': [['Ninafurahi kujua uko salama'], ['nimefurahi kusikia kutoka kwako'], ['Nipo salama pia, nimefurahi kusikia kutoka kwako'], ['Napenda kukuona ukiwa na furaha'], ['Nimefurahi kusikia hivyo'], ['Salama kabisa'], ['Mzima kabisa']]}
```
### Get a bot
Query a bot by ID
```python
>>> from sarufi import Sarufi
>>> sarufi = Sarufi(api_key='your API KEY')
>>> maria= sarufi.get_bot(5)
2022-08-23 18:44:05,473 - root - INFO - Getting token
>>> maria
Bot(id=5, name=Maria)
```
## Deleting a bot
Delete a bot by ID
```python
>>> from sarufi import Sarufi
>>> sarufi = Sarufi(api_key='your API KEY')
>>> sarufi.delete_bot(5)
```
### Issues ?
Are you facing any issue with the usage of the package, please raise one
## Contributors
1. [kalebu](https://github.com/kalebu/)
2. [Anthony Mipawa](https://github.com/Tonyloyt)