Eric9082

joined 5 months ago
[–] Eric9082@lemmy.world 2 points 1 week ago (1 children)

It's working now! Thanks!

 

When I start ai-character-chat (Win11 Pro), I am getting the error shown in the attached image:

"An error has occurred somewhere in your code (in lists or HTML): An unhandled promise rejection occurred: Comlink.wrap is not a function"

I'm not sure how to correct this; any help would be appreciated - thanks!

[–] Eric9082@lemmy.world 3 points 3 weeks ago (1 children)

That makes sense; I want to learn more about how the weighting is computed (quite interesting stuff) but dot-producting the arrays to get an overall "this is relevant" score is useful knowledge.

Makes me think that we could weight each individual Lore entry a little more knowing this.

"Tim is the sheriff. Tim used to be the deputy. Tim is a tall guy" might weight-out better than: "Tim is the sheriff, but he used to be the deputy and he's tall guy".

That could get the "Tim" weighting a bit higher for that Lore if I'm understanding right.

Thanks!

[–] Eric9082@lemmy.world 1 points 3 weeks ago (3 children)

Thanks for the details, that helps a lot.

I understand about poorly-written Lore entries like "he is a snappy dresser" ("he" is vague). My curiosity was more related to Lore such as: "Tim is the sheriff" "Mike is the bad guy"

If the UI is currently constructing a message to the AI and we are discussing Tim, whether the UI could randomly select the "Mike is a bad guy" line from the Lore entries and it would be totally unrelated to the current topic of Tim.

Am I understanding right that Lore isn't so much "chosen at random", but is first "scored" as to relevance then chosen?

 

From posts that I've read, the Perchance AI Character Char (ACC) will only load Lore files via URL into the main AI character.

Does this mean that it ignores Lore URLs in other characters' Lore entry box (won't load them), or appends those URLs as well into the main character's Lore?

At first, I thought this was an easy fix: in the main character Lore URL box, just enter the Lorebook URLs of all the characters (e.g., "Mike.txt", "Tim.txt", etc.) and they'd all get loaded.

However, my best understanding of how Lore is used is that when a user message is formed and sent to the AI LLM, the ACC will (always? occasionally?) select one (or more?) Lore entries at random to help flavor the AI response.

I think this means that if other characters' Lore is mixed in to a single "pool" of Lore entries under the main character, then for a Tim character reply, the Lore sent over to the LLM could be random picks of from the pool that contains "Mike" lore and "Tim" lore, etc. In other words, flavoring the "Tim" reply with unrelated Lore facts about Mike.

Could someone kindly let me know if my thinking above is valid? Thanks!

[–] Eric9082@lemmy.world 1 points 1 month ago

I added code to my local server to force "text/plain" for text file content type, but it didn't do the trick.

From what I can tell, somehow CloudFlare is inserting itself into text file fetches (but not image file fetches) and since there's no human in that interaction, all that comes back from a localhost LoreBook fetch is an error that the Captcha wasn't completed.

This isn't a huge issue, but it's gonna bug me until I solve it :)

[–] Eric9082@lemmy.world 1 points 1 month ago (2 children)

I found the issue, just haven't been able to fix it yet.

I am using a fileserver on my localhost and things like the avatar images work fine that way (trying to work with the example of different character expressions for sad, happy, etc., but without uploading a lot of images; the custom code can snag the images via localhost with no issue).

Apparently there is some CloudFlare API in use that is OK with fetching PNG files from localhost, but NOT text files. If I use rentry (or just upload to perchance and use the URL) then the lorebooks DO work.

I had made the assumption that because I can get local PNG files, I can also get local TXT files. That's apparently not the case.

"You could add a trigger to check the name of the AI that sent the message to run a different custom code within the thread to have multiple characters use different custom codes."

Yup, doing that already. Works OK, but I need to get some better JS skills before I go much further. I just wanted to make sure that the custom code was part of the oc.thread, and not specific to each oc.character.

Thanks!

 

3 questions/issues regarding AI Character Chat...

  • Is the lorebook feature currently broken? While I was able to import a lorebook txt file for the main AI character, when I used /lore to view it, the lore information wasn't displayed - some JS code was shown.
     
  • Are lorebooks for additional characters supported? I have two characters, and each has a separate lorebook txt file. However, the 2nd character is completely unaware of the facts in its own lorebook.
     
  • My observations are that while each character has a custom code block, only the main AI character's block is used; e.g., oc.thread.on("MessageAdded") applies to any message from any character. Character-specific handling needs to be done within this block and code blocks from other characters are ignored. Is this a correct understanding?

Thanks!

[–] Eric9082@lemmy.world 1 points 3 months ago

This is a feature that I'd love to see as well; my understanding (not much at present, but I'm learning) would be that one could set up a server via node.js and through the user code block in the AI chat, send the AI response text (along with the speaker's name) to that process. That process, being local on your machine, could potentially invoke a local instance of XTTS and speak the text.

This is conjecture on my part; I've been making some progress integrating per-message JS in the chat. Right now, for TTS, I'd like a means to separate narrator dialog, action text, and speaker text separately so that the TTS doesn't simply say the entire message. For example:

"The sheriff walked slowly into the room. 'Everyone freeze! I'm looking for Bad Bart' "

I'd like to have the AI somehow separate this text so the narrator voice could speak the narrator part of the message and the character (with a different voice) would speak the character message. This would involve invoking the TTS engine twice for one message, as expected.

It will certainly take months for me to approach anything workable, but luckily technology will improve as well over time perhaps making it easier.

2
submitted 5 months ago* (last edited 5 months ago) by Eric9082@lemmy.world to c/perchance@lemmy.world
 

I see that there has been an update and the memories feature is back in. Nice. However, the MessageAdded event in my custom code is now not getting executed. I added a console.log as the first line in the handler:

oc.thread.on("MessageAdded", async function({ message }) {
console.log("----------message added-------------");

And it is not getting triggered any more. It was working and I haven't changed the code. Has this changed or is this maybe a bug? Thanks!