Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prompt Class Added #2

Merged
merged 7 commits into from
Dec 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion memor/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
"""Memor modules."""
from .params import MEMOR_VERSION

from .prompt import Prompt

__version__ = MEMOR_VERSION
62 changes: 62 additions & 0 deletions memor/prompt.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
"""Prompt class."""
import enum
import datetime
import json


class Role(enum.Enum):
"""Role enum."""

SYSTEM = 0
USER = 1
ASSISTANT = 2

DEFAULT = USER


class Prompt:
"""Prompt class."""

def __init__(
self,
message,
responses=[],
role=Role.DEFAULT,
temperature=None,
model=None,
date=datetime.datetime.now()):
"""Prompt object initiator."""
self.message = message
self.responses = responses
self.role = role
self.temperature = temperature
self.model = model
self.date = date

def add_response(self, response, index=None):
"""Add a response to the prompt object."""
if index is None:
self.responses.append(response)
else:
self.responses.insert(index, response)

def remove_response(self, index):
"""Remove a response from the prompt object."""
self.responses.pop(index)

def get_message(self):
"""Get the prompt message."""
return self.message

def to_json(self):
"""Convert the prompt to a JSON object."""
data = {
"message": self.message,
"responses": self.responses,
"role": str(self.role),
"temperature": self.temperature,
"model": self.model,
"date": str(self.date)
}
return json.dumps(data, indent=4)