Python聊天机器人

#!/usr/bin/python
# coding=utf-8
import json
import urllib
import datetime
from urllib import urlencode
# ----------------------------------
# {
#     "reason":"成功的返回",
#     "result": /*根据code值的不同,返回的字段有所不同*/
#         {
#             "code":100000, /*返回的数据类型,请根据code的值去数据类型API查询*/
#             "text":"你好啊"
#         },
#      "error_code":0
# }
# ----------------------------------

def main():

    print tm()
    appkey = "****************************" # appKey

    print ‘Your name: ‘
    user = raw_input(‘‘)
    print ‘Where are you: ‘
    loc = raw_input()
    print ‘----> OK, You can ask me question <----‘

    while 1:
        print tm(), ‘ ‘, user, ‘: \n\t‘,
        Q = raw_input()
        if Q == ‘exit‘:
            break
        # 1.问答
        res = request1(user, loc, Q, appkey, "GET")
        print tm(), ‘Robot: \n\t‘, result(res)

def result(res):
    if res:
        error_code = res["error_code"]
        if error_code == 0:
            # 成功请求
            return res["result"][‘text‘]
        else:
            return "%s:%s" % (res["error_code"], res["reason"])
    else:
        return "request api error"

def tm():

    now = datetime.datetime.now()
    return now.strftime(‘%m-%d %H:%M:%S‘)

# 问答
def request1(user, loc, que, appkey, m="GET"):
    url = "http://op.juhe.cn/robot/index"
    params = {
        "key": appkey,  # APPKEY
        "info": que,  # 要发送给机器人的内容,不要超过30个字符
        "dtype": "",  # 返回的数据的格式,json或xml,默认为json
        "loc": loc,  # 地点,如北京中关村
        "lon": "",  # 经度,东经116.234632(小数点后保留6位),需要写为116234632
        "lat": "",  # 纬度,北纬40.234632(小数点后保留6位),需要写为40234632
        "userid": user,  # 1~32位,此userid针对您自己的每一个用户,用于上下文的关联
    }
    params = urlencode(params)
    if m == "GET":
        f = urllib.urlopen("%s?%s" % (url, params))
    else:
        f = urllib.urlopen(url, params)

    content = f.read()
    res = json.loads(content)

    return res

# 数据类型
def request2(appkey, m="GET"):
    url = "http://op.juhe.cn/robot/code"
    params = {
        "dtype": "",  # 返回的数据格式,json或xml,默认json
        "key": appkey,  # 您申请本接口的APPKEY,请在应用详细页查询

    }
    params = urlencode(params)
    if m == "GET":
        f = urllib.urlopen("%s?%s" % (url, params))
    else:
        f = urllib.urlopen(url, params)

    content = f.read()
    res = json.loads(content)
    if res:
        error_code = res["error_code"]
        if error_code == 0:
            # 成功请求
            print res["result"]
        else:
            print "%s:%s" % (res["error_code"], res["reason"])
    else:
        print "request api error"

if __name__ == ‘__main__‘:
    main()
时间: 2024-09-27 02:36:17

Python聊天机器人的相关文章

如何优雅的用Python玩转语音聊天机器人

一名极客运维人员,走在脑洞大开的路上.... Python聊天机器人:可以感应人是否存在,识别语音,通过图灵API语音回答 -------------------------上图镇楼---------------------------- [详细攻略] 所需硬件: 树莓派B+ 人体红外线感应模块 内置麦克风摄像头(实测树莓派免驱淘宝链接) 申请API: 百度语音api 图灵api 语音聊天机器人实现原理:当有人来到跟前时-->触发聊天功能,开始以每2s检测录制语音-->通过百度语音api合成文

Python进阶开发之网络编程,socket实现在线聊天机器人

系列文章 √第一章 元类编程,已完成 ; √第二章 网络编程,已完成 ; 本文目录 什么是socket?创建socket客户端创建socket服务端socket工作流程图解socket公共函数汇总实战:搭建在线聊天机器人 . 什么是socket? 说到网络编程,难免要提到socket? 那什么是socket呢,中文名叫"套接字",更难理解了吧. 通俗来讲,socket表示一个网络连接,通过这个连接,使得主机间或者一台计算机上的进程间可以通讯. 不管是不同主机,还是同一主机.既然是通信,

