Assistant
public class Assistant
The IBM Watson™ Assistant service combines machine learning, natural language understanding, and an integrated dialog editor to create conversation flows between your apps and your users. The Assistant v2 API provides runtime methods your client application can use to send user input to an assistant and receive a response.
-
The base URL to use when contacting the service.
Declaration
Swift
public var serviceURL: String? -
Release date of the API version you want to use. Specify dates in YYYY-MM-DD format. The current version is
2021-06-14.Declaration
Swift
public var version: String -
Service identifiers
Declaration
Swift
public static let defaultServiceName: String -
The default HTTP headers for all requests to the service.
Declaration
Swift
public var defaultHeaders: [String : String] -
Undocumented
Declaration
Swift
public let authenticator: Authenticator -
Create a
Assistantobject.If an authenticator is not supplied, the initializer will retrieve credentials from the environment or a local credentials file and construct an appropriate authenticator using these credentials. The credentials file can be downloaded from your service instance on IBM Cloud as ibm-credentials.env. Make sure to add the credentials file to your project so that it can be loaded at runtime.
If an authenticator is not supplied and credentials are not available in the environment or a local credentials file, initialization will fail by throwing an exception. In that case, try another initializer that directly passes in the credentials.
- serviceName: String = defaultServiceName
-
Create a
Assistantobject.Declaration
Swift
public init(version: String, authenticator: Authenticator)Parameters
versionRelease date of the API version you want to use. Specify dates in YYYY-MM-DD format. The current version is
2021-06-14.authenticatorThe Authenticator object used to authenticate requests to the service
-
Allow network requests to a server without verification of the server certificate. IMPORTANT: This should ONLY be used if truly intended, as it is unsafe otherwise.
Declaration
Swift
public func disableSSLVerification() -
Create a session.
Create a new session. A session is used to send user input to a skill and receive responses. It also maintains the state of the conversation. A session persists until it is deleted, or until it times out because of inactivity. (For more information, see the documentation.
Declaration
Swift
public func createSession( assistantID: String, headers: [String: String]? = nil, completionHandler: @escaping (WatsonResponse<SessionResponse>?, WatsonError?) -> Void)Parameters
assistantIDUnique identifier of the assistant. To find the assistant ID in the Watson Assistant user interface, open the assistant settings and click API Details. For information about creating assistants, see the documentation. Note: Currently, the v2 API does not support creating assistants.
headersA dictionary of request headers to be sent with this request.
completionHandlerA function executed when the request completes with a successful result or error
-
Delete session.
Deletes a session explicitly before it times out. (For more information about the session inactivity timeout, see the documentation).
Declaration
Swift
public func deleteSession( assistantID: String, sessionID: String, headers: [String: String]? = nil, completionHandler: @escaping (WatsonResponse<Void>?, WatsonError?) -> Void)Parameters
assistantIDUnique identifier of the assistant. To find the assistant ID in the Watson Assistant user interface, open the assistant settings and click API Details. For information about creating assistants, see the documentation. Note: Currently, the v2 API does not support creating assistants.
sessionIDUnique identifier of the session.
headersA dictionary of request headers to be sent with this request.
completionHandlerA function executed when the request completes with a successful result or error
-
Send user input to assistant (stateful).
Send user input to an assistant and receive a response, with conversation state (including context data) stored by Watson Assistant for the duration of the session.
Declaration
Swift
public func message( assistantID: String, sessionID: String, input: MessageInput? = nil, context: MessageContext? = nil, userID: String? = nil, headers: [String: String]? = nil, completionHandler: @escaping (WatsonResponse<MessageResponse>?, WatsonError?) -> Void)Parameters
assistantIDUnique identifier of the assistant. To find the assistant ID in the Watson Assistant user interface, open the assistant settings and click API Details. For information about creating assistants, see the documentation. Note: Currently, the v2 API does not support creating assistants.
sessionIDUnique identifier of the session.
inputAn input object that includes the input text.
contextContext data for the conversation. You can use this property to set or modify context variables, which can also be accessed by dialog nodes. The context is stored by the assistant on a per-session basis. Note: The total size of the context data stored for a stateful session cannot exceed 100KB.
userIDA string value that identifies the user who is interacting with the assistant. The client must provide a unique identifier for each individual end user who accesses the application. For user-based plans, this user ID is used to identify unique users for billing purposes. This string cannot contain carriage return, newline, or tab characters. If no value is specified in the input, user_id is automatically set to the value of context.global.session_id. Note: This property is the same as the user_id property in the global system context. If user_id is specified in both locations, the value specified at the root is used.
headersA dictionary of request headers to be sent with this request.
completionHandlerA function executed when the request completes with a successful result or error
-
Send user input to assistant (stateless).
Send user input to an assistant and receive a response, with conversation state (including context data) managed by your application.
Declaration
Swift
public func messageStateless( assistantID: String, input: MessageInputStateless? = nil, context: MessageContextStateless? = nil, userID: String? = nil, headers: [String: String]? = nil, completionHandler: @escaping (WatsonResponse<MessageResponseStateless>?, WatsonError?) -> Void)Parameters
assistantIDUnique identifier of the assistant. To find the assistant ID in the Watson Assistant user interface, open the assistant settings and click API Details. For information about creating assistants, see the documentation. Note: Currently, the v2 API does not support creating assistants.
inputAn input object that includes the input text.
contextContext data for the conversation. You can use this property to set or modify context variables, which can also be accessed by dialog nodes. The context is not stored by the assistant. To maintain session state, include the context from the previous response. Note: The total size of the context data for a stateless session cannot exceed 250KB.
userIDA string value that identifies the user who is interacting with the assistant. The client must provide a unique identifier for each individual end user who accesses the application. For user-based plans, this user ID is used to identify unique users for billing purposes. This string cannot contain carriage return, newline, or tab characters. If no value is specified in the input, user_id is automatically set to the value of context.global.session_id. Note: This property is the same as the user_id property in the global system context. If user_id is specified in both locations in a message request, the value specified at the root is used.
headersA dictionary of request headers to be sent with this request.
completionHandlerA function executed when the request completes with a successful result or error
-
Identify intents and entities in multiple user utterances.
Send multiple user inputs to a dialog skill in a single request and receive information about the intents and entities recognized in each input. This method is useful for testing and comparing the performance of different skills or skill versions. This method is available only with Enterprise with Data Isolation plans.
Declaration
Swift
public func bulkClassify( skillID: String, input: [BulkClassifyUtterance]? = nil, headers: [String: String]? = nil, completionHandler: @escaping (WatsonResponse<BulkClassifyResponse>?, WatsonError?) -> Void)Parameters
skillIDUnique identifier of the skill. To find the skill ID in the Watson Assistant user interface, open the skill settings and click API Details.
inputAn array of input utterances to classify.
headersA dictionary of request headers to be sent with this request.
completionHandlerA function executed when the request completes with a successful result or error
-
List log events for an assistant.
List the events from the log of an assistant. This method requires Manager access, and is available only with Enterprise plans.
Declaration
Swift
public func listLogs( assistantID: String, sort: String? = nil, filter: String? = nil, pageLimit: Int? = nil, cursor: String? = nil, headers: [String: String]? = nil, completionHandler: @escaping (WatsonResponse<LogCollection>?, WatsonError?) -> Void)Parameters
assistantIDUnique identifier of the assistant. To find the assistant ID in the Watson Assistant user interface, open the assistant settings and click API Details. For information about creating assistants, see the documentation. Note: Currently, the v2 API does not support creating assistants.
sortHow to sort the returned log events. You can sort by request_timestamp. To reverse the sort order, prefix the parameter value with a minus sign (
-).filterA cacheable parameter that limits the results to those matching the specified filter. For more information, see the documentation.
pageLimitThe number of records to return in each page of results.
cursorA token identifying the page of results to retrieve.
headersA dictionary of request headers to be sent with this request.
completionHandlerA function executed when the request completes with a successful result or error
-
Delete labeled data.
Deletes all data associated with a specified customer ID. The method has no effect if no data is associated with the customer ID. You associate a customer ID with data by passing the
X-Watson-Metadataheader with a request that passes data. For more information about personal data and customer IDs, see Information security. Note: This operation is intended only for deleting data associated with a single specific customer, not for deleting data associated with multiple customers or for any other purpose. For more information, see Labeling and deleting data in Watson Assistant.Declaration
Swift
public func deleteUserData( customerID: String, headers: [String: String]? = nil, completionHandler: @escaping (WatsonResponse<Void>?, WatsonError?) -> Void)Parameters
customerIDThe customer ID for which all data is to be deleted.
headersA dictionary of request headers to be sent with this request.
completionHandlerA function executed when the request completes with a successful result or error
View on GitHub
Assistant Class Reference