Skip to main content

Client library to use the IBM Watson Services

Project description

Build Status Slack codecov.io Latest Stable Version

Python client library to quickly get started with the various Watson APIs services.

Installation

To install, use pip or easy_install:

pip install --upgrade watson-developer-cloud

or

easy_install --upgrade watson-developer-cloud

Note the following:

  1. If you run into permission issues try:
sudo -H pip install --ignore-installed six watson-developer-cloud

For more details see #225

  1. In case you run into problems installing the SDK in DSX, try

    !pip install --upgrade pip
    

    Restarting the kernel

For more details see #405

Examples

The examples folder has basic and advanced examples.

Getting the Service Credentials

Service credentials are required to access the APIs.

If you run your app in IBM Cloud, you don’t need to specify the username and password or IAM API key (apikey). In that case, the SDK uses the VCAP_SERVICES environment variable to load the credentials. To run locally or outside of IBM Cloud you need the username and password credentials or IAM API key (apikey) for each service. (Service credentials are different from your IBM Cloud account email and password.)

To create an instance of the service:

  1. Log in to IBM Cloud.
  2. Create an instance of the service:
  3. Click on Create Resource.
  4. In the IBM Cloud Catalog, select the Watson service you want to use. For example, select the Conversation service.
  5. Type a unique name for the service instance in the Service name field. For example, type my-service-name. Leave the default values for the other options.
  6. Click Create.

To get your service credentials:

Copy your credentials from the Manage page. To find the Service details page for an existing service, navigate to your IBM Cloud dashboard and click the service name.

  1. On the Manage page, you will see a Credentials pane
  2. Depending on the service you will see use either:
  • 2.a: username, password, and url(optional).
  • 2.b: apikey which is the value for parameter iam_api_key when initializing the constructor.

Python Version

Tested on Python 2.7, 3.4, 3.5, and 3.6.

Changes for v1.0

Version 1.0 focuses on the move to programmatically-generated code for many of the services. See the changelog for the details.

Migration

This version includes many breaking changes as a result of standardizing behavior across the new generated services. Full details on migration from previous versions can be found here.

Configuring the http client (Supported from v1.1.0)

To set client configs like timeout use the with_http_config() function and pass it a dictionary of configs.

from watson_developer_cloud import AssistantV1

assistant = AssistantV1(
    username='xxx',
    password='yyy',
    version='2017-04-21')

assistant.set_http_config({'timeout': 100})
response = assistant.message(workspace_id=workspace_id, input={
    'text': 'What\'s the weather like?'})
print(json.dumps(response, indent=2))

Sending Request Headers

Custom headers can be passed in any request in the form of a dict as:

headers = {
    'Custom-Header': 'custom_value'
}

For example, to send a header called Custom-Header to a call in Watson Assistant, pass the headers parameter as:

from watson_developer_cloud import AssistantV1

assistant = AssistantV1(
    username='xxx',
    password='yyy',
    version='2017-04-21')

response = assistant.list_workspaces(headers={'Custom-Header': 'custom_value'})

Parsing HTTP Response Info

If you would like access to some HTTP response information along with the response model, you can set the set_detailed_response() to True

from watson_developer_cloud import AssistantV1

assistant = AssistantV1(
    username='xxx',
    password='yyy',
    version='2017-04-21')

assistant.set_detailed_response(True)
response = assistant.list_workspaces(headers={'Custom-Header': 'custom_value'})
print(response)

This would give an output of DetailedResponse having the structure:

{
    'result': <response returned by service>,
    'headers': { <http response headers> }
}

You can use the get_result() and get_headers() to return the result and headers respectively.

Dependencies

  • requests
  • python_dateutil >= 2.5.3
  • responses for testing
  • Following for web sockets support in speech to text
  • autobahn >= 0.10.9
  • Twisted >= 13.2.0
  • pyOpenSSL >= 16.2.0
  • service-identity >= 17.0.0

Contributing

See CONTRIBUTING.md.

License

This library is licensed under the Apache 2.0 license.

Project details


Release history Release notifications

This version
History Node

1.3.4

History Node

1.3.3

History Node

1.3.2

History Node

1.3.1

History Node

1.3.0

History Node

1.2.1

History Node

1.2.0

History Node

1.1.1

History Node

1.1.0

History Node

1.0.2

History Node

1.0.1

History Node

1.0.0

History Node

0.26.1

History Node

0.26.0

History Node

0.25.2

History Node

0.25.1

History Node

0.25.0

History Node

0.24.0

History Node

0.23.0

History Node

0.22.0

History Node

0.21.0

History Node

0.20.1

History Node

0.20.0

History Node

0.19.0

History Node

0.18.0

History Node

0.17.1

History Node

0.17.0

History Node

0.16.0

History Node

0.15.0

History Node

0.14.0

History Node

0.13.0

History Node

0.12.0

History Node

0.11.0

History Node

0.10.0

History Node

0.9.2

History Node

0.9.1

History Node

0.9.0

History Node

0.8.0

History Node

0.7.0

History Node

0.6.0

History Node

0.5.0

History Node

0.4.1

History Node

0.4.0

History Node

0.3.3

History Node

0.3.2

History Node

0.3.0

History Node

0.2.1

History Node

0.2.0

History Node

0.1.9

History Node

0.1.8

History Node

0.1.7

History Node

0.1.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
watson-developer-cloud-1.3.4.tar.gz (189.3 kB) Copy SHA256 hash SHA256 Source None May 18, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page