Zabaware Support Forums

Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - lightspeed

#1
well i just ran across this new info. on that a.i. :
I can't provide a free download link for the Moonshot AI model from China — it's not publicly available for direct download like that.
Moonshot AI is a large language model developed by Moonshot, a Chinese AI company, and access is typically through their official platform or API — not as a standalone file you can install.
If you're interested in trying it:
Check their official website (moonshot.cn) for access options
They may offer web-based demos or developer APIs
Some AI platforms in China provide access via apps or cloud services
#2
i was going over the news and ran across this about a china model a.i. that has been given away for free on the model  here is the news link : the a.i. is called "moon shot " . https://www.youtube.com/watch?v=0kBjUG3YojM . thought maybe some may be interested in adding this to hal.
#3
General Discussion / Re: Ultra Hal 8.0 coming soon
July 27, 2026, 02:50:20 PM
great news mike, nice avatar to , can it be modified , is it available on a flat file , etc. ?

the new 8.0 sounds very cool will be glad to use it .  thanks mike for all the hard work you have put into it.  i wrote on the companion site earlier mentioning that this website had been down when i tried getting on here earlier. glad it's back up!
#4
CyberJedi's Ultra Hal Workshop / Re: Hey Robert
October 11, 2025, 10:03:37 AM
mike you wrote : The Book reader gets fixed so it a can read all of a Book with out dumping 1/2 way through. For ART. (Haptek nightmare).
I may have to re-write the haptek activeX controls for that. Like i did with the single core Player listed on this board
For those beta testing the new version:

i'm not sure if the book reader ever had the ability to allow the user to stop (so it completely stopped , i imagine it did ) or a pause button  so it could be paused and restarted later from the paused area. if not it needs that . i don't know if it is possible to have a pause button that was on , and later a pc was shut down and restarted later and hal was started again would be able to still restart from that paused area . like i said don't know if it's possible, if it was possible that would be good as people shut pc's down at various times.     
       having said all that . i just got a notice from ollama saying s a 12.5 version update now available ,is it safe to update the new version and not cause any problems with the new hal / i know they are separate programs although now linked about the llm model downloads ,
#5
first off thanks cyberjedi for calling and walking me through it ., it seems it was a matter of reregistering more ocx.and dll. files. it worked after that .
below is showing the two separate screens and where it answered and also spoke through my hal character  Angela. 
#6
CyberJedi's Ultra Hal Workshop / Re: art
October 06, 2025, 05:16:25 PM
i downloaded the olamma client 19 and installed it . but i need the newest version of hal .exe . file , i have the older version .when mike was working on the other he didn't have the splash screen finished and so i kept using my older version in the menu it does show some things but not all.  can you post the newer now finished hal exe . ? and do i need to just drag and drop it in the program files to replace the old version?  the  only other  that i know i have is in this picture .
#7
okay on testing more llm on the gemma3.4b . i tested it asking it to talk this way .   

  ,(Smiling warmly, a gentle touch on your arm)

Hey honey, how was your day? You seem a little stressed. Tell me everything. Did you have a good lunch? You know, you need to take care of yourself a little more.

Seriously, what's on your mind? Don?t bottle things up. You know you can always talk to me, right?

(Pauses, looking at you with genuine concern)

Just? tell me about your day. ❤️

a problem i am wondering about is if this is ran through ultrahal . is their a way to cut out the description emotions ? or make them optional if someone wants them.  for example (Smiling warmly, a gentle touch on your arm).(Pauses, looking at you with genuine concern) ❤️. so this might be a issue .   just pointing it out.  i imagine this is in other models , all? models???
#8
Okay , cyberjedi  worked with me , i finally found the download for the lama it's on the 2nd page . cyber walked me through it and showed me where sybershot left instructions , i also copied them and saved them as a txt file in my ollama folder . to back up.  and it installed fine , and it is working fine , here is my screen shot  of later where i asked it about the size of the moon. the voice works init fine to reading out the answer. even though cyber said he didn't need thanks , i appreciate what he has done .all  your hard work and testing is appreciated.
heres the screenshot of it working.   my wait time for hal was not checked maybe 10? seconds, but i need to defrag my pc  and so will test again using the same minstral llm and then the uncensored to see any time differences on answering times.
#9
any more updates on this?
#10
i have been very busy and about wore out haven't had a chance to check in , had a neighbors very large side of tree fall over and destroy part of our fence and also our shed totaling it and almost hit our garden shed.  claimed he would take a large back hole and lift and move it off our property and back on his side , that was on the first , never seen him again . so i am left having to cut all the large limbs over hanging on the tree on our side , am emptying out the garden shed in case the limbs overhead fall down on it. am planning on moving it farther away and then cut down those large limbs . just tore loose and replaced the back step yesterday . some day i'll be able to slow down on all this.

