Skip to content

Index

BaseOutputParser #

Bases: Protocol

输出解析器类。

Source code in llama_index/core/types.py
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@runtime_checkable
class BaseOutputParser(Protocol):
    """输出解析器类。"""

    @classmethod
    def __modify_schema__(cls, schema: Dict[str, Any]) -> None:
        """避免序列化问题。"""
        schema.update(type="object", default={})

    @abstractmethod
    def parse(self, output: str) -> Any:
        """解析、验证和通过程序自动纠正错误。"""

    def format(self, query: str) -> str:
        """使用结构化的输出格式指令格式化查询。"""
        return query

    def format_messages(self, messages: List[ChatMessage]) -> List[ChatMessage]:
        """格式化一组带有结构化输出格式指令的消息列表。"""
        # NOTE: apply output parser to either the first message if it's a system message
        #       or the last message
        if messages:
            if messages[0].role == MessageRole.SYSTEM:
                messages[0].content = self.format(messages[0].content or "")
            else:
                messages[-1].content = self.format(messages[-1].content or "")

        return messages

parse abstractmethod #

parse(output: str) -> Any

解析、验证和通过程序自动纠正错误。

Source code in llama_index/core/types.py
38
39
40
@abstractmethod
def parse(self, output: str) -> Any:
    """解析、验证和通过程序自动纠正错误。"""

format #

format(query: str) -> str

使用结构化的输出格式指令格式化查询。

Source code in llama_index/core/types.py
42
43
44
def format(self, query: str) -> str:
    """使用结构化的输出格式指令格式化查询。"""
    return query

format_messages #

format_messages(
    messages: List[ChatMessage],
) -> List[ChatMessage]

格式化一组带有结构化输出格式指令的消息列表。

Source code in llama_index/core/types.py
46
47
48
49
50
51
52
53
54
55
56
def format_messages(self, messages: List[ChatMessage]) -> List[ChatMessage]:
    """格式化一组带有结构化输出格式指令的消息列表。"""
    # NOTE: apply output parser to either the first message if it's a system message
    #       or the last message
    if messages:
        if messages[0].role == MessageRole.SYSTEM:
            messages[0].content = self.format(messages[0].content or "")
        else:
            messages[-1].content = self.format(messages[-1].content or "")

    return messages