Skip to content

Create fulfillment webhooks for Dialogflow using Python.

License

Notifications You must be signed in to change notification settings

gcaccaos/dialogflow-fulfillment

Repository files navigation

dialogflow-fulfillment

PyPI version Downloads Tests status Documentation status Maintainability GitHub license

dialogflow-fulfillment is a package for Python that helps developers to create webhook services for Dialogflow.

The package provides an API for creating and manipulating response messages, output contexts and follow-up events in conversations.

A simple example

from dialogflow_fulfillment import QuickReplies, WebhookClient


# Define a custom handler function
def handler(agent: WebhookClient) -> None:
    """
    This handler sends a text message along with a quick replies message
    back to Dialogflow, which uses the messages to build the final response
    to the user.
    """
    agent.add('How are you feeling today?')
    agent.add(QuickReplies(quick_replies=['Happy :)', 'Sad :(']))


# Create an instance of the WebhookClient
agent = WebhookClient(request)

# Handle the request using the handler function
agent.handle_request(handler)

# Get the response
response = agent.response

Installation

The preferred way to install dialogflow-fulfillment is from PyPI with pip:

pip install dialogflow-fulfillment

Features

dialogflow-fulfillment's key features are:

  • Webhook Client: handle webhook requests using a custom handler function or a map of handlers for each intent
  • Contexts: process input contexts and add, set or delete output contexts
  • Events: trigger follow-up events with optional parameters
  • Rich Responses: create and send the following types of rich response messages:
    • Text
    • Image
    • Card
    • Quick Replies
    • Payload

More examples

Documentation

For more information about the package, guides and examples of usage, see the documentation.

Contribute

All kinds of contributions are welcome!

For an overview about how to contribute to dialogflow-fulfillment, see the contributing guide.

License

This project is licensed under the Apache 2.0 license.

For more details about the license, see the LICENSE file.

Acknowledgments

Thanks to the Dialogflow development team!