Skip to content

Perplexity

Perplexity

Bases: BaseLLM

Perplexity LLM node.

This class provides an implementation for the Perplexity Language Model node.

Attributes:

Name Type Description
connection Perplexity

The connection to use for the Perplexity LLM.

MODEL_PREFIX str

The prefix for the Perplexity model name.

return_citations bool

Whether to return citations in the response.

Source code in dynamiq/nodes/llms/perplexity.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
57
58
59
60
61
62
63
64
class Perplexity(BaseLLM):
    """Perplexity LLM node.

    This class provides an implementation for the Perplexity Language Model node.

    Attributes:
        connection (PerplexityConnection): The connection to use for the Perplexity LLM.
        MODEL_PREFIX (str): The prefix for the Perplexity model name.
        return_citations (bool): Whether to return citations in the response.
    """

    connection: PerplexityConnection
    return_citations: bool = Field(default=False, description="Whether to return citations in the response")

    MODEL_PREFIX = "perplexity/"

    def __init__(self, **kwargs):
        """Initialize the Perplexity LLM node.

        Args:
            **kwargs: Additional keyword arguments.
        """
        if kwargs.get("client") is None and kwargs.get("connection") is None:
            kwargs["connection"] = PerplexityConnection()

        if "connection" in kwargs:
            kwargs["connection"].conn_params["return_citations"] = kwargs.get("return_citations", False)

        super().__init__(**kwargs)

    def _handle_completion_response(
        self,
        response: Union["ModelResponse", "CustomStreamWrapper"],
        config: RunnableConfig = None,
        **kwargs,
    ) -> dict:
        """Handle completion response with citations.

        Args:
            response (ModelResponse | CustomStreamWrapper): The response from the LLM.
            config (RunnableConfig, optional): The configuration for the execution.
            **kwargs: Additional keyword arguments.

        Returns:
            dict: A dictionary containing the generated content, tool calls, and citations.
        """
        result = super()._handle_completion_response(response, config, **kwargs)

        if hasattr(response, "citations"):
            result["citations"] = response.citations

        return result

__init__(**kwargs)

Initialize the Perplexity LLM node.

Parameters:

Name Type Description Default
**kwargs

Additional keyword arguments.

{}
Source code in dynamiq/nodes/llms/perplexity.py
29
30
31
32
33
34
35
36
37
38
39
40
41
def __init__(self, **kwargs):
    """Initialize the Perplexity LLM node.

    Args:
        **kwargs: Additional keyword arguments.
    """
    if kwargs.get("client") is None and kwargs.get("connection") is None:
        kwargs["connection"] = PerplexityConnection()

    if "connection" in kwargs:
        kwargs["connection"].conn_params["return_citations"] = kwargs.get("return_citations", False)

    super().__init__(**kwargs)