https://github.com/43-stuti/friends-chat-client
A group chat application where your words get twisted by a machine learning model trained on dialogues from a TV show(for now friends) characters before your friends receive your message
https://github.com/43-stuti/friends-chat-client
runway socket-io vuejs
Last synced: 2 months ago
JSON representation
A group chat application where your words get twisted by a machine learning model trained on dialogues from a TV show(for now friends) characters before your friends receive your message
- Host: GitHub
- URL: https://github.com/43-stuti/friends-chat-client
- Owner: 43-stuti
- Created: 2021-01-21T00:14:57.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-21T19:06:36.000Z (over 5 years ago)
- Last Synced: 2025-06-10T15:40:23.481Z (about 1 year ago)
- Topics: runway, socket-io, vuejs
- Language: Vue
- Homepage: https://goofy-panini-b0b245.netlify.app
- Size: 3.26 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# The one where you are one of them
### Overview
The idea for this project was to create a chat application where you have your words twisted by a famous TV show character. It would be fun to lose control of how your words get delived to people.
Have your words twisted and take the group conversation in a completely unanticipated direction.
I started off with basing the chats on a more "friends" show style conversation. Because ofcourse 10 seasons weren't enough.
I scraped the friends transcripts from [here](https://fangj.github.io/friends/) using cheerio.
And trained a new model on RunwayML on those transcripts.
Going futher, I do plan to replicate the same experience with other shows too. Where the users can choose which kind of conversation they would like to be a part of.
Try out the chat here
- Set a topic for the chat and invite your friends by sharing the link
##### It works something like this.
Eg: I gave it a prompt of Joey saying "I am not feeling well today."
Once I hosted the model, I could communicate with it via it's REST API.
### How it works
- The person initiating the chat sets the topic for the chat eg: "The one where __________"
- The host then invites other friends using the link.
- They all land on a screen where they are asked to choose the character which would twist their words and also enter their own name.
- Let the twisted chat begin.
Behind the scenes
- If a user called "Mary" has picked "Monica" all her texts will be redone by monica.
- Before sending the prompt to runway the server replaces all the personal names with the respective character names.
Eg: If another user Tom picked Joey
"Mary: I hate Tom and Tom's cat" becomes "Monica: I hate Joey and Joey's cat" where Tom has picked Joey.
- The response from runway is modified in the opposite way. ie replacing character names with the respective users before it gets sents to all the clients.
eg: "Monica: I hate Joey and Joey's cat" becomes "Mary: I hate Tom and Tom's cat" becomes
### Making the chat application
- The server for the app is made using NodeJS and SocketIO
- The client is made on VueJS and the routing is handled by vue-router
#### The chatrooms
The server maintains a reference to all chat rooms.
A Chatroom has the following structure
|-- Topic
|-- Messages
| |- [{
| user:'Tom',
| character:'Joey',
| message:'Hi'
| }]
|- onlineUsers
| |- [{
| socket:
| user:'Tom',
| character:'Joey'
| }]
It communicates with the sockets and runway
## Project setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Lints and fixes files
```
npm run lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).