cyber and checker see you two have been going over the llm model i mentioned for offline , am hoping you can make it work . one question i have is will it work with the custom brain people have developed , i have one i have been learning and backed up over the years and have kept. , custom responses within some of the tables. etc.   mike it sounds like the llm model works okay on a regular pc , vm's not so much . but that is all good. also if i am understanding right the llm keeps retains conversations ( so this is like short or long term memory then ? that would be good as that's also what hal needs.  thanks for the work and investigation into that llm model .  i will be in and out of here as i have time . i haven't given up on hal or others . keep up the good work.
#11
lol.  :) hop to it hopsing !  ;)
#12
THAT WAS A GOOD MOVIE AND STORYLINE !! thanks for making it .  :)
#13
mike , i think if we can get this plugin working writing files and folder and have short and long term memory etc.  it will help hal a lot! maybe you can get it corrected on the syntax error it keeps giving .
#14
anyway , no matter what i try i am getting a syntax error . that i can't find or fix . maybe you can  and i'll retest it again .
#15
   Private Function DetectFileSubject(content)
        Dim subjects
        Set subjects = DetectSubjects(content, "")
        DetectFileSubject = GetPrimarySubject(subjects)
    End Function

    Private Sub SaveKnowledgeBase()
        On Error Resume Next
        Dim objFSO, file
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Dim path
        path = BASE_PATH & KNOWLEDGE_FILE
        If Not objFSO.FileExists(path) Then
            Set file = objFSO.CreateTextFile(path, True, True) ' Overwrite existing file
            file.WriteLine "key" & vbTab & "content" & vbTab & "subject"
        Else
            Set file = objFSO.OpenTextFile(path, 2, True) ' Open for writing, create if needed
        End If
        Dim key
        For Each key In knowledgeBase.Keys
            file.WriteLine key & vbTab & knowledgeBase(key)(0) & vbTab & knowledgeBase(key)(1)
        Next
        file.Close
        On Error GoTo 0
    End Sub

    Private Function CorrectSpelling(sentence, subjects)
        On Error Resume Next
        If IsEmpty(sentence) Or sentence = "" Then
            CorrectSpelling = "unknown_question"
            Exit Function
        End If
        Dim words
        words = Split(sentence, " ")
        Dim correctedSentence
        correctedSentence = ""
        Dim i
        For i = 0 To UBound(words)
            Dim word
            word = Trim(words(i))
            If Len(word) > 0 Then
                If Not spellDictionary.Exists(LCase(word)) Then
                    Dim correction
                    correction = SuggestCorrection(word, subjects)
                    correctedSentence = correctedSentence & " " & IIf(correction <> "", correction, word)
                Else
                    correctedSentence = correctedSentence & " " & word
                End If
            End If
        Next
        CorrectSpelling = IIf(Trim(correctedSentence) = "", "unknown_question", Trim(correctedSentence))
        On Error GoTo 0
    End Function

    Private Function SuggestCorrection(word, subjects)
        Dim minDistance, bestMatch
        minDistance = Len(word) + 1
        Dim dictWord
        For Each dictWord In spellDictionary.Keys
            Dim distance
            distance = LevenshteinDistance(word, dictWord)
            If distance < minDistance Then
                minDistance = distance
                bestMatch = dictWord
            End If
        Next
        Dim primarySubject
        primarySubject = GetPrimarySubject(subjects)
        If SubjectTable.Exists(primarySubject) Then
            Dim subjectKeywords
            subjectKeywords = Split(SubjectTable(primarySubject), " ")
            Dim j
            For j = 0 To UBound(subjectKeywords)
                Dim keyword
                keyword = Split(subjectKeywords(j), ":")(0)
                distance = LevenshteinDistance(word, keyword)
                If distance < minDistance And distance <= 2 Then
                    minDistance = distance
                    bestMatch = keyword
                End If
            Next
        End If
        SuggestCorrection = IIf(minDistance <= 2, bestMatch, "")
    End Function

    Private Function LevenshteinDistance(str1, str2)
        Dim matrix()
        Dim i, j
        Dim cost
        ReDim matrix(Len(str1), Len(str2))
        For i = 0 To Len(str1)
            matrix(i, 0) = i
        Next
        For j = 0 To Len(str2)
            matrix(0, j) = j
        Next
        For i = 1 To Len(str1)
            For j = 1 To Len(str2)
                If Mid(str1, i, 1) = Mid(str2, j, 1) Then
                    cost = 0
                Else
                    cost = 1
                End If
                matrix(i, j) = Application.Min(matrix(i - 1, j) + 1, matrix(i, j - 1) + 1, matrix(i - 1, j - 1) + cost)
            Next
        Next
        LevenshteinDistance = matrix(Len(str1), Len(str2))
    End Function

    Public Sub LearnFromConversation(userQuestion, halResponse, Optional context = "")
        On Error Resume Next
        Dim correctedQuestion
        Dim subjects
        Set subjects = DetectSubjects(userQuestion, context)
        correctedQuestion = CorrectSpelling(userQuestion, subjects)
        Dim primarySubject
        primarySubject = GetPrimarySubject(subjects)
        If correctedQuestion = "" Then correctedQuestion = "unknown_question"
        If primarySubject = "" Then primarySubject = "Questions"
        Dim questionKey
        questionKey = GenerateKey(correctedQuestion, primarySubject)
        If IsEmpty(questionMemory) Then Set questionMemory = CreateObject("Scripting.Dictionary")
        If Not questionMemory.Exists(questionKey) Then
            Dim newIndex
            newIndex = IIf(questionMemory.Count > 0, questionMemory.Count + 1, 1)
            questionMemory.Add questionKey, newIndex
            If IsEmpty(responseMemory) Then Set responseMemory = CreateObject("Scripting.Dictionary")
            responseMemory.Add newIndex, halResponse
            If IsEmpty(responseQuality) Then Set responseQuality = CreateObject("Scripting.Dictionary")
            responseQuality.Add newIndex, 1
            If primarySubject <> "" And IsEmpty(contextMemory) Then Set contextMemory = CreateObject("Scripting.Dictionary")
            If primarySubject <> "" Then contextMemory.Add newIndex, subjects
        Else
            Dim index
            index = questionMemory(questionKey)
            responseMemory(index) = ImproveResponse(responseMemory(index), halResponse, index, primarySubject)
            responseQuality(index) = responseQuality(index) + 0.1
        End If
        UpdateShortTermMemory correctedQuestion, halResponse
        UpdateLongTermMemory correctedQuestion, halResponse, primarySubject
        UpdateKnowledgeBase correctedQuestion, halResponse, primarySubject
        SaveMemoryToFile
        SaveLongTermMemory
        SaveKnowledgeBase
        CleanMemory
        lastSubject = primarySubject
        On Error GoTo 0
    End Sub

    Private Function DetectSubjects(content, context)
        On Error Resume Next
        Dim subjects
        Set subjects = CreateObject("Scripting.Dictionary")
        If IsEmpty(SubjectTable) Then Set SubjectTable = CreateObject("Scripting.Dictionary")
        Dim subject
        For Each subject In SubjectTable.Keys
            Dim keywords
            keywords = Split(SubjectTable(subject), " ")
            Dim k
            For k = 0 To UBound(keywords)
                Dim keyword
                keyword = Split(keywords(k), ":")(0)
                If InStr(1, LCase(content & " " & context), LCase(keyword), 1) > 0 Then
                    subjects.Add subject, True
                    Exit For
                End If
            Next
        Next
        Set DetectSubjects = subjects
        On Error GoTo 0
    End Function

    Private Function GetPrimarySubject(subjects)
        On Error Resume Next
        If subjects.Count = 0 Then
            GetPrimarySubject = "Questions"
        Else
            Dim firstKey
            For Each firstKey In subjects.Keys
                GetPrimarySubject = firstKey
                Exit For
            Next
        End If
        On Error GoTo 0
    End Function

    Private Function GenerateKey(baseText, subject)
        On Error Resume Next
        If baseText = "" Then baseText = "unknown"
        If subject = "" Then subject = "unknown"
        Dim key
        key = LCase(Replace(Trim(baseText), " ", "_")) & "_" & LCase(subject)
        GenerateKey = Left(key, 50)
        On Error GoTo 0
    End Function

    Private Function ImproveResponse(oldResponse, newResponse, index, subject)
        On Error Resume Next
        If responseQuality(index) < 2.0 Then
            ImproveResponse = newResponse
        Else
            ImproveResponse = oldResponse & " " & newResponse
        End If
        On Error GoTo 0
    End Function

    Private Sub UpdateShortTermMemory(question, response)
        On Error Resume Next
        If IsEmpty(shortTermMemory) Then Set shortTermMemory = CreateObject("Scripting.Dictionary")
        Dim key
        key = GenerateKey(question, lastSubject)
        If shortTermMemory.Count >= MAX_SHORT_TERM Then
            Dim oldestKey
            oldestKey = shortTermMemory.Keys()(0)
            shortTermMemory.Remove oldestKey
        End If
        shortTermMemory.Add key, Array(question, response, Now)
        On Error GoTo 0
    End Sub

    Private Sub UpdateLongTermMemory(question, response, subject)
        On Error Resume Next
        If IsEmpty(longTermIndex) Then Set longTermIndex = CreateObject("Scripting.Dictionary")
        Dim key
        key = GenerateKey(question, subject)
        If Not longTermIndex.Exists(key) Then
            longTermIndex.Add key, Array(question, response, Now)
        End If
        On Error GoTo 0
    End Sub

    Private Sub UpdateKnowledgeBase(question, response, subject)
        On Error Resume Next
        If IsEmpty(knowledgeBase) Then Set knowledgeBase = CreateObject("Scripting.Dictionary")
        Dim key
        key = GenerateKey(question, subject)
        If Not knowledgeBase.Exists(key) And knowledgeBase.Count < MAX_KNOWLEDGE_ENTRIES Then
            knowledgeBase.Add key, Array(response, subject)
        End If
        On Error GoTo 0
    End Sub

    Private Sub SaveMemoryToFile()
        On Error Resume Next
        Dim objFSO, file
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Dim path
        path = BASE_PATH & MEMORY_FILE
        If Not objFSO.FileExists(path) Then
            Set file = objFSO.CreateTextFile(path, True, True) ' Overwrite if exists
        Else
            Set file = objFSO.OpenTextFile(path, 2, True) ' Open for writing
        End If
        If Not IsEmpty(responseMemory) Then
            Dim key
            For Each key In responseMemory.Keys
                file.WriteLine key & vbTab & responseMemory(key) & vbTab & questionMemory(key)
            Next
        End If
        file.Close
        On Error GoTo 0
    End Sub

    Private Sub SaveLongTermMemory()
        On Error Resume Next
        Dim objFSO, file
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Dim path
        path = BASE_PATH & LONG_TERM_FILE
        If Not objFSO.FileExists(path) Then
            Set file = objFSO.CreateTextFile(path, True, True)
        Else
            Set file = objFSO.OpenTextFile(path, 2, True)
        End If
        If Not IsEmpty(longTermIndex) Then
            Dim key
            For Each key In longTermIndex.Keys
                file.WriteLine key & vbTab & Join(longTermIndex(key), vbTab)
            Next
        End If
        file.Close
        On Error GoTo 0
    End Sub

    Private Sub CleanMemory()
        On Error Resume Next
        If Not IsEmpty(shortTermMemory) And shortTermMemory.Count > MAX_SHORT_TERM Then
            Dim keys
            keys = shortTermMemory.Keys
            Dim i
            For i = 0 To shortTermMemory.Count - MAX_SHORT_TERM - 1
                shortTermMemory.Remove keys(i)
            Next
        End If
        If Not IsEmpty(knowledgeBase) And knowledgeBase.Count > MAX_KNOWLEDGE_ENTRIES Then
            Dim kbKeys
            kbKeys = knowledgeBase.Keys
            Dim j
            For j = MAX_KNOWLEDGE_ENTRIES To knowledgeBase.Count - 1
                knowledgeBase.Remove kbKeys(j)
            Next
        End If
        On Error GoTo 0
    End Sub

    Private Function EnhanceHalResponse(inputStr, greeting, context)
        On Error Resume Next
        Dim key
        key = GenerateKey(inputStr, lastSubject)
        If Not IsEmpty(knowledgeBase) And knowledgeBase.Exists(key) Then
            EnhanceHalResponse = greeting & knowledgeBase(key)(0) & " -Angela Jolie"
        Else
            EnhanceHalResponse = greeting & "I?m not sure what to say about that yet. Ask me anything! -Angela Jolie"
        End If
        On Error GoTo 0
    End Function
End Function