【阿里云】| 智能对话机器人(云小蜜) | 快速开发入门

一、环境要求

  • Python 3

  • 安装 SDK 核心库 OpenAPI ,使用pip安装包依赖: pip install alibabacloud_tea_openapi

  • SDK 安装方式

    1. PyPI PIP:pip install alibabacloud_chatbot20171011==2.0.1
    2. PyPI Anaconda:conda install alibabacloud_chatbot20171011=2.0.1

二、实现代码

  • sample demo 如下(涉及具体个人核心配置数据处,请对应自行修改填充)
# -*- coding: utf-8 -*-
#  @ Date   : 2022/1/27 16:27
#  @ Author : RichardLau_Cx
#  @ Project: Chatbot
#  @ File   : API_sample_new.py
#  @ IDE    : PyCharm


import ssl
import time
import uuid
import hmac
import base64
import requests
import urllib.parse
from hashlib import sha1
from Chatbot import configs  # 自定义的配置数据信息文件


# 解决访问ssl网站证书的问题
try:
    _create_unverified_https_context = ssl._create_unverified_context

except AttributeError:
    # Legacy Python that doesn't verify HTTPS certificates by default
    pass

else:
    # Handle target environment that doesn't support HTTPS verification
    ssl._create_default_https_context = _create_unverified_https_context

protocol = 'https://'
domain_name = 'chatbot.cn-shanghai.aliyuncs.com/'
Parameters = {
   
    'Format': 'JSON',
    'Version': '2017-10-11',
    'AccessKeyId': configs.AccessKeyId,
    'SignatureMethod': 'HMAC-SHA1',
    'SignatureVersion': 1.0
}


def percent_encode(code):
    """
    名称和值要使用 UTF-8 字符集进行 URL 编码,URL 编码的编码规则是:
        1.字符 A-Z、a-z、0-9 以及字符“-”、“_”、“.”、“~”,不进行编码;
        2.对于其他字符编码成“%XY”的格式,其中 XY 是字符对应 ASCII 码的 16 进制表示。比如英文的双引号对应的编码就是 “%22”;
        3.对于扩展的 UTF-8 字符,编码成“%XY%ZA…”的格式;
        4.注意英文空格要被编码成 “%20”,而不是加号“+”。
    :param code: 待编码串
    :return: 编码字符串
    """

    # result = urllib.parse.quote(str(code))
    encode = str(code)
    result = urllib.parse.quote(encode)
    result = result.replace('+', '%20')
    result = result.replace('/', '%2F')
    result = result.replace('*', '%2A')
    result = result.replace('%7E', '~')

    return result

# print("/: " + percent_encode('/'))


def signature(params):
    """
    签名机制
    :param params: 公共请求参数
    :return: 签名结果串
    """

    # 1. 使用请求参数来构造规范化的请求字符串(Canonicalized Query String)
    # 1.1 按照参数名称的字母顺序对请求中所有的请求参数进行排序
    sorted_params = sorted(params.items()
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值