刚开始使用AIML,似乎无法使while ((c = getchar()) != '\n' && c != EOF);
命令用于链接同义词。我正在使用Ruby on Rails和Programr gem。例如,以下是我的代码:
<srai>
当我输入你的时候,我的聊天机器人不明白我在说什么。在命令日志中,您可以看到它查询“Hi”而不是“Hello”。知道我可能会指向哪里错误吗?
作为补充参考,这是我的控制器:
<?xml version="1.0" encoding="UTF-8"?>
<aiml version="1.0">
<category>
<pattern>HELLO</pattern>
<template>Hi there!</template>
</category>
<category>
<pattern>HI</pattern>
<template><srai>HELLO</srai></template>
</category>
</aiml>
我的初始化程序:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
def ask_warwick
reaction = WARWICK.get_reaction(params[:query])
render json: { response: reaction.present? ? reaction : 'I do not understand' }
end
end
答案 0 :(得分:1)
宝石代码中的错误
进入gem并找到文件lib / programr / aiml_parser.rb
然后注释掉193附近的行,其中显示currentSrai = Srai.new
text_file = open("Output.txt", "w", encoding='utf8')