Faebot devstream log 1: The Streaming Era

We’ve been doing Faebot development streams live on twitch (oh yeah we’re a twitch streamer now, affiliate and everything). We try to do these once a week on Tuesday. We’ve been making good progress on Faebot, both Faebot-Discord and the born in the stream age Faebot-Twitch. We post all our VODs to Youtube for them to live forever and we’ve started posting the VODs on social media after our stream.

It occurred to us that we could start posting a little blog post for every stream. A way to keep the website lively and keep a record of Faebot’s development. This first log will cover yesterday’s stream and I’ll post the playlist to all the streams too.

Faebot Stream from Tuesday April 17th 2024

So we’re implementing ways to store faebot’s messages long term and using them to prompt a base model for generation. We previously made a text file log of faebot’s messages which has been collecting messages in the cloud for a while.

So the first thing we did last stream was ask chatGPT to help us write a regex to extract all the information from the text log so we could put it in a dictionary and save it to a JSON file.

We started to set up our code to keep such a log itself from now on. Along the way we complained loudly about how messy the code was and made small changes to improve it. More type hints, more comments, removing stuff we weren’t using anymore.

There was some debate as to whether we should use a dataclass to hold each faebot message. The problem with dataclasses is, of course, that they’re not JSON serialisable by default and need to be converted to dicts. In the end we decided to keep the dataclass for now if only cause it helps me organise our thoughts as to what kind of data I want to collect on faebot’s messages that might help us fine tune faer generation. Here is what the dataclass looks like as of the end of last stream:

@dataclass
class FaebotMessage:
    """for storing each message faebot generate/sends"""

    message_id: int
    channel: str
    generating_model: str
    system_prompt: str
    generating_parameters: dict[str, int]
    timestamp: datetime.datetime
    message_content: str
    rating: int

We decided that we would do message_id as an uuid. The idea is that if we end up using faebot’s messages to generate further messages it would be useful to store references to those messages along with the generated message. We can do it by capturing the system prompt, but, we might want to be able to find that entry. So we’re probably going to have to add a referenced_messages: list[int] or something to that effect to the dataclass.

That’s about all we accomplished last stream. Please feel free to leave comments here or on youtube or on faebot’s issue. We’re still learning so we appreciate any advice. Thank you for reading! If you would like to tune in for the next faebot development stream, it’ll probably happen next tuesday at 2pm Eastern Time (UTC-4 right now, you know where it is)

Other Faebot development streams

Here is the playlist with all the VODs. Enjoy:

Quick Links

Author: transfaeries

we're the transfaeries

Leave a comment