SYMBOL INDEX (66 symbols across 13 files) FILE: docs/articles/memory-management/chat-summary-memory-buffer/scripts/chat_memory_buffer.py function chat_with_memory (line 36) | def chat_with_memory(user_query: str): FILE: docs/articles/memory-management/chat-summary-memory-buffer/scripts/example_usage.py function demonstrate_conversation (line 6) | def demonstrate_conversation(): FILE: docs/articles/memory-management/chat-with-persistence/scripts/chat_with_persistence.py function initialize_chat_session (line 42) | def initialize_chat_session(): function chat_with_persistence (line 50) | def chat_with_persistence(user_query: str, index: VectorStoreIndex): FILE: docs/articles/memory-management/chat-with-persistence/scripts/example_usage.py function main (line 4) | def main(): FILE: docs/articles/openai-agents-integration/pplx_openai.py function get_weather (line 46) | def get_weather(city: str): function main (line 65) | async def main(): FILE: docs/examples/daily-knowledge-bot/daily_knowledge_bot.py class ConfigurationError (line 41) | class ConfigurationError(Exception): class PerplexityClient (line 46) | class PerplexityClient: method __init__ (line 51) | def __init__(self, api_key: str): method get_fact (line 67) | def get_fact(self, topic: str, max_tokens: int = 150, temperature: flo... class DailyFactService (line 105) | class DailyFactService: method __init__ (line 108) | def __init__(self, client: PerplexityClient, output_dir: Path = None): method load_topics_from_file (line 134) | def load_topics_from_file(self, filepath: Union[str, Path]) -> None: method get_daily_topic (line 157) | def get_daily_topic(self) -> str: method get_random_topic (line 174) | def get_random_topic(self) -> str: method get_and_save_daily_fact (line 183) | def get_and_save_daily_fact(self) -> Dict[str, str]: function load_config (line 226) | def load_config() -> Dict[str, str]: function main (line 252) | def main(): FILE: docs/examples/discord-py-bot/bot.py function on_ready (line 31) | async def on_ready(): function ask (line 39) | async def ask(interaction: discord.Interaction, question: str): function on_message (line 75) | async def on_message(message): function format_citations (line 119) | def format_citations(text: str, response_obj) -> str: FILE: docs/examples/disease-qa/disease_qa_tutorial.py class ApiError (line 43) | class ApiError(Exception): function ask_disease_question (line 50) | def ask_disease_question(question: str, api_key: str = API_KEY, model: s... function create_html_ui (line 146) | def create_html_ui(api_key: str, output_path: str = "disease_qa.html") -... function display_results (line 545) | def display_results(data: Optional[Dict[str, Any]]) -> None: function launch_browser_ui (line 585) | def launch_browser_ui(api_key: str = API_KEY, html_path: str = "disease_... function test_api_in_notebook (line 616) | def test_api_in_notebook(): function launch_browser_app (line 635) | def launch_browser_app(): FILE: docs/examples/equity-research-brief/equity_research_brief.py function build_client (line 97) | def build_client(api_key: Optional[str] = None) -> Perplexity: function generate_brief (line 122) | def generate_brief( function _safe_output_text (line 146) | def _safe_output_text(response: Any) -> str: function _collect_finance_results (line 181) | def _collect_finance_results(response: Any) -> List[Dict[str, Any]]: function _collect_sources (line 203) | def _collect_sources(finance_results: List[Dict[str, Any]]) -> List[str]: function display (line 212) | def display(response: Any, format_json: bool = False) -> None: function main (line 268) | def main() -> int: FILE: docs/examples/fact-checker-cli/fact_checker.py class Claim (line 22) | class Claim(BaseModel): class FactCheckResult (line 30) | class FactCheckResult(BaseModel): class FactChecker (line 37) | class FactChecker: method __init__ (line 47) | def __init__(self, api_key: Optional[str] = None, prompt_file: Optiona... method _get_api_key (line 63) | def _get_api_key(self) -> str: method _load_system_prompt (line 84) | def _load_system_prompt(self, prompt_file: str) -> str: method check_claim (line 108) | def check_claim(self, text: str, model: str = DEFAULT_MODEL, use_struc... method _parse_response (line 178) | def _parse_response(self, content: str) -> Dict[str, Any]: function display_results (line 206) | def display_results(results: Dict[str, Any], format_json: bool = False): function main (line 290) | def main(): FILE: docs/examples/financial-news-tracker/financial_news_tracker.py class NewsItem (line 19) | class NewsItem(BaseModel): class MarketAnalysis (line 28) | class MarketAnalysis(BaseModel): class FinancialNewsResult (line 36) | class FinancialNewsResult(BaseModel): class FinancialNewsTracker (line 46) | class FinancialNewsTracker: method __init__ (line 55) | def __init__(self, api_key: Optional[str] = None): method _get_api_key (line 68) | def _get_api_key(self) -> str: method get_financial_news (line 89) | def get_financial_news( method _get_time_context (line 182) | def _get_time_context(self, time_range: str) -> str: method _parse_response (line 207) | def _parse_response(self, content: str) -> Dict[str, Any]: function display_results (line 232) | def display_results(results: Dict[str, Any], format_json: bool = False): function main (line 313) | def main(): FILE: docs/examples/research-finder/research_finder.py class ResearchAssistant (line 16) | class ResearchAssistant: method __init__ (line 23) | def __init__(self, api_key: Optional[str] = None, prompt_file: Optiona... method _get_api_key (line 49) | def _get_api_key(self) -> str: method _load_system_prompt (line 75) | def _load_system_prompt(self, prompt_path: Path) -> str: method research_topic (line 100) | def research_topic(self, query: str, model: str = DEFAULT_MODEL) -> Di... function display_results (line 197) | def display_results(results: Dict[str, Any], output_json: bool = False): function main (line 247) | def main(): FILE: scripts/validate-mdx.js function validateMDX (line 5) | async function validateMDX() {