Ver Fonte

CHATBOT SDK Auto Released By yanke.yk,Version:1.22.0

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao há 7 anos atrás
pai
commit
1770c4b67c

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2018-07-05 Version: 1.22.0
+1, A new optional parameter 'Perspectives' is introduced to the 'Chat' API. By filling this parameter when calling 'Chat', you'll get the knowledge base content within the specified perspectives.
+
 2018-06-28 Version: 1.21.1
 1, ScalingConfiguration support hostName and passwordInherit
 2, ScalingConfiguration support modify

+ 114 - 0
services/chatbot/chat.go

@@ -0,0 +1,114 @@
+package chatbot
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// Chat invokes the chatbot.Chat API synchronously
+// api document: https://help.aliyun.com/api/chatbot/chat.html
+func (client *Client) Chat(request *ChatRequest) (response *ChatResponse, err error) {
+	response = CreateChatResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ChatWithChan invokes the chatbot.Chat API asynchronously
+// api document: https://help.aliyun.com/api/chatbot/chat.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChatWithChan(request *ChatRequest) (<-chan *ChatResponse, <-chan error) {
+	responseChan := make(chan *ChatResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.Chat(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ChatWithCallback invokes the chatbot.Chat API asynchronously
+// api document: https://help.aliyun.com/api/chatbot/chat.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ChatWithCallback(request *ChatRequest, callback func(response *ChatResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ChatResponse
+		var err error
+		defer close(result)
+		response, err = client.Chat(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ChatRequest is the request struct for api Chat
+type ChatRequest struct {
+	*requests.RpcRequest
+	KnowledgeId string    `position:"Query" name:"KnowledgeId"`
+	SenderId    string    `position:"Query" name:"SenderId"`
+	InstanceId  string    `position:"Query" name:"InstanceId"`
+	SenderNick  string    `position:"Query" name:"SenderNick"`
+	Perspective *[]string `position:"Query" name:"Perspective"  type:"Repeated"`
+	SessionId   string    `position:"Query" name:"SessionId"`
+	Tag         string    `position:"Query" name:"Tag"`
+	Utterance   string    `position:"Query" name:"Utterance"`
+}
+
+// ChatResponse is the response struct for api Chat
+type ChatResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	SessionId string    `json:"SessionId" xml:"SessionId"`
+	MessageId string    `json:"MessageId" xml:"MessageId"`
+	Tag       string    `json:"Tag" xml:"Tag"`
+	Messages  []Message `json:"Messages" xml:"Messages"`
+}
+
+// CreateChatRequest creates a request to invoke Chat API
+func CreateChatRequest() (request *ChatRequest) {
+	request = &ChatRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Chatbot", "2017-10-11", "Chat", "beebot", "openAPI")
+	return
+}
+
+// CreateChatResponse creates a response to parse from Chat response
+func CreateChatResponse() (response *ChatResponse) {
+	response = &ChatResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 81 - 0
services/chatbot/client.go

@@ -0,0 +1,81 @@
+package chatbot
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://help.aliyun.com/document_detail/66217.html
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://help.aliyun.com/document_detail/66223.html
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// attention: rsa key pair auth is only Japan regions available
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 25 - 0
services/chatbot/struct_knowledge.go

@@ -0,0 +1,25 @@
+package chatbot
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Knowledge is a nested struct in chatbot response
+type Knowledge struct {
+	Id           string `json:"Id" xml:"Id"`
+	Title        string `json:"Title" xml:"Title"`
+	Summary      string `json:"Summary" xml:"Summary"`
+	Content      string `json:"Content" xml:"Content"`
+	AnswerSource string `json:"AnswerSource" xml:"AnswerSource"`
+}

+ 24 - 0
services/chatbot/struct_message.go

@@ -0,0 +1,24 @@
+package chatbot
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Message is a nested struct in chatbot response
+type Message struct {
+	Type       string      `json:"Type" xml:"Type"`
+	Text       Text        `json:"Text" xml:"Text"`
+	Knowledge  Knowledge   `json:"Knowledge" xml:"Knowledge"`
+	Recommends []Recommend `json:"Recommends" xml:"Recommends"`
+}

+ 21 - 0
services/chatbot/struct_messages.go

@@ -0,0 +1,21 @@
+package chatbot
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Messages is a nested struct in chatbot response
+type Messages struct {
+	Message []Message `json:"Message" xml:"Message"`
+}

+ 25 - 0
services/chatbot/struct_recommend.go

@@ -0,0 +1,25 @@
+package chatbot
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Recommend is a nested struct in chatbot response
+type Recommend struct {
+	KnowledgeId  string `json:"KnowledgeId" xml:"KnowledgeId"`
+	Title        string `json:"Title" xml:"Title"`
+	AnswerSource string `json:"AnswerSource" xml:"AnswerSource"`
+	Summary      string `json:"Summary" xml:"Summary"`
+	Content      string `json:"Content" xml:"Content"`
+}

+ 21 - 0
services/chatbot/struct_recommends.go

@@ -0,0 +1,21 @@
+package chatbot
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Recommends is a nested struct in chatbot response
+type Recommends struct {
+	Recommend []Recommend `json:"Recommend" xml:"Recommend"`
+}

+ 22 - 0
services/chatbot/struct_text.go

@@ -0,0 +1,22 @@
+package chatbot
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Text is a nested struct in chatbot response
+type Text struct {
+	Content      string `json:"Content" xml:"Content"`
+	AnswerSource string `json:"AnswerSource" xml:"AnswerSource"`
+}