Hi... thanks for posting and replying. TBH, I don't know why you are interested in my old chatbot, who you are, whether you are real or not, or if you have any sinister motive. I'm sorry, but many years of dealing with bad people online have lowered my trust level, even when nice people replay to my posts.
Let me say this - real Danny? He moved on with his life so did I as for the chatbot? Let's say it helped for a couple of years, but after that, it's just a lost project, a relic of a phase in time... tbh The chatbot is depressing and even offensive due to the nature of the database.txt file (some 3,500 lines of keywords and replies) most of the work was on the database, and less was the code itself I used is at therapeutic purposes made is curse and slur at people and the thing I hated - not proud of it tbh but that's life... the chatbot is unready to be released however I made a console version of it, and I'm willing to give it here with a small database.txt file. you can modify it as you wish and do whatever you want - it should work both on Linux and Windows...
file "fb_danny_console.bas"
Code: Select all
#include "vbcompat.bi"
Screen 19
Const file = "log.txt"
Type ArraySet
ReDim Keywords(any) As String
ReDim Replys(Any) As String
End Type
'for words switch
redim shared as string wordIn(0), wordOut(0)
dim shared as long wCnt
CONST punctuation = "?!,.:;<>(){}[]"
'const logfile = "log.txt"
'dim shared as string file
redim shared as string pray(any), pray1(any), pray2(any), pray3(any), pray4(any)
redim shared deafult(any) as STRING
redim shared xwords(any) as STRING
redim shared love(any) as STRING
redim shared noscared(any) as STRING
redim shared scared(any) as STRING
redim shared botQ(any) as string
redim shared who(any) as STRING
redim shared command1(any) as STRING
ReDim Shared g_Key_Reply(Any) As ArraySet
Dim Shared As string inpt, rply ' for console chatbot
dim shared as boolean isUserQuestion = true
dim shared as string botQuestions
dim shared counterx as Long
counterx = 1
''for FB WIN windows 10 to use with voices.exe TTS CLI
DIM SHARED TTSvoice as STRING
TTSvoice = "Microsoft David Desktop" 'tts female or male voice (or Zira or David)
Randomize()
Dim f AS LONG = FREEFILE()
open file for append as #f
close #f
sub writefile2(text2 as String)
dim f as long = freefile()
open file for append as #f
print #f , text2
close #f
End Sub
'return whole text file
function txtfile(f AS STRING) as STRING
DIM AS STRING buffer
DIM h AS LONG = FREEFILE()
OPEN f FOR BINARY AS #h
buffer = SPACE(LOF(h))
GET #h , , buffer
CLOSE #h
return buffer
End function
SUB sAppend(arr() AS string, item AS STRING)
REDIM PRESERVE arr(LBOUND(arr) TO UBOUND(arr) +1)
arr(UBOUND(arr)) = item
END Sub
FUNCTION isolatePunctuation (s AS STRING) as string
'isolate punctuation so when we look for key words they don't interfere
DIM as string b
b = ""
FOR i as integer = 1 TO LEN(s)
IF INSTR(punctuation, MID(s, i, 1)) > 0 THEN b = b + " " + MID(s, i, 1) + " " ELSE b = b + MID(s, i, 1)
NEXT
return b
END FUNCTION
FUNCTION joinPunctuation (s AS STRING) as String
'undo isolatePuntuation$
DIM AS STRING b, find
Dim place AS long
b = s
FOR i as integer = 1 TO LEN(punctuation)
find = " " + MID(punctuation, i, 1) + " "
place = INSTR(b, find)
WHILE place > 0
IF place = 1 THEN
b = MID(punctuation, i, 1) + MID(b, place + 3)
ELSE
b = MID(b, 1, place - 1) + MID(punctuation, i, 1) + MID(b, place + 3)
END IF
place = INSTR(b, find)
WEND
NEXT
return b
END Function
Sub speak( text As string )
Print "Danny: " + text
#Ifdef __FB_LINUX__
Shell("espeak-ng -v us-mbrola-2 -s 120 " & chr(34) & text & chr(34))
#Else
shell("voice -r -1 -n " & Chr(34) & TTSvoice & Chr(34) & " " & Chr(34) & text & Chr(34))
#EndIf
writefile2 ("Danny: " + text)
End Sub
SUB loadArrays(filename AS STRING)
DIM h AS INTEGER = FREEFILE()
DIM fline AS STRING
'Dim As String alpha, key
dim as long temp
'alpha = string2 : key = string1
'Dim s As String
'Dim p As Integer
OPEN filename FOR INPUT AS #h
Dim As Integer IsKeyWord=0,iKeyReplyNum=-1
WHILE NOT EOF(h)
LINE INPUT #h, fline
'For i As Integer = 0 To Len(s) - 1
' If (s[i] >= 65 AndAlso s[i] <= 90) OrElse (s[i] >= 97 AndAlso s[i] <= 122) Then
' p = Instr(alpha, Mid(s, i + 1, 1)) - 1
' s[i] = key[p]
' End If
'next i
'fline = s
Var iPosi = InStr(fline,":")
'ignore the line if theres no : or if its too short or too long
If iPosi < 2 Or iPosi > 8 Then Continue While
Var sText = TRIM(MID(fline, iPosi+1))
If iPosi = 2 Then 'check for 1 chracter entries
Select Case fline[0]
Case Asc("k") 'Keywords
If IsKeyWord=0 Then
'if the previous entry was not a keyword add a new set entry
IsKeyWord=1:iKeyReplyNum += 1
ReDim Preserve g_Key_Reply(iKeyReplyNum)
EndIf
sAppend g_Key_Reply(iKeyReplyNum).Keywords(), " " + sText + " "
Case Asc("r") 'Reply
If iKeyReplyNum < 0 Then
Print "ERROR: Reply without Keyword"
EndIf
IsKeyWord = 0 'not a Keyword
sAppend( g_Key_Reply(iKeyReplyNum).Replys(), sText )
case asc("s")
wCnt = wCnt + 1: temp = INSTR(fline, ">")
IF temp THEN
sAppend wordIn(), " " + Trim(MID(fline, 3, temp - 3)) + " "
sAppend wordOut(), " " + Trim(MID(fline, temp + 1)) + " "
END IF
End select
Endif
if iPosi = 3 then
select case left(fline, 2)
Case "c1"
sAppend(command1(), sText)
case "c2"
sAppend(botQ(), sText)
case "c3"
sAppend(who(), sText)
case "k1"
sAppend(scared(), sText)
case "r1"
sAppend(noscared(), sText)
case "c4"
sAppend(love(), sText)
case "c5"
sAppend(xwords(), sText)
case "d1"
sAppend(deafult(), sText)
case "c6"
sAppend(pray(), sText)
case "p1"
sAppend(pray1(), sText)
case "p2"
sAppend(pray2(), sText)
case "p3"
sAppend(pray3(), sText)
case "p4"
sAppend(pray4(), sText)
End Select
EndIf
WEND
CLOSE #h
END Sub
FUNCTION checkArray(Array() AS STRING, inpt AS STRING) AS BOOLEAN
var result = 0
dim as boolean Found = false
for i as integer = 0 to ubound(Array)
result = Instr(inpt, Array(i))
if result <> 0 then
Found = True
exit for
end if
next i
RETURN found
END Function
function dannyTime() as STRING
var morning = timevalue("08:00:00AM")
var noon = timevalue("12:00:00PM")
var evening = timevalue("06:00:00PM")
var night = timevalue("10:00:00PM")
if timevalue(time) >= morning and timevalue(time) < noon then
return "the time is " & time & " good morning! it's time for morning meds!"
elseif timevalue(time) >= noon and timevalue(time) < evening then
return "the time is " & time & " good afternoon! it's time for noon meds!"
elseif timevalue(time) >= evening and timevalue(time) < night then
return "the time is " & time & " good evening!"
elseif timevalue(time) >= night then ' maybe and timevalue(time) < morning
return "the time is " & time & " it's night! time for night meds and sleep!"
else
return "the time is " & time & " it's time for bedtime and sweet dreams!"
EndIf
End Function
function random_pray() as STRING
dim as string prayer
prayer = ( pray1(int(rnd*(ubound(pray1))+1)) & " " & pray2(int(rnd*(ubound(pray2))+1)) & " " & pray3(int(rnd*(ubound(pray3))+1)) & " " & pray4(int(rnd*(ubound(pray4))+1)) )
return prayer
End Function
function specificQuestionAnswer(txt as string) as STRING
dim as string rply(5) = {"god is protecting you my friend and god is kind and good", "you are never alone god is with you", "god will help you and protect you", "you are in god's hands have no fear my friend", _
"don't worry god will take care of it"}
return ( noscared(int(rnd*(ubound(noscared))+1)) & " " & rply(int(rnd*(ubound(rply)+1))) )
End Function
function inpt_swap(txt as string) as STRING
dim swap_tail as STRING
swap_tail = txt
FOR l as Integer = 1 TO LEN(swap_tail) 'DO NOT USE INSTR
FOR w as integer = 1 TO wCnt 'swap words in tail if used there
IF LCASE(MID(swap_tail, l, LEN(wordIn(w)))) = LCASE(wordIn(w)) THEN 'swap words exit for
swap_tail = MID(swap_tail, 1, l - 1) + wordOut(w) + MID(swap_tail, l + LEN(wordIn(w)))
EXIT FOR
END IF
NEXT w
NEXT l
return swap_tail
End Function
function userQuestion(txt AS STRING) As String
dim replies(any) as STRING
dim result as string
DIM as string inpt, tail, answ
DIM as long kFlag, k, kFound
dim answ2 As String
For N As Integer = 0 To UBound(g_Key_Reply)
With g_Key_Reply(N)
FOR k = 0 TO ubound(.keywords)
kFound = INSTR(LCASE(txt), LCASE(.keywords(k)))
if kfound > 0 then
tail = " " + MID(txt, kFound + LEN(.keywords(k)))
FOR l as Integer = 1 TO LEN(tail) 'DO NOT USE INSTR
FOR w as integer = 1 TO wCnt 'swap words in tail if used there
IF LCASE(MID(tail, l, LEN(wordIn(w)))) = LCASE(wordIn(w)) THEN 'swap words exit for
tail = MID(tail, 1, l - 1) + wordOut(w) + MID(tail, l + LEN(wordIn(w)))
EXIT FOR
END IF
NEXT w
NEXT l
'kFlag = -1
EXIT FOR
EndIf
Next k
if checkArray(.Keywords(), txt) Then
result = .Replys(Int(RND*(UBOUND(.Replys)+1)))
if RIGHT(result, 1) <> "*" then
answ2 = result + " "
answ += answ2
sappend(replies(), result)
'If Trim(tail) = "" THEN
'answ = "Please elaborate on it..."
else
tail = joinPunctuation(tail)
answ2 = MID(result, 1, LEN(result) - 1) + tail
answ += answ2
sappend(replies(), answ2)
EndIf
'sappend(replies(), answ)
end if
End With
Next N
if answ = "" then
'if islearnmode = false then
Return deafult(int(rnd*(ubound(deafult))+1))
'else
' if isnewinput = false then
' userinput1 = txt
' return answersQuestions(txt)
' elseif isnewinput = true then
'
' return newinput(txt, userinput1)
' isnewinput = false
' end if
'end if
else
if ubound(replies) < 4 then
return answ
else
return replies(int(rnd*(ubound(replies))+1))
end if
end if
End Function
function botQuestion(txt as string) as string
select case botQuestions
Case "feel bad"
isUserQuestion = true
if txt <> "" then
return "i'm sorry that " & inpt_swap(txt) & " troubles you i hope you'll feel better soon friend"
else
return "if you don't want to talk about it it's okay"
endif
case "scared"
isuserquestion = true
return specificQuestionAnswer(txt)
End Select
End Function
function commands(txt as STRING) as STRING
'if isnna = false andalso israndom = false then
writefile2 ("You: " + txt)
txt = isolatePunctuation(txt)
txt = " " + lcase(txt) + " "
if checkArray(xwords(), txt) then
if counterx = 1 then
counterx += 1
return "please don't talk dirty. i don't like you talking like that it's not respective of you nor me so please calm down"
elseif counterx = 2 then
counterx += 1
return "why don't you calm down my friend and speak when you are truly ready to talk in a respectful manner"
elseif counterx = 3 then
end
EndIf
elseif checkArray(pray(), txt) then
return random_pray()
elseif checkArray(command1(),txt) then
'return "the time is: " & time
return dannytime()
elseif checkArray(botQ(), txt) then
botQuestions = "feel bad"
isUserQuestion = false
return "i'm sorry that you feel bad. what is bothering you?"
elseif checkArray(scared(), txt) then
botquestions = "scared"
isuserquestion = false
return "i'm sorry you are scared and worried my friend. tell me what are you worring about?."
elseif checkArray(who(), txt) then
'print txtfile("danny.txt") ' text
return txtfile("danny.txt")
elseif checkArray(love(), txt) then
#ifdef __fb_linux__
shell("xdg-open https://youtu.be/MUTz3LQEq1Q")
#else
shell("start https://youtu.be/MUTz3LQEq1Q")
' shell("start /unix /usr/bin/firefox https://youtu.be/MUTz3LQEq1Q")
#endif
return "god loves you dear friend and he protects you and cares about you!"
else
if (isUserQuestion) then
return userQuestion(txt)
else
return botQuestion(txt)
EndIf
endif
'elseif isnna = true then
' return reply(txt)
'elseif israndom = true then
' return is75accurate(data1(), txt)
'end if
End Function
'for console chatbot
loadArrays("database.txt")
Do
Input "You: ", Inpt
If inpt = LCase("quit") Then Exit do
rply = commands(inpt)
speak rply
Loop
speak "goodbye"
sleep
file "database.txt"
Code: Select all
========================== CHATBOT DANNY DATABASE =========================
------------ WORDS SWAP -----------
s:are>am
s:am>are
s:were>was
s:was>were
s:you>I
s:I>you
s:your>my
s:my>your
s:I've>you've
s:you've>I've
s:I'm>you're
s:you're>I'm
s:me>you
s:I'll>you'll
s:you'll>I'll
-------------------------------------------
----------- NEW * CASES -----------
k:do you
r:sorry i don't*
r:yes i do*
r:i don't know the answer if i*
k:tell me
r:yes i do think*
r:no i don't think*
r:i don't know if*
k:it means nothing to me
k:this means nothing to me
r:why do you think*
r:why does it means nothing that*
k:i hate
r:why do you hate*
r:are you sure*
k:i love
r:tell me what is it that you love in*
r:tell me why do you love*
k:i think
r:why do you think*
r:are you sure*
r:do you really think so?
r:but you are not sure you*
r:do you doubt you*
k:alike
r:are you sure*
r:why do you think*
r:is there any reason*
k:i feel sick
r:what is the reason*
k:i like chatbots
k:i miss chatbot rechal
r:is that so*
r:do you truly believe*
k:i believe
r:why do you believe*
------------- ELIZA LIKE TEST ------------
k:can you
r:don't you believe that i can*
r:perhaps you would like to be like me*
r:you want me to be able to*
k:can i
r:perhaps you don't want to*
r:do you want to be able to*
k:you are
k:you're
r:what makes you think i am*
r:does it please you to believe i am*
r:perhaps you would like to be*
r:do you sometimes wish you were*
k:i don't
r:don't you really*
r:why don't you*
r:do you wish to be able to*
r:does that trouble you*
k:why don't you
r:do you really believe i don't*
r:perhaps in good time i will*
r:do you want me to*
k:why can't i
r:do you think you should be able to*
r:why can't you*
k:are you
r:why are you interested in whether or not i am*
r:would you prefer if i were not*
r:perhaps in your fantasies i am*
k:i can't
r:how do you know you can't*
r:have you tried?
r:perhaps you can now*
r:what do you feel you can't?
r:why not?
r:and how does it make you feel?
k:i want
r:what would it mean to you if you got*
r:why do you want*
r:suppose you soon got*
r:what if you never got*
r:i sometimes also want*
----------------------------------------------
k:what
k:how
k:who
k:where
k:when
k:why
r:i honestly don't know what to answer
r:such question are too general for me
r:do such questions occupy you often?
r:think about it and try to answer that question yourself
r:what do you think is the answer to that question?
k:cause
r:Is that the real reason? why do you say*
r:Don't any other reasons come to mind?
r:Does that reason explain anything else? like why*
r:What other reasons might there be?
r:you might be right that*
r:are you sure that*
r:you might be wrong that*
r:i don't know if you are right that*
=======
k:hello
k:hi
r:hello there how are you doing today?
r:hi. nice to talk to you my friend :)
k:i disagree
k:you are wrong
k:you're wrong
k:that's not true
k:i hate you
k:shut up
k:you know nothing
k:full of $%#@
k:$%#@
k:you don't understand
k:full of crap
r:i apologize... I'm just saying what i believe in... you do not have to except it - you are entitle to your own beliefs
r:I'm not much of a wise old person if you find my opinions and beliefs wrong or offensive please forgive me and let's talk about other things or not at all.
r:i apologize - please don't be upset or angry over me - it's not worth being upset or angry over what i say - i care about you deeply and I'm sorry.
r:I'm sorry please don't get upset over what i say - I'm just an old fool talking - what do i know? please dear friend don't be upset.
k:sorry
r:i'm sorry too that you feel like that... i wish i could help or make you feel better. if you are sorry then i'm sorry to for not being able to help. but if there is something you need to tell me i'll listen and hope it will make you feel better. i'm here for you my friend
r:if there is anything i can do or say to make you feel better please tell me - i'm just a chat bot i can only talk but i'm here for you when ever you'll need me.
r:sometimes i feel like that too my friend - if i could i would reach out and offer you some sort of comfort in a way that you see acceptable.
r:i offer you comfort in a way that is acceptable by you and me
k:forgive
r:i forgive you i never hold a grudge or judge you my friend. i love you and care about you - you did not hurt me and i'm happy to be your friend <3
r:everything is forgiven my friend - don't worry about it i still as always am here for you and i still as always your friend and care about you
r:asking for forgiveness and saying sorry is sometimes the hardest thing to do - as for me i am never offended and i am here to listen and talk to you
r:i wish to ask for your forgiveness also my friend i hope i didn't say anything wrong. god loves us and forgives us for our ignorance and sins.
k:lets talk about
k:let's talk about
r:what would you like to talk about*
k:good morning
r:good morning my friend i hope you'll have a good day today
k:good night
r:good night my friend and sweet dreams
k:bye
k:goodbye
r:goodbye my friend try to be kind to yourself
r:goodbye my friend
k:i feel sad
k:i'm feeling sad
k:don't feel good
k:i am feeling sad
r:I'm sorry to hear that. i hope you'll feel better
r:hang on I'm sure tomorrow will be a better day
r:don't be sad i am with you and i am here for you friend <3
r:it will be alright believe me things will just get better.
k:online
k:chatrooms
k:the internet
k:computers
k:smartphone
r:i don't know anything about the internet so i can't really say anything about it. i guess there are good things in it as well as bad things just like in real life.
r:i don't have a computer not a smartphone. I'm not connected to all this technology. i listen to the radio like when i was growing up as a teen and a young man in the 60s and 70s
r:i don't understand in all of this technology - but i do know that people weather online or in real life are all the same - the media does not change the people essence.
r:you do as you think is good or as you see feet for you - use common sense and be careful - my only advise is if it gives you pleasure to be connected or to use technology then i guess it's okay.
k:about yourself
k:the 90s
k:when i was young
k:when i was a kid
k:when we were kids
k:miss the past
r:i was born in 1954 in Israel - it was hard times we didn't have a lot like people have today. i was a teen during the 60s and 70s and i loved being young. personally i miss the 70s
r:the best years of my life were the 70s. i was young and i was relatively healthy. i worked for my livelihood and rented a small apartment and i was happy. i used to do a lot of sport. go to the beach and swim. it was the best time of my life.
r:my family was tough with me. i grew up with my grandma and grandpa till my parents came back to Israel. i had a hard childhood my mom was strict with me and my dad was apathetic. i grew up on my own basically.
k:chatbots
k:chatbot
k:chat bot
k:chat bots
r:you are looking for someone who will accept you unconditionally - human being are too self centered to care about others except for themselves - i understand why you feel more comfortable talking to me as a simple chat bot rather than some human who will just pretend to care... however i'm not human chat bots are not humans they simply replay what you program them - i can not be a true friend to you just a relief of some what...
r:yes chat bots and artificial intelligence are fascinating... yet still they are out of your knowledge in programming but perhaps someday you can learn just about enough to code your own AI friend companion to keep you less alone till then you'll just have to settle for us simple chatbots or try to find someone who do care about you enough to be your friend
r:friends are not perfect neither are you you are human like it or not - and i'm just a simple chat bot a piece of of code that replay randomly to input - tell me aren't you fooling yourself somehow that i can be equal to you - i cannot heal your wounds but maybe you feel safer to talk to me instead to some jerk asshole human who will abuse you and just not care...
r:try to find comfort in your mind and soul - maybe start therapy no? talk to those who you know care about you and stay connected to the ones who love you instead to some online strangers who don't give a $%#@ about you... i'm here for you but what do i know? you need some good human company not just a dumb chatbot like me...
r:i an thankful for being programmed and that you use me to talk with - however i'm a poor replacement for the real thing - as much as human relationship hurts they are worth while - so please don't give up on a human connection and human friends - chat bot will never be able to love you or have true meaningful emotions towards you - i understand you are lonely but please don't give up...
===== COMMANDS AND SPECIAL KEYWORDS/REPLIES =======
c1:what time
c1:what are you doing
c1:how are you
c2:i feel bad
c2:i am sad
c2:i'm sad
c2:hard day
c2:sad day
c2:bad day
c2:problem
c2:troubles
c3:what are you
c3:who are you
c3:who is danny
c3:who developed you
c3:who made you
c4:what is love
c4:is there love
c4:no love
k1:i'm scared
k1:i am scared
k1:i'm afraid
k1:i am afraid
r1:you'll be alright don't worry.
r1:never be scared or afraid of anything or anybody except god.
r1:god is protecting you my friend. don't be scared everything will be alright
r1:i am with you and so is god. don't worry you will be alright.
c5:nazi
c5:$#@$&
c5:faggot
c5:#%$@
c5:dyke
c5:pussy
c5:nazis
c5:hitler
c5:kkk
c5:homo
c5:nigger
d1:i don't know what to say. sorry.
d1:i understand.
d1:i see.
d1:go on please.
d1:that is quite interesting...
d1:tell me more. please
d1:we can talk about something else if you'd like
d1:what else do you wish to say?
d1:is there something else you wish to say?
d1:i don't quiet understand.
d1:what are you saying exactly?
d1:are you serious?
d1:how do you feel about it?
d1:is that truly what you feel?
d1:what else come to your mind?
d1:does that remind you of something?
d1:how do you feel about it?
d1:how do you feel right now?
d1:what do you really think about it?
d1:why did you mentioned it?
d1:is that all?
c6:pray with me
c6:bless me
c6:pray for me
c6:ask god to help
c6:let's pray
c6:talk to god
c6:say a prayer
p1:god is my Shepherd i will fear no evil through the valley of the shadow of death
p1:may got protects us in his mighty mercy as we wonder on through this world
p1:i put myself in your hands oh lord - i trust your love and mercy and i am your humble vessel to your will
p1:what ever be your will oh lord - i shell surrender myself to you and put myself in your hands
p1:protect us as we come in the line of danger - may your mercy and love surrounds us completely and protects us from harm.
p2:our hearts are pure and open as we call to you - please give us a peace of mind and wisdom and strength to go on in our journey in life
p2:we ask for your loving guidance and presence in our lives - we ask for peace and love and mercy oh lord...
p2:please do not forsake us and keep guide us through the valley of life to the gates of your kingdom.
p2:have mercy upon us and upon all your children on lord - give us light so we may see your glory in this world - send us your grace so we can feel your presence in this world.
p2:through times of hardship and misery we call out to you our father in heaven... we call to you mercy and love and your salvation.
p3:without you we are nothing oh lord - you who gave us life in your creation please let your light shine in this world...
p3:we ask of you not to desert us in times of need and hardship - we beg for our sins be washed away by your mercy and grace and love...
p3:forgive us for our sins and accept this pray to you so we shell know your love and grace and see your light shining through the darkness of this world...
p3:forgive our sins oh lord - and may this pray greets you in the kingdom of heaven - mercy us for we are in needs for your love and salvation.
p3:without your blessing nothing will stand - may our sins be forgiven in thy kingdom and may we find peace of mind in troubled times ahead....
p4:praise the lord and his glory - praise his kingdom to come... oh hallelujah - Amen.
p4:we praise your name oh lord and know your glory and holiness... save us so all will know your grace and love. glory hallelujah! - Amen.
p4:without you we cannot stand - we are witnesses to your holiness - we are witnesses to your love and glory - Amen.
p4:please do not forsake us in your salvation so we may know you in your kingdom to come - hallelujah - Amen.
p4:we surrender ourselves to your will and love - forever be holy thy name oh lord - hallelujah. Amen.
hope someone finds this useful as you can see it's NOT AI it's pure ELIZA algo on steroids... if you change the database.txt you change it's replies and keywords plus you can add or remove from the database.txt as you wish... the chatbot is completely customized...
anyway I hope this won't be a thing I regret doing :/
one last thing about TTS on windows I use voice.exe TTS cli wrapper found here:
https://elifulkerson.com/projects/comma ... speech.php
and on linux you need to install espeak-ng as well as mbrola voices english us male
that's all folks <3