热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

图灵聊天机器人API1.0与API2.0的使用方法

转:https:blog.csdn.netwww_rsqdz_netarticledetails79680461https:blog.csdn.netqq_42292

转:https://blog.csdn.net/www_rsqdz_net/article/details/79680461

 https://blog.csdn.net/qq_42292831/article/details/88677623 

思维导图:

图灵机器人: 

官网:http://www.turingapi.com/

官方教程:https://www.kancloud.cn/turing/www-tuling123-com/718227

源码: 

# -*- coding: utf-8 -*-
"""
Created on Tue Mar 19 22:07:22 2019
@author: dell
"""
 
import itchat
import requests
import json
itchat.auto_login(hotReload=True)
 
friends = itchat.get_friends()
 
def getResponse(msg):
    url = "http://openapi.tuling123.com/openapi/api/v2"
    data = {
        "reqType":0,
        "perception": {
            "inputText": {
                "text": msg
            },
            "inputImage": {
                "url": "imageUrl"
            }
        },
        "userInfo": {
            "apiKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            "userId": "Geclipse"
        }
    }
    data = json.dumps(data)
    r = requests.post(url,data).json()
    return r['results'][0]['values']['text']
 
 
@itchat.msg_register(itchat.content.TEXT)    #读取接受到的消息的TEXT部分内容,存储进默认的msg
 
def auto_reply(msg):
    friends_message = msg['Text']
    name = msg['FromUserName']
    reply = getResponse(friends_message)
    itchat.send(reply,toUserName=name)
 
itchat.run()

 

API1.0使用方法:

# file TurlingApi1.py
import requests
import json
import yuyinhecheng as hc

def Tuling(words):
    Tuling_API_KEY = "你的AK"

    body = {"key":Tuling_API_KEY,"info":words.encode("utf-8")}

    url = "http://www.tuling123.com/openapi/api"
    r = requests.post(url,data=body)
    if r:
        date = json.loads(r.text)
        print (list(date))
        print(date['text'])
        hc.speak(date['text'])
        try:
            for mylist in date['list']:
                str2=mylist[list(mylist)[0]]
                print(str2)
                hc.speak(str2)
                print(mylist)
        except:
            pass
        return date["text"]
    else:
        return None

if __name__=='__main__':
    Tuling('红烧肉菜谱')

API2.0使用方法:

# file TurlingApi2.py
import json
import urllib.request
import yuyinhecheng as hc

def Tuling(text_input):
    api_url = "http://openapi.tuling123.com/openapi/api/v2"

    req = {
        "perception":
    {
        "inputText":
        {
            "text": text_input
        },

        "selfInfo":
        {
            "location":
            {
                "city": "天津",
                "province": "天津",
                "street": "中央大道"
            }
        }
    },

    "userInfo": 
    {
        "apiKey": "你的AK",
        "userId": "demo"
    }
    }
    # 将字典格式的req编码为utf8
    req = json.dumps(req).encode('utf8')

    http_post = urllib.request.Request(api_url, data=req, headers={'content-type': 'application/json'})
    response = urllib.request.urlopen(http_post)
    response_str = response.read().decode('utf8')
    print(response_str)
    response_dic = json.loads(response_str)
    print(response_dic)

    intent_code = response_dic['intent']['code']
    if (int(str(intent_code)[0])<4):
        print (str(intent_code))
        listp&#61;list(response_dic[&#39;intent&#39;][&#39;parameters&#39;])
        print (response_dic[&#39;intent&#39;][&#39;parameters&#39;][listp[0]])
        str2&#61;response_dic[&#39;results&#39;][0][&#39;values&#39;][&#39;text&#39;]
        print(str2)
        hc.speak(str2)
        if ((intent_code&#61;&#61;10003)or (intent_code&#61;&#61;10015)) :
            for myresults in response_dic[&#39;results&#39;][1][&#39;values&#39;][&#39;news&#39;]:
                print (myresults)
                print(myresults[&#39;name&#39;])
                hc.speak(myresults[&#39;name&#39;])
    else:
        print(&#39;错误。错误代码&#xff1a;&#39; &#43; str(intent_code))

if __name__&#61;&#61;&#39;__main__&#39;:
    Tuling(&#39;水煮鱼菜谱&#39;)

语言合成&#xff1a;

#file yuyinhecheng.py

import win32com
import pyttsx3
def speak(str):
    engine &#61; pyttsx3.init()
    voices &#61; engine.getProperty(&#39;voices&#39;)
    engine.setProperty(&#39;voice&#39;,voices[3].id)
    engine.say(str)
    engine.runAndWait()
 


推荐阅读
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • Hyperledger Fabric 1.4 节点 SDK 快速入门指南
    本文将详细介绍如何利用 Hyperledger Fabric 1.4 的 Node.js SDK 开发应用程序。通过最新版本的 Fabric Node.js SDK,开发者可以更高效地构建和部署基于区块链的应用,实现数据的安全共享和交易处理。文章将涵盖环境配置、SDK 安装、示例代码以及常见问题的解决方法,帮助读者快速上手并掌握核心功能。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
author-avatar
手机用户2502909293
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有