| |
|
|
| math.randomseed(os.time()) |
|
|
| |
| local memory = {} |
|
|
| |
| local knowledge = { |
| greetings = {"Hello!", "Hi there!", "Hey!", "Greetings!"}, |
| farewell = {"Goodbye!", "See you later!", "Take care!"}, |
| weather = {"It looks sunny today!", "Might rain later, take an umbrella!"}, |
| technology = {"AI is fascinating!", "Technology evolves rapidly!"}, |
| activities = {"What do you like to do for fun?", "I enjoy chatting with you!"} |
| } |
|
|
| |
| local function get_response(category) |
| if knowledge[category] then |
| return knowledge[category][math.random(#knowledge[category])] |
| else |
| return "I am not sure about that." |
| end |
| end |
|
|
| |
| local function update_memory(input) |
| for word in string.gmatch(input, "[%w']+") do |
| memory[word] = (memory[word] or 0) + 1 |
| end |
| end |
|
|
| |
| local function match_category(input) |
| for category, phrases in pairs(knowledge) do |
| for _, phrase in ipairs(phrases) do |
| if string.find(string.lower(input), string.lower(phrase)) then |
| return category |
| end |
| end |
| end |
| return nil |
| end |
|
|
| |
| while true do |
| io.write("You: ") |
| local input = io.read() |
| if input:lower() == "exit" then break end |
| |
| update_memory(input) |
| local category = match_category(input) |
| local response = category and get_response(category) or "I am still learning!" |
| |
| print("Voltage: " .. response) |
| end |
|
|