Module: AliyunChatbot::Api

Included in:
Client
Defined in:
lib/aliyun_chatbot/api.rb

Constant Summary collapse

URL_BASE =
"chatbot.cn-shanghai.aliyuncs.com"

Instance Method Summary collapse

Instance Method Details

#chat_params(instance_id, utterance, session_id, knowledge_id) ⇒ Object

module Some end



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/aliyun_chatbot/api.rb', line 25

def chat_params( instance_id, utterance, session_id, knowledge_id)
  required =   {
    Action: 'Chat', #	String	是	系统规定参数,取值:Chat
    InstanceId: instance_id, #		String	是	机器人实例ID。登录云小蜜控制台,左侧面板选择开发者->基本配置,查看机器人示例信息,可获得该实例ID。
    Utterance: utterance, #		String	是	机器人访问者的输入
  }
  
  # String	否	
  # 会话ID,用于标识一个访问者的会话和保持上下文信息。
  # 对于一个新的访问者,首次调用Chat接口时无需传递此字段,机器人会开启一个会话,并在Chat接口的响应中返回该会话的SessionId。
  # 对于该访问者的后续轮次的会话,调用Chat接口时传递当前会话的SessionId,机器人即可基于SessionId继续该轮次会话。
  required.merge!({SessionId: session_id }) if session_id.to_s != ''
  
  #String	否	知识库词条的关联问题的ID。若指定此ID,那么机器人会直接返回指定的关联问题的答案
  required.merge!({KnowledgeId: knowledge_id }) if knowledge_id.to_s != ''
  
  # Perspective.1	String	否	视角编码,用于调用同一知识标题下不同视角的答案。在拼装请求参数时,需要以Perspective.1={视角编码}的格式传递参数。如:&Perspective.1=FZJBY3raWr。使用SDK时以SDK中定义的参数为准。目前仅支持一个视角答案的调用。
  required
end

#public_paramsObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/aliyun_chatbot/api.rb', line 9

def public_params
  uuid = SecureRandom.uuid
  {
    Format: 'json', #	String 	否	返回值的类型,支持 JSON 与 XML。默认为 XML。
    Version: '2017-10-11', #	String	是	API 版本号,为日期形式:YYYY-MM-DD,本版本对应为2017-10-11。
    AccessKeyId: ak_id,	# String	是	阿里云颁发给用户的访问服务所用的密钥 ID。
    # Signature	String	是	签名结果串,关于签名的计算方法,请参见签名机制。
    SignatureMethod: 'HMAC-SHA1', #	String	是	签名方式,目前支持 HMAC-SHA1。
    Timestamp: Time.now.utc.iso8601, #	String	是	请求的时间戳。日期格式按照 ISO8601 标准表示,并需要使用UTC时间。格式为:YYYY-MM-DDThh:mm:ssZ,例如 2017-10-11T12:00:00Z (为北京时间 2017 年 10 月 11 日 20 点 0 分 0 秒)。
    SignatureVersion: 1.0, #	String	是	签名算法版本,目前版本是 1.0。
    SignatureNonce: uuid #,	String
  }
end

#sender_params(sender_id, sender_nick, tag) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/aliyun_chatbot/api.rb', line 45

def sender_params(sender_id, sender_nick, tag)
  optional = {

  }
  #	String	否	访问者ID。用于识别当前会话中的用户
  optional.merge!({SenderId: sender_id }) if sender_id.to_s != ''
  #		String	否	当前会话中访问的昵称
  optional.merge!({SenderNick: sender_nick }) if sender_nick.to_s != ''
  #		String	否	可以传递任何内容参数,该参数将会直接在返回结果中透传回来。
  optional.merge!({Tag: tag }) if tag.to_s != ''
  optional
end