Skip to content

perplexity_prompt_driver

PerplexityPromptDriver

Bases: OpenAiChatPromptDriver

Source code in griptape/drivers/prompt/perplexity_prompt_driver.py
@define
class PerplexityPromptDriver(OpenAiChatPromptDriver):
    base_url: str = field(default="https://api.perplexity.ai", kw_only=True, metadata={"serializable": True})
    structured_output_strategy: str = field(default="native", kw_only=True, metadata={"serializable": True})

    @override
    def _to_message(self, result: ChatCompletion) -> Message:
        message = super()._to_message(result)

        message.content[0].artifact.meta["citations"] = getattr(result, "citations", [])

        return message

    def _base_params(self, prompt_stack: PromptStack) -> dict:
        params = super()._base_params(prompt_stack)

        if "stop" in params:
            del params["stop"]

        return params

base_url = field(default='https://api.perplexity.ai', kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

structured_output_strategy = field(default='native', kw_only=True, metadata={'serializable': True}) class-attribute instance-attribute

_base_params(prompt_stack)

Source code in griptape/drivers/prompt/perplexity_prompt_driver.py
def _base_params(self, prompt_stack: PromptStack) -> dict:
    params = super()._base_params(prompt_stack)

    if "stop" in params:
        del params["stop"]

    return params

_to_message(result)

Source code in griptape/drivers/prompt/perplexity_prompt_driver.py
@override
def _to_message(self, result: ChatCompletion) -> Message:
    message = super()._to_message(result)

    message.content[0].artifact.meta["citations"] = getattr(result, "citations", [])

    return message