Welcome to the GirlfriendGPT repository. This is a starter project to help you build your personalized AI companion with a unique personality, voice, and even SELFIES!
Click the image below for a demo:
Subscribe to updates here: https://twitter.com/eniascailliau
- Custom Voice: Utilize EleventLabs to create a unique voice for your AI model.
- Connected to Telegram: Directly send and receive messages from your AI companion via Telegram.
- Personality: Customize the AI's personality according to your preferences.
- Selfies: AI is capable of generating SELFIES when asked.
To run your companion locally:
pip install -r requirements.txt
python main.py
To deploy your companion & connect it to Telegram:
pip install -r requirements.txt
python deploy.py
You will need to fetch a Telegram key to connect your companion to Telegram. This guide will show you how.
- Memories: Soon, the AI will have the capability to remember past interactions, improving conversational context and depth.
- Photorealistic selfies
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
👀 Add a personality!
Do you have a unique personality in mind for our AI model, GirlfriendGPT? Great! Here's a step-by-step guide on how to add it.
First, you'll need to define your personality. This is done by creating a new Python file in the src/personalities directory.
For example, if your personality is named "jane", you would create a file called jane.py
. Inside this file, you would define the characteristics and behaviors that embody "jane". This could include her speaking style, responses to certain inputs, or any other defining features you envision.
Once you've created and fleshed out your personality file, it's time to make our codebase aware of it. Open init.py in the src/personalities
directory.
Import your new personality at the top of the file and add your personality to the all list:
from .luna import luna
from .sacha import sacha
from .lucas import lucas # This is your new personality
__all__ = [
"sacha",
"luna",
"lucas", # Add your personality here
"get_personality"
]
Lastly, add your personality to the get_personality() function:
def get_personality(name: str):
try:
return {
"luna": luna,
"sacha": sacha,
"lucas": lucas # Add your personality here
}[name]
except Exception:
raise Exception("The personality you selected does not exist!")
And that's it! Now, whenever the get_personality
function is called with the name of your personality, it will return the behaviors and characteristics defined in your personality file.
Before you submit your new personality, please test it to ensure everything works as expected. If all is well, submit a Pull Request with your changes, and be sure to include the title "{name} - {description}" where {name} is your personality's name, and {description} is a brief explanation of the personality.
Good luck, and we can't wait to meet your new GirlfriendGPT personality!
This project is licensed under the MIT License.