Python 로봇 채 팅 어떻게 실현

오늘 점심 시간 에 본의 아니 게 파 이 썬 실현 로봇 이라는 블 로 그 를 봤 는데 재 미 있 었 습 니 다.
그래서 간단 한 Python 채 팅 을 썼 습 니 다.소스 코드 는 다음 과 같 습 니 다.

# -*- coding: utf-8 -*-
import aiml
import sys
import os
 
 
def get_module_dir(name):
 print("module", sys.modules[name])
 path = getattr(sys.modules[name], '__file__', None)
 print(path)
 if not path:
 raise AttributeError('module %s has not attribute __file__' % name)
 return os.path.dirname(os.path.abspath(path))
 
 
alice_path = get_module_dir('aiml') + '\\botdata\\alice'
 
os.chdir(alice_path) #             
 
alice = aiml.Kernel() #      alice  
alice.learn("startup.xml") #   ...\\botdata\\alice\\startup.xml
alice.respond('LOAD ALICE') #   ...\\botdata\\alice       
 
while True:
 message = input("Enter your message >> ")
 if("exit" == message):
 exit()
 response = alice.respond(message) #      
 print(response)
메모:모듈 을 찾 을 수 없 을 때 pip 를 사용 하여 해당 모듈 을 설치 하 십시오.
효과 도 는 다음 과 같다.

유일한 옥 에 티 는 영어 이지 만 괜찮아 요.국내 에 투 령 로봇 이 있어 요.
코드 는 다음 과 같다.

from urllib.request import urlopen,Request
from urllib.error import URLError
from urllib.parse import urlencode
import json

class TuringChatMode(object):
  """this mode base on turing robot"""

  def __init__(self):
    # API    
    self.turing_url = 'http://www.tuling123.com/openapi/api?'

  def get_turing_text(self,text):
    '''     :  HTTP POST
          :                        
            key           32      APIkey
            info           1-32         ,     "utf-8"
            userid          32      MAC   ID
    '''
    turing_url_data = dict(
      key = 'fcbf9efe277e493993e889eabca5b331',
      info = text,
      userid = '60-14-B3-BA-E1-4D',

    )
    # print("The things to Request is:",self.turing_url + urlencode(turing_url_data))
    self.request = Request(self.turing_url + urlencode(turing_url_data))
    # print("The result of Request is:",self.request)

    try:
      w_data = urlopen(self.request)
      # print("Type of the data from urlopen:",type(w_data))
      # print("The data from urlopen is:",w_data)
    except URLError:
      raise IndexError("No internet connection available to transfer txt data")
      #         ,                    
    except:
      raise KeyError("Server wouldn't respond (invalid key or quota has been maxed out)")
      #                     

    response_text = w_data.read().decode('utf-8')
    # print("Type of the response_text :",type(response_text))
    # print("response_text :",response_text)

    json_result = json.loads(response_text)
    # print("Type of the json_result :",type(json_result))
    return json_result['text']

if __name__ == '__main__':
  print("Now u can type in something & input q to quit")

  turing = TuringChatMode()

  while True:
    msg = input("
Master:") if msg == 'q': exit("u r quit the chat !") # q, 。 else: turing_data = turing.get_turing_text(msg) print("Robot:",turing_data)
효과 도 는 다음 과 같다.

로봇 의 지능 이 너무 낮 아서 그런 지 동문서답 이다.
더 많은 하 이 라 이 트 는 투 령 로봇 홈 페이지 에 가서 알 수 있다http://www.tuling123.com
프로 그래 밍 의 세 계 는 재 미 있 습 니 다.탐색 하면 재 미 있 는 일 들 을 많이 발견 할 수 있 습 니 다.
이상 은 Python 이 로봇 채 팅 을 어떻게 실현 하 는 지 에 대한 상세 한 내용 입 니 다.python 이 로봇 채 팅 을 실현 하 는 데 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기