Perplexity search-grounded chat provider for Kujo, preserving citations, search filters, usage, and native response metadata.
kujo kennel add github:kujolang/perplexity@v0.1.1
kujo kennel installfrom 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"])
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,
})
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"])
Set PERPLEXITY_API_KEY. Requests use https://api.perplexity.ai; unsafe hosts,
embedded credentials, and credential leakage are rejected or redacted.
bash scripts/release_quality_gate.shSee docs/ for evidence and limitations.