Skip to content

Neurotech-HQ/sarufi-python-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sarufi-python-sdk

Downloads Downloads Downloads

Sarufi Python SDK to help you interact with SARUFI platform

Table of Contents

Installation

Make sure you have sarufi package installed on your machine before launching your telegram bot, you can easily install by the following command;

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;

>>> 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;

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;

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.

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;

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;

>>> 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

>>> 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

>>> 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
  2. Anthony Mipawa