SYMBOL INDEX (144 symbols across 15 files) FILE: app.py function init_components (line 32) | def init_components(): function lifespan (line 163) | async def lifespan(app_instance): function _check_admin_token (line 195) | def _check_admin_token(token: str = None): function admin_reload_config (line 208) | async def admin_reload_config(request: Request): function admin_update_config (line 232) | async def admin_update_config(request: Request): function admin_page (line 273) | async def admin_page(): function status (line 296) | async def status(): function admin_get_config (line 302) | async def admin_get_config(): function root (line 345) | async def root(): class WebSearchRequest (line 348) | class WebSearchRequest(BaseModel): class YouTubeSearchRequest (line 358) | class YouTubeSearchRequest(BaseModel): class RedditSearchRequest (line 363) | class RedditSearchRequest(BaseModel): class MapSearchRequest (line 373) | class MapSearchRequest(BaseModel): class WebSummarizeRequest (line 381) | class WebSummarizeRequest(BaseModel): class GitTreeRequest (line 386) | class GitTreeRequest(BaseModel): class GitSearchRequest (line 389) | class GitSearchRequest(BaseModel): class LocalFolderTreeRequest (line 395) | class LocalFolderTreeRequest(BaseModel): class ResearchCheckRequest (line 400) | class ResearchCheckRequest(BaseModel): class ClickableElementRequest (line 404) | class ClickableElementRequest(BaseModel): class PodcastRequest (line 409) | class PodcastRequest(BaseModel): class BasicTTSRequest (line 413) | class BasicTTSRequest(BaseModel): class KnowledgeBaseRequest (line 419) | class KnowledgeBaseRequest(BaseModel): class CrawlerRequest (line 422) | class CrawlerRequest(BaseModel): function get_website_structure (line 433) | async def get_website_structure(request: ClickableElementRequest): function get_local_folder_tree (line 449) | async def get_local_folder_tree(request: LocalFolderTreeRequest): function get_git_tree (line 465) | async def get_git_tree(request:GitTreeRequest): function get_git_search (line 479) | async def get_git_search(request:GitSearchRequest): function websearch (line 507) | async def websearch(request: WebSearchRequest): function create_kb (line 550) | async def create_kb(request: KnowledgeBaseRequest): function crawl_kb (line 571) | async def crawl_kb(request: CrawlerRequest): function websummarize (line 605) | async def websummarize(request: WebSummarizeRequest): function youtube_search (line 626) | async def youtube_search(request: YouTubeSearchRequest): function reddit_search (line 644) | async def reddit_search(request: RedditSearchRequest): function map_search (line 675) | async def map_search(request: MapSearchRequest): function check_response (line 697) | async def check_response(request: ResearchCheckRequest): function podcaster (line 724) | async def podcaster(request: PodcastRequest): function basic_tts (line 789) | async def basic_tts(request: BasicTTSRequest): FILE: model_config.py function _env_bool (line 46) | def _env_bool(key, default=False): function _env_json (line 52) | def _env_json(key, default=None): function _load_config_file (line 83) | def _load_config_file(path): function reload_model_config (line 160) | def reload_model_config(path=None): FILE: utils/answer_generation.py function query_agent (line 15) | async def query_agent(query, llm, date, day): function response_gen (line 105) | async def response_gen(model, query, context): function summarizer (line 188) | async def summarizer(query, docs, llm, batch,max_docs=30,max_words_per_d... FILE: utils/crawler_utils.py function get_sitemap_urls (line 22) | def get_sitemap_urls(base_url: str, headers: dict) -> List[str]: function crawl_website (line 41) | def crawl_website(base_url: str, depth: Optional[int] = None, max_pages:... function filter_docs_by_keywords (line 237) | def filter_docs_by_keywords(docs_map: dict, keywords: List[str]) -> dict: function crawl_and_create_kb (line 266) | async def crawl_and_create_kb( FILE: utils/git_utils.py function git_tree_search (line 5) | async def git_tree_search(url): function git_specific_content (line 33) | async def git_specific_content(base_url, part,type): function folder_tree (line 80) | async def folder_tree( FILE: utils/knowledge_base.py function create_knowledge_base (line 10) | async def create_knowledge_base(document_paths, hf_embeddings): FILE: utils/map.py function get_coordinates (line 15) | def get_coordinates(location: str, limit: int = 3) -> List[Tuple[str, fl... function get_route (line 42) | def get_route(start_coords: Tuple[float, float], end_coords: Tuple[float... function get_pois (line 70) | def get_pois( function create_map (line 105) | def create_map( function auto_fix_destination (line 144) | def auto_fix_destination(location: str, limit: int = 3) -> Optional[Tupl... function get_route_directions (line 156) | def get_route_directions(route_data: dict) -> str: function generate_map (line 173) | def generate_map( FILE: utils/process_content.py function clean_html (line 24) | def clean_html(soup): function process_content (line 38) | def process_content(url, content_type, content): function process_content_pdf (line 93) | def process_content_pdf(file): FILE: utils/profiler_utils.py class WebSearchProfiler (line 9) | class WebSearchProfiler: method __init__ (line 15) | def __init__(self, query): method start_step (line 40) | def start_step(self, step_name, details=""): method end_step (line 58) | def end_step(self, additional_info=""): method add_metric (line 79) | def add_metric(self, metric_name, value): method add_url_content (line 92) | def add_url_content(self, url, content): method start_url_processing (line 102) | def start_url_processing(self, url): method end_url_processing (line 107) | def end_url_processing(self, url, docs_count=0, context_length=0, stat... method calculate_time_saved (line 124) | def calculate_time_saved(self): method get_time_saved_summary (line 136) | def get_time_saved_summary(self): method get_summary (line 149) | def get_summary(self): method _get_seven_step_report (line 253) | def _get_seven_step_report(self, total_time): method _get_url_processing_report (line 325) | def _get_url_processing_report(self): method print_summary (line 414) | def print_summary(self): function get_profiler (line 421) | def get_profiler(): function set_profiler (line 425) | def set_profiler(profiler): FILE: utils/reddit_utils.py function fetch_reddit_posts (line 23) | def fetch_reddit_posts(subreddit=None, url_type='hot', limit=10, time_fi... function fetch_post_comments (line 95) | def fetch_post_comments(post_id, limit=5, is_custom_url=False): function random_delay (line 126) | def random_delay(): function reddit_reader (line 133) | def reddit_reader(subreddit=None, url_type='hot', n=10, k=5, custom_url=... function reddit_to_context (line 165) | def reddit_to_context(prompt, subreddit=None, url_type='hot', n=10, k=5,... function reddit_reader_response (line 187) | def reddit_reader_response( FILE: utils/retriever_utils.py function get_chroma_client (line 19) | def get_chroma_client(): function create_vectorstore_async (line 38) | async def create_vectorstore_async(docs, collection_name, hf_embeddings,... function _create_vectorstore_sync (line 73) | def _create_vectorstore_sync(docs, unique_collection_name, hf_embeddings... function create_vectorstore (line 162) | def create_vectorstore(docs, collection_name, hf_embeddings, top_k, ense... function cleanup_old_collections_async (line 171) | async def cleanup_old_collections_async(max_collections=20): function _cleanup_collections_sync (line 183) | def _cleanup_collections_sync(max_collections): function cleanup_old_collections (line 212) | def cleanup_old_collections(max_collections=20): FILE: utils/startup_banner.py function get_ascii_banner (line 11) | def get_ascii_banner(): function get_system_info (line 22) | def get_system_info(): function display_startup_banner (line 38) | def display_startup_banner(host="localhost", port=8000, mcp_port=None): function display_shutdown_banner (line 108) | def display_shutdown_banner(): FILE: utils/tts_utils.py function random_pause (line 15) | def random_pause(min_duration=0.5, max_duration=2.0, sample_rate=None): function parse_podcast (line 23) | async def parse_podcast(text: str, voice_choices:list) -> list[dict]: function podcasting (line 68) | async def podcasting(sentences, filename): function text_to_speech (line 100) | async def text_to_speech(text, voice, filename, lang): function podcasting_from_text (line 114) | async def podcasting_from_text(text,theme,llm): FILE: utils/utils.py function set_logging (line 47) | def set_logging(enabled: bool): function is_searxng_running (line 77) | def is_searxng_running(): function fix_json (line 143) | def fix_json(json_str): function load_model (line 162) | def load_model(model_name, function stream_text_1 (line 321) | def stream_text_1(placeholder, output): function stream_answer (line 335) | def stream_answer(text): function get_local_data (line 346) | def get_local_data(): function get_generative_model (line 359) | def get_generative_model(model_name='gemini-1.5-flash', function log_results (line 413) | def log_results(query, context, date, day): function ordered_set_by_key (line 428) | def ordered_set_by_key(data): function remove_consecutive_newlines (line 450) | def remove_consecutive_newlines(text): function remove_main_url (line 466) | def remove_main_url(url): function extract_markdown_tables (line 478) | def extract_markdown_tables(filename, md_text): function extract_urls (line 506) | def extract_urls(text): function extract_subqueries (line 524) | def extract_subqueries(text): function extract_urls_from_query (line 547) | def extract_urls_from_query(text): FILE: utils/websearch_utils.py class SearchWeb (line 64) | class SearchWeb: method __init__ (line 73) | def __init__(self, port, host="localhost", type='http'): method query_search (line 99) | def query_search(self, query, engines=['google','brave','duckduckgo','... method scrape_text (line 123) | def scrape_text(self, url): method scrape_top_results (line 164) | def scrape_top_results(self, urls): function process_url (line 185) | async def process_url( function context_to_docs (line 414) | async def context_to_docs( function text_to_docs (line 711) | def text_to_docs(texts_with_metadata): function remove_urls (line 737) | def remove_urls(text): function extract_domain_from_url (line 762) | def extract_domain_from_url(url): function check_url_reachability (line 785) | async def check_url_reachability(url, timeout=10): function check_urls_reachability (line 809) | async def check_urls_reachability(urls): function add_domains_to_blacklist (line 839) | def add_domains_to_blacklist(urls): function modify_query_with_blacklist (line 857) | def modify_query_with_blacklist(query): function query_to_search_results (line 880) | def query_to_search_results(query, search_response, websearcher, num_res... function query_web_response (line 1006) | async def query_web_response( function url_to_markdown (line 1263) | async def url_to_markdown(url, executor, local_mode=False): function urls_to_docs (line 1316) | async def urls_to_docs(urls, local_mode=False, split=True): function youtube_transcript_response (line 1416) | def youtube_transcript_response(query, task, model,n=3): function generate_doc_hash (line 1470) | def generate_doc_hash(text): function summary_of_url (line 1482) | async def summary_of_url(query, url, model, local_mode=False): function is_file_folder (line 1516) | def is_file_folder(root_path): function get_all_paths (line 1527) | def get_all_paths(root_path): function fetch_html (line 1541) | async def fetch_html(url, client): function extract_clickable_elements (line 1551) | async def extract_clickable_elements(url): function bm25_search (line 1577) | def bm25_search(elements, query,topk=10): function get_topk_bm25_clickable_elements (line 1592) | async def get_topk_bm25_clickable_elements(url, query, topk=10): function deduplicate_context (line 1597) | def deduplicate_context(context):