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) | |