Python微信公众号后台开发&lt;005&gt;:集成智能聊天机器人?

?给公众号集成一个智能聊天机器人 一.前述 ChatterBot是一个基于机器学习的聊天机器人引擎,构建在python上,主要特点是可以自可以从已有的对话中进行学(jiyi)习(pipei). 二.具体 1.安装 是的,安装超级简单,用pip就可以啦 pip install chatterbot 2.流程 大家已经知道chatterbot的聊天逻辑和输入输出以及存储,是由各种adapter来限定的,我们先看看流程图,一会再一起看点例子,看看怎么用. 3.每个部分都设计了不同的“适配器”(Adap

python—多任务版udp聊天机器人

将多任务(多线程)引入到udp聊天机器人,可以实现同时发送消息和接收消息 1 import socket 2 import threading 3 4 5 def udp_send(udp_socket,ip,port): 6 while True: 7 try: 8 # 获取发送的信息 9 data = input('请输入要发送的信息:') 10 udp_socket.sendto(data.encode('gbk'), (ip,port)) 11 12 except Exception a

【Python成长之路】从零学GUI -- 制作智能聊天机器人

[写在前面] 鹏哥:最近老惹小燕同学不开心,结果都没人陪我聊天了.哎,好无聊呀! 肥宅男:女朋友什么的最无聊了,还没我的图灵机器人好玩. 鹏哥:图灵?好巧,和我部门同名. [效果如下] [实现过程] 1.GUI界面制作,其实和之前的几篇文章一样,没用到什么新的方法或者技巧,因此就不多说了. 2.智能聊天机器人的实现: 其实这块“核心代码”只是调用了对外商用的“图灵机器人”.在偶尔的机会中,看到有这么一个有趣的网站,http://www.turingapi.com/ 因此就申请了个账号(未认证的个

Tensorflow打造聊天机器人

Tensorflow聊天机器人 聊天机器人也叫做对话系统,是一个热门领域.微软.facebook.苹果.google.微信.slack都在上面做了大的投入,这是一波新的试图改变人和服务交流的创业浪潮.例如operator x.ai,chatfuel,以及一些库例如botkit,微软的bot开发库. 许多公司都希望机器人可以自然对话,和人类没有区别.并且许多对外声明说用了NLP和深度学习技术来实现这个目标.但围绕AI这些天花乱坠的宣传有时候也很难区别现实和虚化的差别. 我要在这个系列文章里将一些构

初识BOT聊天机器人

最近在想毕业设计做什么,因为在看Python,所以想做个Python项目,浏览网页看到了"BOT",据说这个今年(应该是过去的2016,还没适应~)有点火哈.闭关时间有点久,有点跟不上时代潮流了. BOT是什么?既然谈潮流这么高大上的东西当然不是简单指LOL里面的下路了.这里的BOT指的是ChatBot--聊天机器人. 这个我知道,微软小冰嘛,有调戏过.正好我一直想做一个用来提醒自己任务,安排时间的东西,可以和这个联系在一起,没毛病,继续百度Google. BOT的过去和现在 过去的B

用 AIML 开发人工智能聊天机器人

借助 Python 的 AIML 包,我们很容易实现人工智能聊天机器人.AIML 指的是 Artificial Intelligence Markup Language (人工智能标记语言),它不过是简单的可 XML (扩展标记语言)形式.本文的示例代码将带你初步领略如何借助 Python 创建属于你的人工智能聊天机器人. AIML 是什么? AIML由Richard Wallace发明.他设计了一个名为 A.L.I.C.E.  (Artificial Linguistics Internet

基于torch学汪峰写歌词、聊天机器人、图像着色/生成、看图说话、生成字幕

手把手教你基于torch玩转 学汪峰写词.自动聊天机器人.图像着色.图像生成.看图说话.生成字幕 作者:骁哲.李伟.小蔡.July.说明:本教程出自七月在线开发/市场团队.及七月在线5月深度学习班学员之手,有何问题欢迎加Q群交流:472899334.时间:二零一六年十月十二日. 前言 我们教梵高作画的教程发布之后,国庆7天,上百位朋友一一陆续动手尝试,大有全民DL.全民实验之感.特别是来自DL班的小蔡同学,国庆7天连做10个开源实验,并把这10个实验的简易教程(含自动聊天机器人)发布在社区上:h