Roleplay Bot is a Python chatbot for roleplaying. The bot plays a character with a given name and personality, while you play another character. You provide character names, optional descriptions, and an optional scenario, and the bot generates in-character dialogue and actions.
from roleplay_bot import Bot, BotParameters
# Required parameters
bot_name = "Aria"
anon_name = "Fin"
# Optional parameters
bot_description = "A mischievous forest pixie"
anon_description = "A brave ranger"
scene = "In a misty woodland glade, a chance encounter..."
params = BotParameters(
bot_name=bot_name,
anon_name=anon_name,
bot_description=bot_description,
anon_description=anon_description,
scene=scene,
)
bot = Bot(params)
response = bot.chat("Hello, Aria!")
print(response)- Python 3.10+
- Ollama CLI: Install Ollama and ensure it is running on your system. Ollama lets you use local LLMs via a simple Python API.
- llama3.2 model: Pull the
llama3.2model for Ollama using the commandollama pull llama3.2. - (Optional)
uvpackage manager: For convenience, you can use Astral UV to manage dependencies. Install viapip install uvand useuv syncas shown below. Alternatively, you may install dependencies with pip manually.
- Clone the repository:
git clone https://github.com/rakin406/roleplay_bot.git cd roleplay_bot - Install Python dependencies:
You need the Ollama Python library. For example:Alternatively, use thepip install ollama
uvmanager:pip install uv uv sync
Run the main script:
python main.pyYou will be prompted for: Bot’s nickname, Your nickname, Bot’s character description (optional), Your character description (optional), and Scenario and lore (optional). For example:
Bot's nickname: Aria
Your nickname: Fin
Bot's character description (Optional): A mischievous forest pixie
Your character description (Optional): A brave ranger
Scenario and lore (Optional): In a misty woodland glade, a chance encounter...
After entering this information, the interactive chat begins.
>> Hello, Aria!
*Aria giggles and flutters a hand* Greetings, kind ranger. What brings you to my glade?Contributions, bug reports, and feature requests are welcome! Feel free to open an issue or submit a pull request on GitHub.
Rakin Rahman - rakinrahman406@gmail.com
This project is released under the MIT License (see the LICENSE file).