You need to enable JavaScript to run this app. 如何将Python实现的简单聊天机器人代码转写为可运行的Prolog版本
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python实现的简单聊天机器人代码转写为可运行的Prolog版本

Prolog简单聊天机器人实现方案

原代码核心错误

  • 语法违规:首字母大写的Res是变量,不能作为子句头定义规则,Res :- ... 写法完全不合法
  • 未定义依赖:调用的in_my_list_of_elements谓词不存在,运行时会直接抛出不存在错误
  • 逻辑缺失:没有实现用户输入读取、输入内容清洗、问答匹配的核心逻辑
  • 变量未绑定:main子句中直接输出Res时该变量无任何绑定值,无法输出有效内容

完整可运行实现

:- initialization(main).

% 定义问答对事实
qa("what is ipv4", "Internet Protocol version 4 is the fourth version of the Internet Protocol.").
qa("what is router", "A router is a device that forwards data packets between computer networks.").
qa("what is osi", "The OSI Model is an ISO reference computer network model divided into layers of functions.").

main :-
    % 输出引导语
    write("Hello, can i help you?"), nl,
    % 读取用户输入
    read_line_to_string(user_input, RawInput),
    % 输入清洗:转小写
    string_lower(RawInput, LowerInput),
    % 去除所有问号
    string_replace(LowerInput, "?", "", NoQuesInput),
    % 去除首尾空白字符
    trimws(NoQuesInput, CleanInput),
    % 匹配问答对
    (   qa(CleanInput, Answer)
    ->  write(Answer)
    ;   write("Sorry, answer not found.")
    ),
    nl,
    halt.

运行方式

将代码保存为chatbot.pl,安装SWI-Prolog环境后,执行命令swipl chatbot.pl即可启动运行,输入问题即可得到对应回复。


内容的提问来源于stack exchange,提问作者Felipe Alves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 13:45:04