Spaces:
Runtime error
Runtime error
""" | |
@Time : 2023/5/8 22:12 | |
@Author : alexanderwu | |
@File : schema.py | |
@From : https://github.com/geekan/MetaGPT/blob/main/metagpt/schema.py | |
""" | |
from __future__ import annotations | |
from dataclasses import dataclass, field | |
from typing import Type, TypedDict | |
from pydantic import BaseModel | |
from .logs import logger | |
class RawMessage(TypedDict): | |
content: str | |
role: str | |
class Message: | |
"""list[<role>: <content>]""" | |
content: str | |
instruct_content: BaseModel = field(default=None) | |
role: str = field(default='user') # system / user / assistant | |
cause_by: Type["Action"] = field(default="") | |
sent_from: str = field(default="") | |
send_to: str = field(default="") | |
def __str__(self): | |
# prefix = '-'.join([self.role, str(self.cause_by)]) | |
return f"{self.role}: {self.content}" | |
def __repr__(self): | |
return self.__str__() | |
def to_dict(self) -> dict: | |
return { | |
"role": self.role, | |
"content": self.content | |
} | |
class UserMessage(Message): | |
"""便于支持OpenAI的消息""" | |
def __init__(self, content: str): | |
super().__init__(content, 'user') | |
class SystemMessage(Message): | |
"""便于支持OpenAI的消息""" | |
def __init__(self, content: str): | |
super().__init__(content, 'system') | |
class AIMessage(Message): | |
"""便于支持OpenAI的消息""" | |
def __init__(self, content: str): | |
super().__init__(content, 'assistant') | |
if __name__ == '__main__': | |
test_content = 'test_message' | |
msgs = [ | |
UserMessage(test_content), | |
SystemMessage(test_content), | |
AIMessage(test_content), | |
Message(test_content, role='QA') | |
] | |
logger.info(msgs) | |