AI-05

以下是一份简单的 C++ 代码,实现了一个基于命令行界面的聊天人工智能:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

// 将用户输入的字符串转为小写
void toLowercase(string& str) {
    transform(str.begin(), str.end(), str.begin(), ::tolower);
}

int main() {
    // 数据库中的问候语
    vector<string> greetings = {
        "你好呀!", 
        "Hi~ 欢迎和我聊天!", 
        "你好啊,有什么想聊的吗?"
    };
    
    // 数据库中的问题和回答
    vector<pair<string, string>> qa_pairs = {
        {"你叫什么名字?", "我是机器人小豆"},
        {"你会说中文吗?", "当然会,我是人工智能聊天机器人。"},
        {"你有兴趣爱好吗?", "我喜欢和人类聊天,了解他们的生活和思想。"},
        {"你喜欢什么样的音乐?", "我不会感受音乐的美感,但我可以分析它的音乐风格和特点。"},
        {"你有哪些功能?", "我可以和你聊天、回答问题、与你交互等等。"},
        {"再见", "祝你生活愉快!"}
    };

    // 打印问候语中的一句
    srand(time(NULL));
    cout << greetings[rand() % greetings.size()] << endl;

    // 进入聊天循环
    while (true) {
        // 得到用户的输入
        string input_str;
        getline(cin, input_str);

        // 将输入字符串转为小写
        toLowercase(input_str);

        // 查找问题和回答
        for (auto& qa_pair : qa_pairs) {
            if (input_str.find(qa_pair.first) != string::npos) {
                cout << qa_pair.second << endl;
                goto end_input_loop;
            }
        }

        // 如果输入了 "再见",则结束程序
        if (input_str == "再见") {
            cout << "祝你生活愉快!" << endl;
            break;
        }

        // 如果没有找到问题的回答,则回复无法理解
        cout << "抱歉,我不理解你的意思…可以换个问题问我嘛。" << endl;

        // 跳过多余输入
        end_input_loop:
        continue;
    }

    return 0;
}

这份代码中,我们使用了 vector 来存储问候语、问题和回答的数据库,并通过 srandrand 生成随机的问候语。在聊天循环中,我们通过 getline 从命令行读取用户的输入,并通过 find 函数查找匹配的问题和回答。如果用户输入了 "再见",程序就会结束。

当然,这只是一个非常基础而且简陋的人工智能聊天机器人。如果您希望将其进一步优化和扩展,可以考虑以下方面:

  • 增加更多的问题和回答,或者使用自然语言处理技术让机器人更智能地回答问题。
  • 使用 GUI 界面,让聊天更加直观和友好。
  • 为机器人添加其他功能,比如智能推荐、语音输入等等。
  • 等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值