35 lines
758 B
Python
35 lines
758 B
Python
![]() |
from abc import ABC, abstractmethod
|
||
|
from dataclasses import dataclass
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class Message(ABC):
|
||
|
"""
|
||
|
The basic unit of information in a prompt.
|
||
|
"""
|
||
|
content: str = ""
|
||
|
|
||
|
INSTRUCT = "instruct"
|
||
|
CONTEXT = "context"
|
||
|
FUNCTION = "function"
|
||
|
CHAT = "chat"
|
||
|
|
||
|
@abstractmethod
|
||
|
def to_dict(self) -> dict:
|
||
|
"""
|
||
|
Convert the message to a dictionary.
|
||
|
"""
|
||
|
|
||
|
@classmethod
|
||
|
@abstractmethod
|
||
|
def from_dict(cls, message_data: dict) -> 'Message':
|
||
|
"""
|
||
|
Convert the message from a dictionary.
|
||
|
"""
|
||
|
|
||
|
@abstractmethod
|
||
|
def stream_from_dict(self, message_data: dict) -> str:
|
||
|
"""
|
||
|
Append to the message from a dictionary returned from a streaming chat API.
|
||
|
"""
|