Journey to the Clouds: My Dev Chat Adventure of Presenting my AI-Powered Twitch Streamer at re:Invent 2023
Tags: python, opensource, aws, ai
Published: 2024-01-07 03:06:12

**Prelude to the Dream Stage**
The story of my journey to re:Invent 2023 began months before I set foot in Las Vegas. It was a chilly morning in August when I received the invitation to speak. As I read the email, a blend of disbelief and excitement surged through me. After having attended re:Invent in the prior year and having been fascinated by the knowledgeable experts, I would finally be able to share on the stages as well to share my insights!

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8uu5opcaun90v43unp5d.jpg)

**Background to the creation of Ximena**
Ximena was the name of the AI-powered virtual VTuber that I created which was eventually presented at my session. It started out one day with me just experimenting with different ways of experimenting with voice interfaces powered by AI. I was trying to get two AI-powered voice interfaces to communicate with one another, when suddenly the thought struck me: what if I was able to create a picture to the voice, making it more personable?

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8ze6hl25hpn3fb8progj.png)


I then started to do much investigation into the different ways I could do this, and eventually decided to create a VTuber for this that could be powered by the audio that I have. This would be the perfect blend of interaction and visual cues to give the audience something interesting to keep them engaged. This would at the very least create the ability for the audience to maintain endless conversations with her with whatever topic they want. I would code this all up in Python, leveraging the LangChain library to handle context and conversational memory.

I then started to think about how else I could enhance this element of interactivity. This was then when I started developing her chess-playing abilities, allowing her to play chess through the Twitch Chat with viewers. Viewers would be able to make their moves through Twitch chat, while Ximena then accordingly responds with her own moves.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r26aqj0u3rag6nzv7664.png)

**The Architecture**
I used an EC2 to host the streaming service for Twitch done through the OBS application. From here, I make calls through the Amazon API Gateway to two different Lambda functions. One of them calls Amazon Bedrock for text generation and stores the generated text and what was prompted in Amazon DynamoDB for training purposes later. The other fetched secrets from AWS Secrets Manager. The Amazon EC2 also made calls to Amazon Polly, which was able to provide for her capabilities.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/82lo8qeq3ozswdj2pkmc.png)

Amazon Bedrock's Titan foundational model was able to power her text generation capabilities quite well. She was able to respond meaningfully to different prompts that were put through her way. That being said, it is important to experiment with other FMs as well to see which one will work best with your use case.

Additionally, keep in mind that although streaming is done through the Amazon EC2, the most convenient way of doing it is through your local computer. It is the method I have also worked with mostly, as there is less setup complexity and may cost less over time.

**Months of Preparation**
I dedicated myself to crafting a presentation that would deliver what I want in a brief amount of time while inspiring and educating. It was not easy, given that there is so much to the process of the creation of Ximena, but so little time to present her in. Many-a-weekend was spent on my laptop, pondering the best way of delivery of the talk and continuously refining both Ximena and my presentation. Evenings were filled with rehearsals in my living room, practicing my delivery.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zcs403v3649kn1to1w6c.png)

**A Rollercoaster of Emotions**
As the event drew closer, my emotions oscillated wildly. There were moments of doubt – was my content engaging enough? Would it be on par with the standards of re:Invent? I have spoken at over 40 conferences and events, but I could not help but ponder this thought, as there is no such thing as being too prepared. But then, there were bursts of confidence as I refined my slides and narrative. This emotional rollercoaster was a constant companion in the weeks leading up to the event.

**Arrival in Las Vegas**
Las Vegas greeted me with its dazzling lights and ceaseless energy. The day before my session ad the days before that, I walked the halls of the Venetian, absorbing the aura of innovation that re:Invent is known for while attending sessions and other networking opportunities. You can check out more on this on my post on recapping how my re:Invent outside of my session went. I spotted the venue of my session with a schedule of the sessions listed on it, including my own - “Creating an Interactive AI Twitch Streamer on AWS”.

**Getting Session Prepped**
As with all other speakers, I took time to familiarize myself with the setup by booking a session at the speaker ready room, and got used to what I needed to know about the equipment. I quickly understood what I had access to and adjusted my presentation style based on what was told to me.

**The Big Day**
The morning of my presentation was a blur. A quick breakfast, a final run-through of my slides, and then it was time. As I walked into the session venue, I found out that I was to be hosted by Jason as my MC. After a brief catch up, it was time to move onto the stage.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g3tnl7qwzk5uuwavnava.png)

**The Session Unfolds**
My session began with talking about why AI streaming would be an interesting topic for the audience. Afterwards, I moved on to talk about the architecture that was in place for the AWS services. I then started talking about how to implement the solution in the form of the services and Python code. Finally, I provided a demo of seeing how Ximena was in action and closed off with a look into the future of streaming with AI.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f091qfifinky0yq9taif.png)

**The Aftermath**
Post-session, the feedback was overwhelmingly positive. Attendees approached me with questions and compliments. I had some very engaging conversations on various topics, including optimizing performance, cost management, and finding out what others have been doing within this space as well. It was great to see all the enthusiasm that was had for this topic.

**Reflections and Looking Forward**
As I sat in my hotel room that night, a sense of fulfilment washed over me. The months of preparation had paid off. I had shared my passion with like-minded individuals and sparked discussions that could shape the future of technology.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gg6ztu40zga9s8szmxb7.png)

**Closing Thoughts**
Speaking at re:Invent 2023 wasn’t just another speaking op for me; it was a journey of personal and professional growth. It was about being part of a community that’s driving change in the world. And as I look to the future, I am filled with excitement for what we can achieve together in the realm of AI for entertainment. I certainly look forward to another opportunity where I can speak again at future re:Invents on even more fascinating topics.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7scubcdxe196uhed2rk5.png)

**Would you like to see Ximena or learn more about her?**
Ximena will be on live from time to time. Check out her Twitch channel at https://www.twitch.tv/ximenarawr. To learn more about her creation, feel free to reach out to me directly through Slack if you are a fellow Community Builder or connect with me on LinkedIn and chat there with me.

If you missed the session at re:Invent, you can find it on YouTube here: https://www.youtube.com/watch?v=kf3iJSScp-o