Eric9082

joined 4 months ago
[–] Eric9082 1 points 6 days 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 1 points 1 week 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 1 points 2 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 4 months ago* (last edited 4 months ago) by Eric9082 to c/perchance
 

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!