Skip to content

Repository files navigation

Perplexity Provider for Kujo

Version License built with Kujo

Perplexity search-grounded chat provider for Kujo, preserving citations, search filters, usage, and native response metadata.

Install

kujo kennel add github:kujolang/perplexity@v0.1.1
kujo kennel install

30-second quick start

from perplexity import create_client, chat

client := create_client({
    "api_key": env("PERPLEXITY_API_KEY"),
    "model": "sonar-pro",
})

result := chat(client, {
    "messages": [{"role": "user", "content": "What is Kujo?"}],
})
print(result["data"])

Native Provider API

Perplexity is not ordinary chat: web-grounding and citations are first-class.

from perplexity import create_client, chat

client := create_client({"model": "sonar", "api_key": env("PERPLEXITY_API_KEY")})
result := chat(client, {
    "messages": [{"role": "user", "content": "Summarize today's AI news."}],
    "search_domain_filter": ["openai.com", "huggingface.co"],
    "return_citations": true,
})

AI SDK integration

The public provider factory maps compatible chat semantics; citations and search metadata remain in native provider data.

from perplexity import perplexity_provider
from ai_sdk import generate_text

provider := perplexity_provider({"model": "sonar-pro"})
result := generate_text(provider, {"messages": [{"role": "user", "content": "Hello."}]})
print(result["text"])

Authentication and security

Set PERPLEXITY_API_KEY. Requests use https://api.perplexity.ai; unsafe hosts, embedded credentials, and credential leakage are rejected or redacted.

Testing and docs

bash scripts/release_quality_gate.sh

See docs/ for evidence and limitations.

About

Native Perplexity provider for Kujo

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages