SYMBOL INDEX (1108 symbols across 67 files) FILE: Assets/SentenceTransformer.py class SentenceTransformer (line 61) | class SentenceTransformer(nn.Sequential, FitMixin, PeftAdapterMixin): method __init__ (line 166) | def __init__( method get_backend (line 390) | def get_backend(self) -> Literal["torch", "onnx", "openvino"]: method encode (line 400) | def encode( method encode (line 419) | def encode( method encode (line 438) | def encode( method encode (line 456) | def encode( method encode (line 474) | def encode( method encode (line 492) | def encode( method encode (line 510) | def encode( method encode (line 526) | def encode( method forward (line 790) | def forward(self, input: dict[str, Tensor], **kwargs) -> dict[str, Ten... method similarity_fn_name (line 801) | def similarity_fn_name(self) -> Literal["cosine", "dot", "euclidean", ... method similarity_fn_name (line 818) | def similarity_fn_name( method similarity (line 830) | def similarity(self, embeddings1: Tensor, embeddings2: Tensor) -> Tens... method similarity (line 833) | def similarity(self, embeddings1: npt.NDArray[np.float32], embeddings2... method similarity (line 836) | def similarity(self) -> Callable[[Tensor | npt.NDArray[np.float32], Te... method similarity_pairwise (line 880) | def similarity_pairwise(self, embeddings1: Tensor, embeddings2: Tensor... method similarity_pairwise (line 883) | def similarity_pairwise( method similarity_pairwise (line 888) | def similarity_pairwise( method start_multi_process_pool (line 926) | def start_multi_process_pool( method stop_multi_process_pool (line 976) | def stop_multi_process_pool(pool: dict[Literal["input", "output", "pro... method encode_multi_process (line 996) | def encode_multi_process( method _encode_multi_process_worker (line 1095) | def _encode_multi_process_worker( method set_pooling_include_prompt (line 1122) | def set_pooling_include_prompt(self, include_prompt: bool) -> None: method get_max_seq_length (line 1140) | def get_max_seq_length(self) -> int | None: method tokenize (line 1152) | def tokenize(self, texts: list[str] | list[dict] | list[tuple[str, str... method get_sentence_features (line 1166) | def get_sentence_features(self, *features) -> dict[Literal["sentence_e... method get_sentence_embedding_dimension (line 1169) | def get_sentence_embedding_dimension(self) -> int | None: method truncate_sentence_embeddings (line 1189) | def truncate_sentence_embeddings(self, truncate_dim: int | None) -> It... method _first_module (line 1218) | def _first_module(self) -> torch.nn.Module: method _last_module (line 1222) | def _last_module(self) -> torch.nn.Module: method save (line 1226) | def save( method save_pretrained (line 1317) | def save_pretrained( method _create_model_card (line 1345) | def _create_model_card( method save_to_hub (line 1390) | def save_to_hub( method push_to_hub (line 1454) | def push_to_hub( method _text_length (line 1589) | def _text_length(self, text: str | list[int] | list[list[int]]) -> int: method evaluate (line 1606) | def evaluate(self, evaluator: SentenceEvaluator, output_path: str = No... method _load_auto_model (line 1621) | def _load_auto_model( method _load_module_class_from_ref (line 1677) | def _load_module_class_from_ref( method _load_sbert_model (line 1705) | def _load_sbert_model( method load (line 1898) | def load(input_path) -> SentenceTransformer: method device (line 1902) | def device(self) -> device: method tokenizer (line 1927) | def tokenizer(self) -> Any: method tokenizer (line 1934) | def tokenizer(self, value) -> None: method max_seq_length (line 1941) | def max_seq_length(self) -> int: method max_seq_length (line 1960) | def max_seq_length(self, value) -> None: method _target_device (line 1967) | def _target_device(self) -> torch.device: method _target_device (line 1974) | def _target_device(self, device: int | str | torch.device | None = Non... method _no_split_modules (line 1978) | def _no_split_modules(self) -> list[str]: method _keys_to_ignore_on_save (line 1985) | def _keys_to_ignore_on_save(self) -> list[str]: method gradient_checkpointing_enable (line 1991) | def gradient_checkpointing_enable(self, gradient_checkpointing_kwargs=... FILE: Assets/core.py class Chat (line 34) | class Chat: method __init__ (line 35) | def __init__(self, logger=logging.getLogger(__name__)): method has_loaded (line 52) | def has_loaded(self, use_decoder=False): method download_models (line 68) | def download_models( method load (line 166) | def load( method unload (line 202) | def unload(self): method sample_random_speaker (line 213) | def sample_random_speaker(self) -> str: method sample_audio_speaker (line 216) | def sample_audio_speaker(self, wav: Union[np.ndarray, torch.Tensor]) -... class RefineTextParams (line 220) | class RefineTextParams: class InferCodeParams (line 233) | class InferCodeParams(RefineTextParams): method infer (line 245) | def infer( method interrupt (line 309) | def interrupt(self): method _load (line 313) | def _load( method _infer (line 423) | def _infer( method _vocos_decode (line 543) | def _vocos_decode(self, spec: torch.Tensor) -> np.ndarray: method _decode_to_wavs (line 550) | def _decode_to_wavs( method _infer_code (line 579) | def _infer_code( method _refine_text (line 702) | def _refine_text( FILE: charts/all_gpus.py function create_gpu_comparison_plot (line 6) | def create_gpu_comparison_plot(min_vram_threshold=6, max_vram_threshold=8): FILE: charts/gpu_info.py class GPUInfo (line 5) | class GPUInfo(TypedDict): FILE: charts/models_chat.py function create_chat_models_comparison_plot (line 9) | def create_chat_models_comparison_plot(): FILE: charts/models_vector.py function create_vector_models_comparison_plot (line 3) | def create_vector_models_comparison_plot(): FILE: charts/models_vision.py function create_vision_models_comparison_plot (line 6) | def create_vision_models_comparison_plot(): FILE: chat/base.py class ChatSignals (line 32) | class ChatSignals(QObject): function load_chat_config (line 38) | def load_chat_config(): function save_metadata (line 42) | def save_metadata(metadata_list): function build_augmented_query (line 47) | def build_augmented_query(contexts, query): function cleanup_gpu (line 50) | def cleanup_gpu(): function utf8_file_operations (line 56) | def utf8_file_operations(): function _configure_device_settings (line 70) | def _configure_device_settings(settings, model_info): function get_max_length (line 92) | def get_max_length(model_name): function get_max_new_tokens (line 97) | def get_max_new_tokens(model_name): function get_generation_settings (line 102) | def get_generation_settings(max_length, max_new_tokens): function make_bnb_settings (line 114) | def make_bnb_settings(dtype): function get_hf_token (line 133) | def get_hf_token(): function check_if_model_is_gated (line 142) | def check_if_model_is_gated(repo_id, hf_token): class _StopOnToken (line 158) | class _StopOnToken(StoppingCriteria): method __init__ (line 159) | def __init__(self, stop_ids): method __call__ (line 162) | def __call__(self, input_ids, scores, **kwargs): class BaseModel (line 167) | class BaseModel(ABC): method __init__ (line 168) | def __init__(self, model_info, settings, generation_settings, attn_imp... method get_model_name (line 224) | def get_model_name(self): method create_prompt (line 228) | def create_prompt(self, augmented_query): method create_inputs (line 231) | def create_inputs(self, prompt): method generate_response (line 241) | def generate_response(self, inputs, remove_token_type_ids=False): method cleanup (line 259) | def cleanup(self): method switch_model (line 267) | def switch_model(self, new_model_class): method free_torch_memory (line 272) | def free_torch_memory(model, tokenizer): class LiquidAI (line 279) | class LiquidAI(BaseModel): method __init__ (line 280) | def __init__(self, generation_settings, model_name): method create_prompt (line 302) | def create_prompt(self, augmented_query): method create_inputs (line 310) | def create_inputs(self, prompt): method generate_response (line 325) | def generate_response(self, inputs, remove_token_type_ids: bool = False): class Granite (line 351) | class Granite(BaseModel): method __init__ (line 352) | def __init__(self, generation_settings, model_name): method create_prompt (line 362) | def create_prompt(self, augmented_query): class Exaone (line 368) | class Exaone(BaseModel): method __init__ (line 369) | def __init__(self, generation_settings, model_name): method create_prompt (line 384) | def create_prompt(self, augmented_query): class Qwen (line 390) | class Qwen(BaseModel): method __init__ (line 391) | def __init__(self, generation_settings, model_name): method create_prompt (line 407) | def create_prompt(self, augmented_query): class Mistral_Small_24b (line 416) | class Mistral_Small_24b(BaseModel): method __init__ (line 417) | def __init__(self, generation_settings, model_name=None): method create_prompt (line 421) | def create_prompt(self, augmented_query): class DeepseekR1 (line 429) | class DeepseekR1(BaseModel): method __init__ (line 430) | def __init__(self, generation_settings: dict, model_name: str): method create_prompt (line 462) | def create_prompt(self, augmented_query: str) -> str: method generate_response (line 466) | def generate_response(self, inputs, remove_token_type_ids: bool = False): class GLM4Z1 (line 470) | class GLM4Z1(BaseModel): method __init__ (line 471) | def __init__(self, generation_settings: dict, model_name: str): method create_prompt (line 505) | def create_prompt(self, augmented_query: str) -> str: method generate_response (line 512) | def generate_response(self, inputs, remove_token_type_ids: bool = False): class SeedCoder (line 523) | class SeedCoder(BaseModel): method __init__ (line 524) | def __init__(self, generation_settings, model_name=None): method create_prompt (line 528) | def create_prompt(self, augmented_query): method generate_response (line 537) | def generate_response(self, inputs): class Phi4 (line 542) | class Phi4(BaseModel): method __init__ (line 543) | def __init__(self, generation_settings: dict, model_name: str): method create_prompt (line 557) | def create_prompt(self, augmented_query: str) -> str: method generate_response (line 564) | def generate_response(self, inputs, remove_token_type_ids: bool = False): function generate_response (line 615) | def generate_response(model_instance, augmented_query): function choose_model (line 621) | def choose_model(model_name): FILE: chat/jeeves.py class GenerationWorker (line 43) | class GenerationWorker(QThread): method __init__ (line 48) | def __init__(self, generator, tokenizer, prompt, model_dir): method run (line 56) | def run(self): method stop (line 97) | def stop(self): class ChatWindow (line 100) | class ChatWindow(QMainWindow): method __init__ (line 101) | def __init__(self, parent=None): method _ensure_model (line 231) | def _ensure_model(self) -> None: method eject_model (line 237) | def eject_model(self): method toggle_speech (line 251) | def toggle_speech(self): method on_model_selected (line 257) | def on_model_selected(self, index): method on_model_downloaded (line 294) | def on_model_downloaded(self, model_name, model_type): method _load_model (line 304) | def _load_model(self): method showEvent (line 324) | def showEvent(self, event): method apply_dark_mode_settings (line 328) | def apply_dark_mode_settings(self): method build_prompt (line 349) | def build_prompt(self, user_message): method send_message (line 357) | def send_message(self): method update_response (line 402) | def update_response(self, token): method show_error (line 409) | def show_error(self, error_message): method on_generation_finished (line 413) | def on_generation_finished(self): method find_top_similar (line 422) | def find_top_similar(self, input_text, top_k=5): method debounce_update (line 440) | def debounce_update(self, text): method _delayed_update (line 444) | def _delayed_update(self): method update_suggestions (line 452) | def update_suggestions(self, suggestions): method clear_suggestions (line 461) | def clear_suggestions(self): method on_suggestion_clicked (line 466) | def on_suggestion_clicked(self): method speak_response (line 473) | def speak_response(self): method cancel_speech (line 514) | def cancel_speech(self): method on_speech_finished (line 518) | def on_speech_finished(self): method handle_tts_error (line 529) | def handle_tts_error(self, error_message): method closeEvent (line 534) | def closeEvent(self, event): class TTSWorker (line 543) | class TTSWorker(QObject): method __init__ (line 547) | def __init__(self, tts, text, voice, speed): method stop (line 555) | def stop(self): method run (line 560) | def run(self): function launch_jeeves_process (line 574) | def launch_jeeves_process(): FILE: chat/kobold.py class KoboldChat (line 12) | class KoboldChat: method __init__ (line 13) | def __init__(self): method connect_to_kobold (line 20) | def connect_to_kobold(self, augmented_query): method handle_response_and_cleanup (line 53) | def handle_response_and_cleanup(self, full_response, metadata_list): method ask_kobold (line 60) | def ask_kobold(self, query, selected_database): class KoboldThread (line 94) | class KoboldThread(QThread): method __init__ (line 100) | def __init__(self, query, selected_database): method run (line 109) | def run(self): method stop (line 118) | def stop(self): FILE: chat/lm_studio.py function _strip_thinking (line 18) | def _strip_thinking(buffer, in_thinking): class LMStudioChat (line 59) | class LMStudioChat: method __init__ (line 60) | def __init__(self): method connect_to_local_chatgpt (line 65) | def connect_to_local_chatgpt(self, prompt): method handle_response_and_cleanup (line 115) | def handle_response_and_cleanup(self, full_response, metadata_list): method ask_local_chatgpt (line 122) | def ask_local_chatgpt(self, query, selected_database): class LMStudioChatThread (line 151) | class LMStudioChatThread(QThread): method __init__ (line 152) | def __init__(self, query, selected_database): method run (line 158) | def run(self): function is_lm_studio_available (line 167) | def is_lm_studio_available(): FILE: chat/local_model.py class MessageType (line 18) | class MessageType(Enum): class PipeMessage (line 29) | class PipeMessage: class LocalModelSignals (line 33) | class LocalModelSignals(QObject): class LocalModelChat (line 42) | class LocalModelChat: method __init__ (line 43) | def __init__(self): method start_model_process (line 49) | def start_model_process(self, model_name): method terminate_current_process (line 64) | def terminate_current_process(self): method start_chat (line 96) | def start_chat(self, user_question, selected_model, selected_database): method is_model_loaded (line 106) | def is_model_loaded(self): method eject_model (line 109) | def eject_model(self): method _start_listening_thread (line 112) | def _start_listening_thread(self): method _listen_for_response (line 128) | def _listen_for_response(self, stop_event): method cleanup_listener_resources (line 156) | def cleanup_listener_resources(self): method _local_model_process (line 162) | def _local_model_process(conn, model_name): function is_cuda_available (line 254) | def is_cuda_available(): FILE: chat/minimax.py class MiniMaxChat (line 16) | class MiniMaxChat: method __init__ (line 17) | def __init__(self, override_model: str = None): method connect_to_minimax (line 27) | def connect_to_minimax(self, augmented_query): method handle_response_and_cleanup (line 56) | def handle_response_and_cleanup(self, full_response, metadata_list): method ask_minimax (line 67) | def ask_minimax(self, query, selected_database): class MiniMaxThread (line 97) | class MiniMaxThread(QThread): method __init__ (line 103) | def __init__(self, query, selected_database, model_name: str = None): method on_response (line 114) | def on_response(self, text): method on_error (line 117) | def on_error(self, error): method on_finished (line 120) | def on_finished(self): method on_citations (line 123) | def on_citations(self, citations): method run (line 126) | def run(self): FILE: chat/openai.py class ChatGPTChat (line 18) | class ChatGPTChat: method __init__ (line 19) | def __init__(self): method connect_to_chatgpt (line 27) | def connect_to_chatgpt(self, augmented_query): method handle_response_and_cleanup (line 72) | def handle_response_and_cleanup(self, full_response, metadata_list): method ask_chatgpt (line 83) | def ask_chatgpt(self, query, selected_database): class ChatGPTThread (line 113) | class ChatGPTThread(QThread): method __init__ (line 119) | def __init__(self, query, selected_database): method on_response (line 130) | def on_response(self, text): method on_error (line 133) | def on_error(self, error): method on_finished (line 136) | def on_finished(self): method on_citations (line 139) | def on_citations(self, citations): method run (line 142) | def run(self): FILE: core/chatgpt_settings.py function get_display_name (line 27) | def get_display_name(model: str) -> str: function get_model_from_display_name (line 31) | def get_model_from_display_name(display_name: str) -> str: function get_model_pricing (line 38) | def get_model_pricing(model_name: str) -> tuple[float, float, float]: function supports_reasoning_effort (line 42) | def supports_reasoning_effort(model_name: str) -> bool: function supports_verbosity (line 49) | def supports_verbosity(model_name: str) -> bool: function migrate_legacy_model (line 54) | def migrate_legacy_model(model_name: str) -> str: FILE: core/config.py class OpenAIConfig (line 9) | class OpenAIConfig(BaseModel): class MiniMaxConfig (line 15) | class MiniMaxConfig(BaseModel): class ServerConfig (line 20) | class ServerConfig(BaseModel): method validate_connection_str (line 27) | def validate_connection_str(cls, v: str) -> str: class DatabaseConfig (line 33) | class DatabaseConfig(BaseModel): method coerce_contexts (line 46) | def coerce_contexts(cls, v): method validate_overlap (line 53) | def validate_overlap(cls, v: int, info) -> int: method validate_pipeline_preset (line 60) | def validate_pipeline_preset(cls, v: str) -> str: class ComputeDeviceConfig (line 67) | class ComputeDeviceConfig(BaseModel): method validate_device (line 75) | def validate_device(cls, v: str, info) -> str: class DatabaseInfo (line 81) | class DatabaseInfo(BaseModel): class AppearanceConfig (line 87) | class AppearanceConfig(BaseModel): class PlatformInfo (line 91) | class PlatformInfo(BaseModel): class AppConfig (line 95) | class AppConfig(BaseSettings): method root_dir (line 119) | def root_dir(self) -> Path: method docs_dir (line 123) | def docs_dir(self) -> Path: method vector_db_dir (line 127) | def vector_db_dir(self) -> Path: method vector_db_backup_dir (line 131) | def vector_db_backup_dir(self) -> Path: method models_dir (line 135) | def models_dir(self) -> Path: method vector_models_dir (line 139) | def vector_models_dir(self) -> Path: method load (line 143) | def load(cls, path: Optional[Path] = None) -> "AppConfig": method save (line 166) | def save(self, path: Optional[Path] = None) -> None: method update_field (line 175) | def update_field(self, field_path: str, value: Any) -> None: method update_setting (line 184) | def update_setting(self, field_path: str, value: Any) -> tuple[bool, s... method add_database (line 193) | def add_database(self, name: str, model_path: str, chunk_size: int, ch... method remove_database (line 201) | def remove_database(self, name: str) -> None: method get_user_databases (line 206) | def get_user_databases(self) -> list[str]: function get_config (line 214) | def get_config() -> AppConfig: function reload_config (line 223) | def reload_config() -> AppConfig: FILE: core/constants.py class CustomButtonStyles (line 2706) | class CustomButtonStyles: method _generate_button_style (line 2762) | def _generate_button_style(cls, color_values): FILE: core/extract_metadata.py function compute_content_hash (line 8) | def compute_content_hash(content: str) -> str: function compute_file_hash (line 11) | def compute_file_hash(file_path): function extract_common_metadata (line 18) | def extract_common_metadata(file_path, content_hash=None): function extract_typed_metadata (line 45) | def extract_typed_metadata(file_path, document_type, content_hash=None): function add_pymupdf_page_metadata (line 50) | def add_pymupdf_page_metadata(doc: Document, chunk_size: int = 1200, chu... FILE: core/initialize.py function get_compute_device_info (line 13) | def get_compute_device_info(): function get_platform_info (line 24) | def get_platform_info(): function get_supported_quantizations (line 27) | def get_supported_quantizations(device_type): function update_config_file (line 35) | def update_config_file(**system_info): function check_for_necessary_folders (line 61) | def check_for_necessary_folders(): function restore_vector_db_backup (line 80) | def restore_vector_db_backup(): function delete_chat_history (line 108) | def delete_chat_history(): function main (line 113) | def main(): FILE: core/utilities.py function set_cuda_paths (line 25) | def set_cuda_paths(): function check_backend_dependencies (line 57) | def check_backend_dependencies(backend_name: str, interactive: bool = Tr... function is_package_available (line 71) | def is_package_available(pkg_name: str) -> tuple[bool, str]: function verify_installation (line 84) | def verify_installation(package_name: str, expected_version: str) -> bool: function install_packages (line 92) | def install_packages(packages: list[tuple[str, str]], no_deps: bool = Tr... function check_and_install_dependencies (line 111) | def check_and_install_dependencies(required_packages: dict[str, str], function get_platform_info (line 134) | def get_platform_info(): function get_python_version (line 144) | def get_python_version(): function has_nvidia_gpu (line 157) | def has_nvidia_gpu(): function gpu_summary (line 172) | def gpu_summary(): function _needs_ocr_worker (line 228) | def _needs_ocr_worker(path: str) -> bool: function clean_triton_cache (line 241) | def clean_triton_cache(): function check_pdfs_for_ocr (line 261) | def check_pdfs_for_ocr(script_dir): class DownloadSignals (line 321) | class DownloadSignals(QObject): class DownloadRunnable (line 326) | class DownloadRunnable(QRunnable): method __init__ (line 327) | def __init__(self, download_func, *args): method run (line 333) | def run(self): function download_with_threadpool (line 341) | def download_with_threadpool(download_func, *args, callback=None): function download_kokoro_tts (line 348) | def download_kokoro_tts(): function normalize_chat_text (line 376) | def normalize_chat_text(text): function supports_flash_attention (line 443) | def supports_flash_attention(): function check_cuda_re_triton (line 458) | def check_cuda_re_triton(): function get_model_native_precision (line 486) | def get_model_native_precision(embedding_model_name, vector_models=None): function get_appropriate_dtype (line 505) | def get_appropriate_dtype(compute_device, use_half, model_native_precisi... function format_citations (line 573) | def format_citations(metadata_list): function list_theme_files (line 628) | def list_theme_files(): function load_stylesheet (line 631) | def load_stylesheet(name): function ensure_theme_config (line 639) | def ensure_theme_config(): function update_theme_in_config (line 661) | def update_theme_in_config(new_theme): function make_theme_changer (line 679) | def make_theme_changer(theme_name): function backup_database (line 685) | def backup_database(database_name=None): function open_file (line 720) | def open_file(file_path): function delete_file (line 731) | def delete_file(file_path): function check_preconditions_for_db_creation (line 737) | def check_preconditions_for_db_creation(script_dir, database_name, skip_... function my_cprint (line 789) | def my_cprint(*args, **kwargs): function has_bfloat16_support (line 795) | def has_bfloat16_support(): function set_logging_level (line 809) | def set_logging_level(): function prepare_long_path (line 848) | def prepare_long_path(base_path: str, filename: str) -> str: function normalize_text (line 858) | def normalize_text(text, preserve_whitespace=False): function get_embedding_batch_size (line 917) | def get_embedding_batch_size(model_name: str, compute_device: str) -> int: function get_embedding_dtype_and_batch (line 949) | def get_embedding_dtype_and_batch( function configure_logging (line 961) | def configure_logging(level: str = "INFO"): FILE: db/choose_documents.py class SymlinkWorker (line 49) | class SymlinkWorker(QThread): method __init__ (line 53) | def __init__(self, source, target_dir, parent=None): method run (line 58) | def run(self): function choose_documents_directory (line 121) | def choose_documents_directory(): function show_incompatible_files_dialog (line 268) | def show_incompatible_files_dialog(incompatible_files): function load_config (line 302) | def load_config(): function select_embedding_model_directory (line 307) | def select_embedding_model_directory(): function _get_main_window (line 323) | def _get_main_window(): FILE: db/create_symlinks.py function _points_to (line 7) | def _points_to(link_path: Path, source_path) -> bool: function _create_single_symlink (line 14) | def _create_single_symlink(args): function create_symlinks_parallel (line 36) | def create_symlinks_parallel(source: Union[str, Path, List[str], List[Pa... FILE: db/cuda_manager.py class CUDAManager (line 9) | class CUDAManager: method __new__ (line 13) | def __new__(cls): method __init__ (line 21) | def __init__(self): method cuda_operation (line 29) | def cuda_operation(self): method safe_empty_cache (line 38) | def safe_empty_cache(self): method force_empty_cache (line 53) | def force_empty_cache(self): function get_cuda_manager (line 67) | def get_cuda_manager() -> CUDAManager: FILE: db/database_interactions.py function _json_dumps (line 79) | def _json_dumps(obj) -> str: function _json_dumps (line 82) | def _json_dumps(obj) -> str: function _get_split_params (line 109) | def _get_split_params(): function _run_subprocess_stage (line 118) | def _run_subprocess_stage(name, cmd, timeout=3600): function _run_extract_with_retry (line 147) | def _run_extract_with_retry(source_dir, output_pkl): function _run_split_with_retry (line 169) | def _run_split_with_retry(extracted_pkl, chunks_pkl, chunk_size, chunk_o... function _setup_tiledb_dlls (line 205) | def _setup_tiledb_dlls(): function create_vector_db_in_process (line 239) | def create_vector_db_in_process(database_name): function process_chunks_only_query (line 272) | def process_chunks_only_query(database_name, query, result_queue): class CreateVectorDB (line 307) | class CreateVectorDB: method __init__ (line 308) | def __init__(self, database_name): method initialize_vector_model (line 314) | def initialize_vector_model(self, embedding_model_name, config_data): method _create_tiledb_array (line 323) | def _create_tiledb_array(self, texts, vectors_array, metadatas): method load_audio_documents (line 442) | def load_audio_documents(self, source_dir=None): method clear_docs_for_db_folder (line 462) | def clear_docs_for_db_folder(self): method run (line 471) | def run(self): function get_query_db (line 646) | def get_query_db(database_name: str) -> "QueryVectorDB": function clear_query_cache (line 663) | def clear_query_cache(database_name: Optional[str] = None) -> None: class QueryVectorDB (line 678) | class QueryVectorDB: method __init__ (line 679) | def __init__(self, selected_database: str): method load_configuration (line 714) | def load_configuration(self): method initialize_vector_model (line 722) | def initialize_vector_model(self): method search (line 734) | def search(self, query, k: Optional[int] = None, score_threshold: Opti... method cleanup (line 868) | def cleanup(self): method close (line 880) | def close(self): FILE: db/document_processor.py function _get_ingest_params (line 25) | def _get_ingest_params(): class Document (line 38) | class Document: function compute_content_hash (line 43) | def compute_content_hash(content: str) -> str: function compute_file_hash (line 47) | def compute_file_hash(file_path): function extract_document_metadata (line 55) | def extract_document_metadata(file_path, content_hash=None): function _load_pdf (line 74) | def _load_pdf(file_path: Path) -> Optional[str]: function _load_docx (line 84) | def _load_docx(file_path: Path) -> Optional[str]: function _load_txt (line 90) | def _load_txt(file_path: Path) -> Optional[str]: function _load_csv (line 102) | def _load_csv(file_path: Path) -> Optional[str]: function _load_html (line 117) | def _load_html(file_path: Path) -> Optional[str]: function _load_eml (line 130) | def _load_eml(file_path: Path) -> Optional[str]: function _load_msg (line 164) | def _load_msg(file_path: Path) -> Optional[str]: function _load_xls (line 177) | def _load_xls(file_path: Path) -> Optional[str]: function _load_xlsx (line 194) | def _load_xlsx(file_path: Path) -> Optional[str]: function _load_rtf (line 212) | def _load_rtf(file_path: Path) -> Optional[str]: function _load_md (line 227) | def _load_md(file_path: Path) -> Optional[str]: function load_single_document (line 256) | def load_single_document(file_path: Path) -> Optional[Document]: function _extraction_worker_batch (line 289) | def _extraction_worker_batch(file_paths): function load_documents (line 310) | def load_documents(source_dir: Path) -> list: class FixedSizeTextSplitter (line 366) | class FixedSizeTextSplitter: method __init__ (line 367) | def __init__(self, chunk_size: int, chunk_overlap: int = 0): method split_documents (line 371) | def split_documents(self, docs: List[Document]) -> List[Document]: function add_pymupdf_page_metadata (line 409) | def add_pymupdf_page_metadata(doc: Document, chunk_size: int = 1200, chu... function split_documents (line 478) | def split_documents(documents=None, text_documents_pdf=None, chunk_size=... FILE: db/embedding_models.py function _get_tokenize_parallel_workers (line 40) | def _get_tokenize_parallel_workers(): function _get_model_family (line 49) | def _get_model_family(model_path: str) -> str: function _get_prompt_for_family (line 58) | def _get_prompt_for_family(family: str, is_query: bool = False) -> str: function _normalize_text (line 66) | def _normalize_text(text: str) -> str: function _get_encode_batch_size (line 97) | def _get_encode_batch_size(device: str, model_path: str = "") -> int: function _run_subprocess_stage (line 120) | def _run_subprocess_stage(name, cmd, cwd, timeout=3600): function _run_tokenize_with_retry (line 149) | def _run_tokenize_with_retry( class DirectEmbeddingModel (line 287) | class DirectEmbeddingModel: method __init__ (line 288) | def __init__( method _initialize_model (line 308) | def _initialize_model(self): method _safe_encode (line 353) | def _safe_encode(self, texts: list) -> np.ndarray: method embed_documents (line 367) | def embed_documents(self, texts: list) -> np.ndarray: method embed_query (line 471) | def embed_query(self, text: str) -> list: method __del__ (line 483) | def __del__(self): function create_embedding_model (line 492) | def create_embedding_model( function load_embedding_model (line 534) | def load_embedding_model( FILE: db/process_manager.py class ProcessManager (line 9) | class ProcessManager: method __new__ (line 21) | def __new__(cls): method __init__ (line 29) | def __init__(self): method register (line 36) | def register(self, process: multiprocessing.Process): method unregister (line 41) | def unregister(self, process: multiprocessing.Process): method cleanup_one (line 47) | def cleanup_one(self, process: multiprocessing.Process, timeout: float... method cleanup_all (line 73) | def cleanup_all(self, timeout: float = 5.0): method get_active_count (line 86) | def get_active_count(self) -> int: function get_process_manager (line 94) | def get_process_manager() -> ProcessManager: FILE: db/sqlite_operations.py function create_metadata_db (line 5) | def create_metadata_db(persist_directory, documents, hash_id_mappings): FILE: db/stage_extract.py function main (line 18) | def main(): FILE: db/stage_split.py function save_checkpoint (line 103) | def save_checkpoint(checkpoint_path, data): function run_worker (line 117) | def run_worker(python_exe: str, worker_script_path: str, function get_physical_core_count (line 151) | def get_physical_core_count() -> int: function run_worker_with_retries (line 163) | def run_worker_with_retries(worker_id: int, total_workers: int, function main (line 247) | def main(): FILE: db/stage_tokenize.py function save_checkpoint (line 174) | def save_checkpoint(checkpoint_path, data): function run_worker (line 188) | def run_worker(python_exe: str, worker_script_path: str, function get_physical_core_count (line 224) | def get_physical_core_count() -> int: function run_worker_with_retries (line 236) | def run_worker_with_retries(worker_id, total_workers, python_exe, worker... function main (line 320) | def main(): FILE: gui/credentials.py class CredentialManager (line 12) | class CredentialManager(ABC): method __init__ (line 13) | def __init__(self, parent_widget): method _load_config (line 18) | def _load_config(self) -> dict: method _save_config (line 24) | def _save_config(self) -> None: method dialog_title (line 30) | def dialog_title(self) -> str: method dialog_label (line 35) | def dialog_label(self) -> str: method clear_button_text (line 40) | def clear_button_text(self) -> str: method credential_name (line 45) | def credential_name(self) -> str: method get_current_credential (line 49) | def get_current_credential(self) -> Optional[str]: method update_credential (line 53) | def update_credential(self, value: Optional[str]) -> None: method show_dialog (line 56) | def show_dialog(self) -> None: class HuggingFaceCredentialManager (line 106) | class HuggingFaceCredentialManager(CredentialManager): method dialog_title (line 108) | def dialog_title(self) -> str: method dialog_label (line 112) | def dialog_label(self) -> str: method clear_button_text (line 116) | def clear_button_text(self) -> str: method credential_name (line 120) | def credential_name(self) -> str: method get_current_credential (line 123) | def get_current_credential(self) -> Optional[str]: method update_credential (line 126) | def update_credential(self, value: Optional[str]) -> None: class MiniMaxCredentialManager (line 129) | class MiniMaxCredentialManager(CredentialManager): method dialog_title (line 131) | def dialog_title(self) -> str: method dialog_label (line 135) | def dialog_label(self) -> str: method clear_button_text (line 139) | def clear_button_text(self) -> str: method credential_name (line 143) | def credential_name(self) -> str: method get_current_credential (line 146) | def get_current_credential(self) -> Optional[str]: method update_credential (line 149) | def update_credential(self, value: Optional[str]) -> None: function manage_credentials (line 154) | def manage_credentials(parent_widget, credential_type: str) -> None: FILE: gui/dialogs/ai_backends_dialog.py class AIBackendsDialog (line 20) | class AIBackendsDialog(QDialog): method __init__ (line 28) | def __init__(self, parent=None, initial_tab=0): method _load_config (line 61) | def _load_config(self) -> dict: method _save_config (line 71) | def _save_config(self, config: dict) -> bool: method _on_accept (line 80) | def _on_accept(self) -> None: FILE: gui/dialogs/chatgpt_tab.py class CostPanel (line 28) | class CostPanel(QFrame): method __init__ (line 29) | def __init__(self, parent=None): method _build_cost_column (line 62) | def _build_cost_column(self, parent_layout: QHBoxLayout, label_text: s... method update_for_model (line 74) | def update_for_model(self, model_name: str) -> None: class ChatGPTTab (line 93) | class ChatGPTTab(QWidget): method __init__ (line 94) | def __init__(self, parent=None): method _toggle_api_key_visibility (line 159) | def _toggle_api_key_visibility(self) -> None: method _on_model_changed (line 165) | def _on_model_changed(self) -> None: method _update_capability_visibility (line 170) | def _update_capability_visibility(self, model: str) -> None: method _set_combo_to_model (line 178) | def _set_combo_to_model(self, model: str) -> None: method load_from_config (line 185) | def load_from_config(self, config: dict) -> None: method save_to_config (line 208) | def save_to_config(self, config: dict) -> None: method validate (line 215) | def validate(self) -> tuple[bool, str | None]: FILE: gui/dialogs/kobold_tab.py class KoboldTab (line 5) | class KoboldTab(QWidget): method __init__ (line 6) | def __init__(self, parent=None): method load_from_config (line 23) | def load_from_config(self, config: dict) -> None: method save_to_config (line 26) | def save_to_config(self, config: dict) -> None: method validate (line 29) | def validate(self) -> tuple[bool, str | None]: FILE: gui/dialogs/lm_studio_tab.py class LMStudioTab (line 20) | class LMStudioTab(QWidget): method __init__ (line 21) | def __init__(self, parent=None): method load_from_config (line 51) | def load_from_config(self, config: dict) -> None: method save_to_config (line 63) | def save_to_config(self, config: dict) -> None: method validate (line 77) | def validate(self) -> tuple[bool, str | None]: method _update_port_in_connection_str (line 96) | def _update_port_in_connection_str(connection_str: str, port: str) -> ... FILE: gui/dialogs/minimax_tab.py class MiniMaxTab (line 5) | class MiniMaxTab(QWidget): method __init__ (line 6) | def __init__(self, parent=None): method load_from_config (line 24) | def load_from_config(self, config: dict) -> None: method save_to_config (line 27) | def save_to_config(self, config: dict) -> None: method validate (line 30) | def validate(self) -> tuple[bool, str | None]: FILE: gui/download_model.py class ModelDownloadedSignal (line 11) | class ModelDownloadedSignal(QObject): function get_hf_token (line 25) | def get_hf_token(): class ModelDownloader (line 37) | class ModelDownloader(QObject): method __init__ (line 38) | def __init__(self, model_info, model_type): method cleanup_incomplete_download (line 49) | def cleanup_incomplete_download(self): method get_model_directory_name (line 58) | def get_model_directory_name(self): method get_model_directory (line 64) | def get_model_directory(self): method get_model_url (line 69) | def get_model_url(self): method check_repo_type (line 74) | def check_repo_type(self, repo_id): method _list_repo_files (line 99) | def _list_repo_files(self, repo_id, use_token): method _select_patterns (line 103) | def _select_patterns(self, repo_files, allow_patterns, ignore_patterns): method _filter_and_size (line 142) | def _filter_and_size(self, repo_files, allow_patterns, ignore_patterns): method download (line 164) | def download(self, allow_patterns=None, ignore_patterns=None): function download_embedding_model (line 231) | def download_embedding_model(repo_id, local_dir=None): function download_chat_model (line 239) | def download_chat_model(repo_id, local_dir=None): FILE: gui/main_window.py class DocQA_GUI (line 30) | class DocQA_GUI(QWidget): method __init__ (line 31) | def __init__(self): method set_dark_titlebar (line 41) | def set_dark_titlebar(self): method init_ui (line 62) | def init_ui(self): method init_menu (line 78) | def init_menu(self): method open_chat_backends_dialog (line 102) | def open_chat_backends_dialog(self): method open_chat_window (line 106) | def open_chat_window(self): method closeEvent (line 161) | def closeEvent(self, event): function main (line 189) | def main(): FILE: gui/metrics_bar.py class SystemMetrics (line 24) | class SystemMetrics: function is_nvidia_gpu_available (line 33) | def is_nvidia_gpu_available(): function _shutdown_nvml (line 45) | def _shutdown_nvml(): class MetricsStore (line 53) | class MetricsStore(QObject): method __init__ (line 55) | def __init__(self, buffer_size: int = 100): method add_metrics (line 58) | def add_metrics(self, metrics: SystemMetrics) -> None: method subscribe (line 61) | def subscribe(self, callback): method unsubscribe (line 63) | def unsubscribe(self, callback): method history (line 69) | def history(self) -> List[SystemMetrics]: class BatchCSVLogger (line 72) | class BatchCSVLogger(QObject): method __init__ (line 73) | def __init__(self, filepath: str, flush_interval: int = 5000): method __enter__ (line 85) | def __enter__(self): method __exit__ (line 87) | def __exit__(self, exc_type, exc_val, exc_tb): method log (line 89) | def log(self, metrics): method flush (line 91) | def flush(self): method close (line 98) | def close(self): method __del__ (line 102) | def __del__(self): function collect_cpu_metrics (line 108) | def collect_cpu_metrics(): function collect_ram_metrics (line 116) | def collect_ram_metrics(): function collect_gpu_metrics (line 120) | def collect_gpu_metrics(handle): function collect_power_metrics (line 128) | def collect_power_metrics(handle): class MetricsCollectorThread (line 148) | class MetricsCollectorThread(QThread): method __init__ (line 150) | def __init__(self, interval: int = 200): method _collect_once (line 154) | def _collect_once(self): method run (line 167) | def run(self): method stop (line 173) | def stop(self): class BaseVisualization (line 177) | class BaseVisualization(QWidget): method __init__ (line 180) | def __init__(self, metrics_store: MetricsStore): method _update_widget (line 185) | def _update_widget(self, widget, value): method _format_label (line 187) | def _format_label(self, prefix, value): method update_metrics (line 189) | def update_metrics(self, m: SystemMetrics): method cleanup (line 200) | def cleanup(self): function color_for (line 203) | def color_for(name: str) -> str: class BarVisualization (line 206) | class BarVisualization(BaseVisualization): method __init__ (line 207) | def __init__(self, metrics_store: MetricsStore): method _update_widget (line 220) | def _update_widget(self, widget, value): method _format_label (line 222) | def _format_label(self, prefix, value): method initUI (line 224) | def initUI(self): method add_metric_to_grid (line 234) | def add_metric_to_grid(self, label_text, color, grid_layout, row): method create_progress_bar (line 242) | def create_progress_bar(self, color): function gradient_pixmap (line 251) | def gradient_pixmap(color: str, height: int) -> QPixmap: class Sparkline (line 264) | class Sparkline(QWidget): method __init__ (line 265) | def __init__(self, max_values=125, color="#0074D9"): method add_value (line 270) | def add_value(self, value): method paintEvent (line 273) | def paintEvent(self, event): class SparklineVisualization (line 309) | class SparklineVisualization(BaseVisualization): method __init__ (line 310) | def __init__(self, metrics_store: MetricsStore): method _update_widget (line 323) | def _update_widget(self, widget, value): method initUI (line 325) | def initUI(self): class Speedometer (line 354) | class Speedometer(QWidget): method __init__ (line 355) | def __init__(self, min_value=0, max_value=100, colors=None): method set_value (line 362) | def set_value(self, value): method get_color_at_angle (line 365) | def get_color_at_angle(self, angle): method paintEvent (line 381) | def paintEvent(self, event): class SpeedometerVisualization (line 408) | class SpeedometerVisualization(BaseVisualization): method __init__ (line 409) | def __init__(self, metrics_store: MetricsStore): method _update_widget (line 422) | def _update_widget(self, widget, value): method initUI (line 424) | def initUI(self): function arc_background (line 453) | def arc_background(w: int, h: int) -> QPixmap: class ArcGraph (line 465) | class ArcGraph(QWidget): method __init__ (line 466) | def __init__(self, color="#0074D9"): method set_value (line 471) | def set_value(self, value): method paintEvent (line 474) | def paintEvent(self, event): class ArcGraphVisualization (line 492) | class ArcGraphVisualization(BaseVisualization): method __init__ (line 493) | def __init__(self, metrics_store: MetricsStore): method _update_widget (line 506) | def _update_widget(self, widget, value): method initUI (line 508) | def initUI(self): class VizType (line 535) | class VizType(IntEnum): class MetricsWidget (line 548) | class MetricsWidget(QWidget): method __init__ (line 549) | def __init__(self, parent=None): method init_ui (line 558) | def init_ui(self): method contextMenuEvent (line 563) | def contextMenuEvent(self, event): method change_visualization (line 586) | def change_visualization(self, kind: VizType): method start_metrics_collector (line 597) | def start_metrics_collector(self): method stop_metrics_collector (line 601) | def stop_metrics_collector(self): method cleanup (line 605) | def cleanup(self): method closeEvent (line 617) | def closeEvent(self, event): FILE: gui/tabs.py function create_tabs (line 9) | def create_tabs(): FILE: gui/tabs_databases/create.py class VectorDBWorker (line 21) | class VectorDBWorker(QThread): method __init__ (line 35) | def __init__(self, database_name, parent=None): method run (line 41) | def run(self): method cancel (line 88) | def cancel(self): class CustomFileSystemModel (line 94) | class CustomFileSystemModel(QFileSystemModel): method __init__ (line 95) | def __init__(self, parent=None): class DatabasesTab (line 100) | class DatabasesTab(QWidget): method __init__ (line 104) | def __init__(self): method _validation_failed (line 166) | def _validation_failed(self, message: str): method refresh_model_combobox (line 170) | def refresh_model_combobox(self, index): method update_model_combobox (line 177) | def update_model_combobox(self, model_name, model_type): method populate_model_combobox (line 182) | def populate_model_combobox(self): method sync_combobox_with_config (line 195) | def sync_combobox_with_config(self): method on_model_selected (line 212) | def on_model_selected(self, index): method create_group_box (line 237) | def create_group_box(self, title, directory_name): method _refresh_docs_model (line 247) | def _refresh_docs_model(self): method _refresh_info_label (line 253) | def _refresh_info_label(self): method _compute_precision_str (line 286) | def _compute_precision_str(self, config, use_half): method setup_directory_view (line 319) | def setup_directory_view(self, directory_name): method on_double_click (line 341) | def on_double_click(self, index): method on_context_menu (line 347) | def on_context_menu(self, point): method on_delete_file (line 355) | def on_delete_file(self, tree_view): method on_create_db_clicked (line 363) | def on_create_db_clicked(self): method start_database_creation (line 407) | def start_database_creation(self, database_name, model_name, skip_ocr): method on_cancel_db_clicked (line 424) | def on_cancel_db_clicked(self): method on_worker_finished (line 431) | def on_worker_finished(self, success: bool, exit_code: int, message: s... method update_config_with_database_name (line 459) | def update_config_with_database_name(self): method reenable_create_db_button (line 477) | def reenable_create_db_button(self): method closeEvent (line 491) | def closeEvent(self, event): method toggle_group_box (line 497) | def toggle_group_box(self, group_box, checked): method adjust_stretch (line 501) | def adjust_stretch(self): FILE: gui/tabs_databases/manage.py class SQLiteTableModel (line 17) | class SQLiteTableModel(QAbstractTableModel): method __init__ (line 18) | def __init__(self, data=None): method data (line 23) | def data(self, index, role): method rowCount (line 30) | def rowCount(self, index): method columnCount (line 33) | def columnCount(self, index): method headerData (line 36) | def headerData(self, section, orientation, role): class RefreshingComboBox (line 42) | class RefreshingComboBox(QComboBox): method __init__ (line 43) | def __init__(self, parent=None): method showPopup (line 49) | def showPopup(self): class ManageDatabasesTab (line 69) | class ManageDatabasesTab(QWidget): method __init__ (line 70) | def __init__(self): method load_created_databases (line 93) | def load_created_databases(self): method display_no_databases_message (line 101) | def display_no_databases_message(self): method create_group_box_with_table_view (line 107) | def create_group_box_with_table_view(self, title): method update_table_view_and_info_label (line 126) | def update_table_view_and_info_label(self, index): method on_double_click (line 172) | def on_double_click(self, index): method create_buttons (line 183) | def create_buttons(self): method delete_selected_database (line 188) | def delete_selected_database(self): method refresh_pull_down_menu (line 246) | def refresh_pull_down_menu(self): method show_context_menu (line 259) | def show_context_menu(self, position): method delete_selected_file (line 267) | def delete_selected_file(self): FILE: gui/tabs_databases/query.py class SubmitStrategy (line 34) | class SubmitStrategy(ABC): method __init__ (line 35) | def __init__(self, tab): method submit (line 39) | def submit(self, question: str, db_name: str) -> None: ... class LocalModelStrategy (line 41) | class LocalModelStrategy(SubmitStrategy): method submit (line 42) | def submit(self, question, db_name): class LMStudioStrategy (line 51) | class LMStudioStrategy(SubmitStrategy): method submit (line 52) | def submit(self, question, db_name): class ChatGPTStrategy (line 61) | class ChatGPTStrategy(SubmitStrategy): method submit (line 62) | def submit(self, question, db_name): class MiniMaxStrategy (line 70) | class MiniMaxStrategy(SubmitStrategy): method submit (line 71) | def submit(self, question, db_name): class KoboldStrategy (line 80) | class KoboldStrategy(SubmitStrategy): method submit (line 81) | def submit(self, question, db_name): class ChunksOnlyStrategy (line 89) | class ChunksOnlyStrategy(SubmitStrategy): method submit (line 90) | def submit(self, question, db_name): class ThinkingIndicator (line 96) | class ThinkingIndicator(QProgressBar): method __init__ (line 97) | def __init__(self, parent=None): class ChunksOnlyThread (line 105) | class ChunksOnlyThread(QThread): method __init__ (line 108) | def __init__(self, query, database_name): method run (line 115) | def run(self): method stop (line 176) | def stop(self): function run_tts_in_process (line 193) | def run_tts_in_process(config_path, input_text_file): class RefreshingComboBox (line 199) | class RefreshingComboBox(QComboBox): method __init__ (line 200) | def __init__(self, parent=None): method showPopup (line 203) | def showPopup(self): class GuiSignals (line 216) | class GuiSignals(QObject): class CustomTextBrowser (line 223) | class CustomTextBrowser(QTextBrowser): method __init__ (line 224) | def __init__(self, parent=None): method doSetSource (line 228) | def doSetSource(self, name, type): class DatabaseQueryTab (line 237) | class DatabaseQueryTab(QWidget): method __init__ (line 238) | def __init__(self): method initWidgets (line 255) | def initWidgets(self): method _strategy_for_source (line 395) | def _strategy_for_source(self, source: str) -> SubmitStrategy: method setup_signals (line 409) | def setup_signals(self): method _render_html (line 418) | def _render_html(self): method toggle_thinking_visibility (line 435) | def toggle_thinking_visibility(self): method update_token_count_label (line 438) | def update_token_count_label(self, token_count_string): method on_model_source_changed (line 441) | def on_model_source_changed(self, text): method load_created_databases (line 452) | def load_created_databases(self): method on_submit_button_clicked (line 460) | def on_submit_button_clicked(self): method display_chunks (line 490) | def display_chunks(self, chunks): method on_database_query_finished (line 493) | def on_database_query_finished(self): method eject_model (line 496) | def eject_model(self): method on_model_loaded (line 508) | def on_model_loaded(self): method on_model_unloaded (line 512) | def on_model_unloaded(self): method display_citations_in_widget (line 516) | def display_citations_in_widget(self, citations): method on_copy_response_clicked (line 523) | def on_copy_response_clicked(self): method on_bark_button_clicked (line 532) | def on_bark_button_clicked(self): method run_tts_module (line 578) | def run_tts_module(self): method toggle_recording (line 582) | def toggle_recording(self): method update_response_lm_studio (line 591) | def update_response_lm_studio(self, response_chunk): method update_response_local_model (line 598) | def update_response_local_model(self, chunk: str): method show_error_message (line 613) | def show_error_message(self, error_message): method on_submission_finished (line 625) | def on_submission_finished(self): method update_transcription (line 638) | def update_transcription(self, transcription_text): method cleanup (line 641) | def cleanup(self): FILE: gui/tabs_models/models.py class VectorModelsTab (line 13) | class VectorModelsTab(QWidget): method __init__ (line 17) | def __init__(self, parent=None): method initiate_model_download (line 152) | def initiate_model_download(self): method _reset_download_button (line 178) | def _reset_download_button(self): method _on_download_failed (line 182) | def _on_download_failed(self, message): method update_model_downloaded_status (line 186) | def update_model_downloaded_status(self, model_name, model_type): method refresh_gui (line 209) | def refresh_gui(self): method open_link (line 214) | def open_link(self, url): FILE: gui/tabs_settings/database_create.py class ChunkSettingsTab (line 8) | class ChunkSettingsTab(QWidget): method __init__ (line 9) | def __init__(self): method update_config (line 108) | def update_config(self): FILE: gui/tabs_settings/database_query.py class DatabaseSettingsTab (line 18) | class DatabaseSettingsTab(QWidget): method __init__ (line 19) | def __init__(self): method update_config (line 137) | def update_config(self): method reset_search_term (line 261) | def reset_search_term(self): FILE: gui/tabs_settings/settings.py function update_all_configs (line 17) | def update_all_configs(configs): function adjust_stretch (line 34) | def adjust_stretch(groups, layout): class GuiSettingsTab (line 39) | class GuiSettingsTab(QWidget): method __init__ (line 40) | def __init__(self): method toggle_group (line 97) | def toggle_group(self, group, checked): method toggle_tts_group (line 102) | def toggle_tts_group(self, ttsSettings, checked): method toggle_vision_group (line 106) | def toggle_vision_group(self, visionSettings, checked): method update_all_settings (line 110) | def update_all_settings(self): FILE: gui/tabs_settings/tts.py class TTSSettingsTab (line 25) | class TTSSettingsTab(QWidget): method __init__ (line 109) | def __init__(self): method _build_ui (line 116) | def _build_ui(self): method _config_path (line 159) | def _config_path(self) -> Path: method _load_from_yaml (line 162) | def _load_from_yaml(self): method _save_to_yaml (line 211) | def _save_to_yaml(self): method _try_read_yaml (line 276) | def _try_read_yaml(self): method _update_visible_extras (line 286) | def _update_visible_extras(self): method _update_kyutai_voice_visibility (line 307) | def _update_kyutai_voice_visibility(self): method _find_key_by_value (line 315) | def _find_key_by_value(d: dict, value: str | None): method _disable_voice_cloning_item (line 322) | def _disable_voice_cloning_item(cmb: QComboBox): FILE: gui/tabs_settings/vision.py function _read_cfg (line 11) | def _read_cfg() -> dict: function _write_cfg (line 22) | def _write_cfg(cfg: dict) -> None: function is_cuda_available (line 27) | def is_cuda_available(): function get_cuda_capability (line 31) | def get_cuda_capability(): class VisionSettingsTab (line 37) | class VisionSettingsTab(QWidget): method __init__ (line 39) | def __init__(self): method populate_model_combobox (line 90) | def populate_model_combobox(self): method _apply_model_to_labels (line 94) | def _apply_model_to_labels(self, model_name: str): FILE: gui/tabs_tools/misc.py class WorkerThread (line 8) | class WorkerThread(QThread): method __init__ (line 11) | def __init__(self, function, *args, **kwargs): method run (line 17) | def run(self): class MiscTab (line 25) | class MiscTab(QWidget): method __init__ (line 26) | def __init__(self): method set_buttons_enabled (line 97) | def set_buttons_enabled(self, enabled, buttons): method set_button_text (line 101) | def set_button_text(self, button: QPushButton, text: str): method backup_all_databases (line 104) | def backup_all_databases(self): method on_backup_finished (line 123) | def on_backup_finished(self, success): method restore_backup (line 131) | def restore_backup(self): method on_restore_finished (line 150) | def on_restore_finished(self, success): method chart_gpus (line 158) | def chart_gpus(self): method reset_chart_button (line 180) | def reset_chart_button(self): method chart_chat_models (line 184) | def chart_chat_models(self): method reset_chart_chat_models_button (line 199) | def reset_chart_chat_models_button(self): method chart_vision_models (line 203) | def chart_vision_models(self): method reset_chart_vision_models_button (line 218) | def reset_chart_vision_models_button(self): method chart_vector_models (line 222) | def chart_vector_models(self): method reset_chart_vector_models_button (line 237) | def reset_chart_vector_models_button(self): FILE: gui/tabs_tools/ocr.py function get_pdf_page_count (line 11) | def get_pdf_page_count(pdf_path): function run_ocr_process (line 19) | def run_ocr_process(pdf_path, backend): class OcrWorkerThread (line 29) | class OcrWorkerThread(QThread): method __init__ (line 32) | def __init__(self, pdf_path, backend, parent=None): method run (line 37) | def run(self): class OCRToolSettingsTab (line 43) | class OCRToolSettingsTab(QWidget): method __init__ (line 48) | def __init__(self): method create_layout (line 55) | def create_layout(self): method setButtons (line 92) | def setButtons(self, enabled): method select_pdf_file (line 99) | def select_pdf_file(self): method show_error_message (line 115) | def show_error_message(self, message): method show_success_message (line 120) | def show_success_message(self): method start_ocr_process (line 149) | def start_ocr_process(self): method ocr_finished (line 170) | def ocr_finished(self, success, message, elapsed_time): method _show_completion_message (line 183) | def _show_completion_message(self, success, message): FILE: gui/tabs_tools/scrape.py function _load_rate_limited_set (line 31) | def _load_rate_limited_set() -> set[str]: function _save_rate_limited_set (line 41) | def _save_rate_limited_set(names: set[str]) -> None: function _mark_rate_limited_persistent (line 46) | def _mark_rate_limited_persistent(name: str) -> None: function _clear_rate_limited_persistent (line 52) | def _clear_rate_limited_persistent(name: str) -> None: class ScrapeRowWidget (line 58) | class ScrapeRowWidget(QWidget): method __init__ (line 61) | def __init__(self, doc_name: str, folder_path: str, on_cancel, on_open): method _set_label (line 85) | def _set_label(self, status_text: str, count: int, color: str): method update_count (line 92) | def update_count(self, count: int): method mark_completed (line 95) | def mark_completed(self, count: int): method mark_cancelled (line 99) | def mark_cancelled(self, count: int): method mark_rate_limited (line 103) | def mark_rate_limited(self, count: int): method _cancel_clicked (line 110) | def _cancel_clicked(self): method _open_clicked (line 115) | def _open_clicked(self): method _current_count (line 118) | def _current_count(self) -> int: class ScrapeDocumentationTab (line 127) | class ScrapeDocumentationTab(QWidget): method __init__ (line 128) | def __init__(self) -> None: method init_ui (line 138) | def init_ui(self) -> None: method _refresh_summary (line 167) | def _refresh_summary(self) -> None: method _restore_rate_limited_rows (line 174) | def _restore_rate_limited_rows(self) -> None: method populate_combo_box (line 206) | def populate_combo_box(self) -> None: method start_scraping (line 226) | def start_scraping(self) -> None: method update_status (line 339) | def update_status(self, doc_name: str, status: str) -> None: method _on_worker_finished (line 349) | def _on_worker_finished(self, doc_name: str, was_cancelled: bool, was_... method _on_thread_finished (line 377) | def _on_thread_finished(self, doc_name: str) -> None: method cancel_scrape (line 382) | def cancel_scrape(self, doc_name: str) -> None: method show_error (line 391) | def show_error(self, message: str) -> None: method open_folder (line 394) | def open_folder(self, folder_path: str) -> None: FILE: gui/tabs_tools/tools.py class RestoreBackupThread (line 11) | class RestoreBackupThread(QThread): method run (line 13) | def run(self): class BackupDatabaseThread (line 21) | class BackupDatabaseThread(QThread): method run (line 23) | def run(self): class GuiSettingsTab (line 31) | class GuiSettingsTab(QWidget): method __init__ (line 32) | def __init__(self): method adjust_stretch (line 55) | def adjust_stretch(self): FILE: gui/tabs_tools/transcribe.py class TranscriberToolSettingsTab (line 13) | class TranscriberToolSettingsTab(QWidget): method __init__ (line 16) | def __init__(self): method set_buttons_enabled (line 21) | def set_buttons_enabled(self, enabled): method create_layout (line 25) | def create_layout(self): method populate_model_combo (line 82) | def populate_model_combo(self): method update_slider_label (line 98) | def update_slider_label(self, value): method update_config_file (line 101) | def update_config_file(self): method select_audio_file (line 105) | def select_audio_file(self): method start_transcription (line 115) | def start_transcription(self): FILE: gui/tabs_tools/vision.py function _load_cfg (line 28) | def _load_cfg() -> dict: class ModelComparisonProgressDialog (line 39) | class ModelComparisonProgressDialog(QDialog): method __init__ (line 45) | def __init__(self, model_names, parent=None): method _set_row (line 77) | def _set_row(self, index, icon, suffix=""): method on_model_started (line 84) | def on_model_started(self, index, name): method on_model_completed (line 87) | def on_model_completed(self, index, name, elapsed): method on_model_failed (line 90) | def on_model_failed(self, index, name): method mark_finished (line 93) | def mark_finished(self): method was_cancelled (line 98) | def was_cancelled(self): method _on_action_clicked (line 101) | def _on_action_clicked(self): method closeEvent (line 106) | def closeEvent(self, event): class ModelSelectionDialog (line 112) | class ModelSelectionDialog(QDialog): method __init__ (line 113) | def __init__(self, models, parent=None): method get_selected_models (line 137) | def get_selected_models(self): class ImageProcessorThread (line 141) | class ImageProcessorThread(QThread): method run (line 145) | def run(self): class MultiModelProcessorThread (line 169) | class MultiModelProcessorThread(QThread): method __init__ (line 177) | def __init__(self, image_path, selected_models): method cancel (line 183) | def cancel(self): method run (line 186) | def run(self): class VisionToolSettingsTab (line 246) | class VisionToolSettingsTab(QWidget): method __init__ (line 247) | def __init__(self): method confirmationBeforeProcessing (line 267) | def confirmationBeforeProcessing(self): method startProcessing (line 285) | def startProcessing(self): method onProcessingFinished (line 292) | def onProcessingFinished(self, documents): method onProcessingError (line 298) | def onProcessingError(self, error_msg): method selectSingleImage (line 303) | def selectSingleImage(self): method cancelProcessing (line 344) | def cancelProcessing(self): method onMultiModelProcessingFinished (line 348) | def onMultiModelProcessingFinished(self, results): method onMultiModelProcessingError (line 358) | def onMultiModelProcessingError(self, error_msg): method extract_page_content (line 365) | def extract_page_content(self, documents): method save_page_contents (line 390) | def save_page_contents(self, contents): method save_comparison_results (line 408) | def save_comparison_results(self, image_path, results): method open_file (line 467) | def open_file(self, file_path): FILE: modules/kokoro.py class KokoroTTS (line 13) | class KokoroTTS: method __init__ (line 28) | def __init__(self, repo_path: str): method _load_model_and_voice (line 49) | def _load_model_and_voice(self, voice_name: str): method _drain_queue (line 75) | def _drain_queue(q): method stop (line 82) | def stop(self): method _process_sentences (line 88) | def _process_sentences(self, speed: float, force_accent: Optional[str]): method _play_audio (line 136) | def _play_audio(self): method speak (line 177) | def speak(self, FILE: modules/ocr.py class OCRProcessor (line 24) | class OCRProcessor(ABC): method __init__ (line 25) | def __init__(self, zoom: int = 2, progress_queue: Queue = None): method convert_page_to_image (line 35) | def convert_page_to_image(self, page) -> Image.Image: method process_page (line 42) | def process_page(self, page_num: int, pdf_path: str) -> Tuple[int, str]: method initialize (line 46) | def initialize(self): method clean_text (line 50) | def clean_text(self, text: str) -> str: method validate_pdf (line 53) | def validate_pdf(self, pdf_path: Path) -> bool: method process_document (line 63) | def process_document(self, pdf_path: Path, output_path: Path = None): method get_optimal_threads (line 92) | def get_optimal_threads() -> int: class TesseractOCR (line 95) | class TesseractOCR(OCRProcessor): method __init__ (line 96) | def __init__(self, zoom: int = 2, progress_queue: Queue = None): method initialize (line 102) | def initialize(self): method clean_text (line 112) | def clean_text(self, text: str) -> str: method cleanup (line 115) | def cleanup(self): method process_document (line 120) | def process_document(self, pdf_path: Path, output_path: Path = None): method process_page (line 152) | def process_page(self, page_num: int, pdf_path: str) -> Tuple[int, str]: method optimize_final_pdf (line 196) | def optimize_final_pdf(self, original_pdf_path: Path, ocr_pdf_path: Pa... method cleanup_temp_pdfs (line 218) | def cleanup_temp_pdfs(self): function _process_documents_worker (line 227) | def _process_documents_worker(pdf_paths: List[Path], backend: str, model... function process_documents (line 243) | def process_documents(pdf_paths: Union[Path, List[Path]], backend: str =... FILE: modules/process_images.py function get_best_device (line 47) | def get_best_device(): function check_for_images (line 50) | def check_for_images(image_dir: Path) -> bool: function run_loader_in_process (line 59) | def run_loader_in_process(loader_func): function choose_image_loader (line 68) | def choose_image_loader(model_config: dict | None = None): class BaseLoader (line 102) | class BaseLoader: method __init__ (line 103) | def __init__(self, config): method detect_dtype (line 111) | def detect_dtype(): method normalize_response (line 116) | def normalize_response(text): method initialize_model_and_tokenizer (line 119) | def initialize_model_and_tokenizer(self): method process_images (line 122) | def process_images(self): method process_single_image (line 151) | def process_single_image(self, raw_image): class loader_internvl (line 155) | class loader_internvl(BaseLoader): method initialize_model_and_tokenizer (line 156) | def initialize_model_and_tokenizer(self): method find_closest_aspect_ratio (line 214) | def find_closest_aspect_ratio(self, aspect_ratio, ratios, w, h, sz): method _build_transform (line 227) | def _build_transform(self, size): method dynamic_preprocess (line 237) | def dynamic_preprocess(self, img, min_num=1, max_num=12, image_size=44... method _prepare_image (line 263) | def _prepare_image(self, raw_image, input_size=448, max_num=24): method process_single_image (line 270) | def process_single_image(self, raw_image): class loader_granite (line 286) | class loader_granite(BaseLoader): method initialize_model_and_tokenizer (line 288) | def initialize_model_and_tokenizer(self): method process_single_image (line 411) | def process_single_image(self, raw_image): class loader_qwenvl (line 430) | class loader_qwenvl(BaseLoader): method initialize_model_and_tokenizer (line 431) | def initialize_model_and_tokenizer(self): method process_single_image (line 504) | def process_single_image(self, raw_image): class loader_glmv4_thinking (line 532) | class loader_glmv4_thinking(BaseLoader): method initialize_model_and_tokenizer (line 539) | def initialize_model_and_tokenizer(self): method _cap_pixels_for_glm4v (line 573) | def _cap_pixels_for_glm4v(self, pil_img, max_pixels_2d, divisor=28): method process_single_image (line 593) | def process_single_image(self, raw_image): class loader_liquidvl (line 643) | class loader_liquidvl(BaseLoader): method initialize_model_and_tokenizer (line 644) | def initialize_model_and_tokenizer(self): method process_single_image (line 685) | def process_single_image(self, raw_image): FILE: modules/scraper.py function _strip_trailing_version (line 52) | def _strip_trailing_version(path: str) -> str: function _strip_embedded_cruft (line 67) | def _strip_embedded_cruft(content): class BaseScraper (line 101) | class BaseScraper: method __init__ (line 102) | def __init__(self, url, folder): method process_html (line 111) | def process_html(self, soup): method extract_main_content (line 127) | def extract_main_content(self, soup): class SelectorScraper (line 156) | class SelectorScraper(BaseScraper): method __init__ (line 157) | def __init__(self, url, folder, selector_key): method extract_main_content (line 167) | def extract_main_content(self, soup): class PymupdfScraper (line 171) | class PymupdfScraper(BaseScraper): method extract_main_content (line 172) | def extract_main_content(self, soup): function _mintlify_unwrap (line 207) | def _mintlify_unwrap(md, name): function _mintlify_heading (line 219) | def _mintlify_heading(md, name): function _mintlify_quote (line 236) | def _mintlify_quote(md, name): function _mintlify_normalize_fences (line 249) | def _mintlify_normalize_fences(md_text): function render_mintlify_markdown (line 265) | def render_mintlify_markdown(md_text): class MintlifyScraper (line 282) | class MintlifyScraper(BaseScraper): method collect_seed_urls (line 283) | async def collect_seed_urls(self, session): method fetch_url_for (line 307) | def fetch_url_for(self, url): method transform_response (line 313) | def transform_response(self, text, url): method extract_main_content (line 320) | def extract_main_content(self, soup): class DivIdContentSecondScraper (line 324) | class DivIdContentSecondScraper(BaseScraper): method extract_main_content (line 325) | def extract_main_content(self, soup): class PropCacheScraper (line 332) | class PropCacheScraper(BaseScraper): method __init__ (line 333) | def __init__(self, url, folder): method extract_main_content (line 344) | def extract_main_content(self, soup): class FileDownloader (line 348) | class FileDownloader(BaseScraper): method extract_main_content (line 350) | def extract_main_content(self, soup): method save_file (line 353) | async def save_file(self, content: bytes, url: str, save_dir: str): class ScraperRegistry (line 363) | class ScraperRegistry: method get_scraper (line 374) | def get_scraper(cls, scraper_name): class ScraperWorker (line 383) | class ScraperWorker(QObject): method __init__ (line 389) | def __init__(self, url, folder, scraper_class=BaseScraper, name="", re... method run (line 406) | def run(self): method _finalize_clean_run (line 422) | def _finalize_clean_run(self): method cancel (line 439) | def cancel(self): method count_saved_files (line 444) | def count_saved_files(self): method crawl_domain (line 447) | async def crawl_domain( method _build_resume_queue (line 530) | def _build_resume_queue(self, log_file): method fetch (line 560) | async def fetch( method save_html (line 644) | async def save_html(self, content, url, save_dir, links=None): method sanitize_filename (line 684) | def sanitize_filename(self, url: str) -> str: method log_failed_url (line 725) | async def log_failed_url(self, url, log_file): method extract_links (line 732) | def extract_links( method is_valid_url (line 762) | def is_valid_url(self, url, base_domain, acceptable_domain_extension): method cleanup (line 778) | def cleanup(self): FILE: modules/transcribe.py class WhisperTranscriber (line 21) | class WhisperTranscriber: method __init__ (line 22) | def __init__(self, model_key, batch_size): method start_transcription_process (line 62) | def start_transcription_process(self, audio_file): method transcribe_and_create_document (line 71) | def transcribe_and_create_document(self): method convert_to_wav (line 105) | def convert_to_wav(self, audio_file): method is_correct_format (line 121) | def is_correct_format(self, audio_file): method convert_with_av (line 131) | def convert_with_av(self, audio_file, output_path): method transcribe (line 159) | def transcribe(self, model, files, lang_codes=['en'], tasks=['transcri... method create_document_object (line 168) | def create_document_object(self, transcription_text, audio_file_path): FILE: modules/tts.py class BaseAudio (line 24) | class BaseAudio: method __init__ (line 25) | def __init__(self): method load_config (line 34) | def load_config(self, config_file, section): method initialize_device (line 43) | def initialize_device(self): method play_audio_from_queue (line 49) | def play_audio_from_queue(self): method run (line 69) | def run(self, input_text_file): method stop (line 90) | def stop(self): class ChatterboxAudio (line 95) | class ChatterboxAudio(BaseAudio): method __init__ (line 101) | def __init__(self): method _select_device (line 136) | def _select_device(self, pref): method _apply_voice_modifications (line 155) | def _apply_voice_modifications(wav, sr, pitch_factor=1.0, speed_factor... method process_text_to_audio (line 182) | def process_text_to_audio(self, sentences): class BarkAudio (line 222) | class BarkAudio(BaseAudio): method __init__ (line 223) | def __init__(self): method initialize_model_and_processor (line 229) | def initialize_model_and_processor(self): method process_text_to_audio (line 246) | def process_text_to_audio(self, sentences): class WhisperSpeechAudio (line 271) | class WhisperSpeechAudio(BaseAudio): method __init__ (line 272) | def __init__(self): method get_whisper_speech_models (line 285) | def get_whisper_speech_models(self): method initialize_model (line 294) | def initialize_model(self): method process_text_to_audio (line 320) | def process_text_to_audio(self, sentences): method run (line 336) | def run(self, input_text_file): class ChatTTSAudio (line 341) | class ChatTTSAudio(BaseAudio): method __init__ (line 342) | def __init__(self): method process_text_to_audio (line 382) | def process_text_to_audio(self, sentences): class GoogleTTSAudio (line 420) | class GoogleTTSAudio: method __init__ (line 422) | def __init__(self, lang='en', slow=False, tld='com', silence_threshold... method run (line 429) | def run(self, input_text_file): method preprocess_text (line 468) | def preprocess_text(text): method tokenize_and_minimize (line 475) | def tokenize_and_minimize(text): method trim_silence (line 500) | def trim_silence(self, audio, samplerate): class KyutaiAudio (line 529) | class KyutaiAudio(BaseAudio): method __init__ (line 535) | def __init__(self): method create_checkpoint_info_from_cache (line 550) | def create_checkpoint_info_from_cache(self, downloaded_paths, raw_conf... method initialize_model (line 584) | def initialize_model(self): method setup_voice_conditioning (line 656) | def setup_voice_conditioning(self): method generate_speech_for_sentence (line 683) | def generate_speech_for_sentence(self, sentence): method process_text_to_audio (line 709) | def process_text_to_audio(self, sentences): class KyutaiPocketAudio (line 729) | class KyutaiPocketAudio(BaseAudio): method __init__ (line 734) | def __init__(self): method initialize_model (line 749) | def initialize_model(self): method generate_speech_for_sentence (line 780) | def generate_speech_for_sentence(self, sentence): method process_text_to_audio (line 794) | def process_text_to_audio(self, sentences): function run_tts (line 812) | def run_tts(config_path, input_text_file): FILE: modules/voice_recorder.py function get_logical_core_count (line 13) | def get_logical_core_count(): class TranscriptionThread (line 21) | class TranscriptionThread(QThread): method __init__ (line 24) | def __init__(self, audio_file, voice_recorder): method run (line 29) | def run(self): class RecordingThread (line 60) | class RecordingThread(QThread): method __init__ (line 61) | def __init__(self, voice_recorder): method run (line 65) | def run(self): class VoiceRecorder (line 68) | class VoiceRecorder: method __init__ (line 69) | def __init__(self, gui_instance, channels=1, rate=16000, chunk=1024): method record_audio (line 76) | def record_audio(self): method save_audio (line 92) | def save_audio(self): method start_recording (line 113) | def start_recording(self): method stop_recording (line 119) | def stop_recording(self): FILE: setup_windows.py function has_nvidia_gpu (line 33) | def has_nvidia_gpu(): function tkinter_message_box (line 48) | def tkinter_message_box(title, message, type="info", yes_no=False): function check_python_version_and_confirm (line 62) | def check_python_version_and_confirm(): function is_nvidia_gpu_installed (line 78) | def is_nvidia_gpu_installed(): function manual_installation_confirmation (line 85) | def manual_installation_confirmation(): function upgrade_pip_setuptools_wheel (line 111) | def upgrade_pip_setuptools_wheel(max_retries=5, delay=3): function pip_install (line 141) | def pip_install(library, with_deps=False, max_retries=5, delay=3): function install_libraries (line 161) | def install_libraries(libraries): function install_libraries_with_deps (line 175) | def install_libraries_with_deps(libraries): function create_directory_structure (line 249) | def create_directory_structure(): function update_config_yaml (line 265) | def update_config_yaml(): FILE: tools/check_packages.py function _get_latest_version (line 19) | def _get_latest_version(package_name): class OutdatedPackagesWorker (line 36) | class OutdatedPackagesWorker(QObject): method run (line 39) | def run(self): class VersionsWorker (line 53) | class VersionsWorker(QObject): method __init__ (line 56) | def __init__(self, package_name): method run (line 59) | def run(self): method get_all_versions (line 65) | def get_all_versions(self, package_name): class PipWorker (line 88) | class PipWorker(QObject): method __init__ (line 91) | def __init__(self, package_name, selected_version): method run (line 95) | def run(self): class ImportWorker (line 107) | class ImportWorker(QObject): method __init__ (line 110) | def __init__(self, packages): method run (line 113) | def run(self): class LatestVersionWorker (line 124) | class LatestVersionWorker(QObject): method __init__ (line 127) | def __init__(self, package_name): method run (line 130) | def run(self): class CompareDependenciesDialog (line 137) | class CompareDependenciesDialog(QDialog): method __init__ (line 138) | def __init__(self, parent, package_name, current_version, latest_versi... method update_display (line 223) | def update_display(self): method filter_extras (line 267) | def filter_extras(self, deps): class PackageChecker (line 273) | class PackageChecker(QMainWindow): method __init__ (line 274) | def __init__(self): method verify_installation (line 325) | def verify_installation(self, package_name, expected_version): method _is_package_available (line 332) | def _is_package_available(self, pkg_name: str): method check_package (line 354) | def check_package(self): method check_all_packages (line 371) | def check_all_packages(self): method check_outdated_packages (line 405) | def check_outdated_packages(self): method on_outdated_packages_checked (line 425) | def on_outdated_packages_checked(self, outdated_packages): method compare_dependencies (line 459) | def compare_dependencies(self, package_name): method on_worker_error (line 488) | def on_worker_error(self, error_message): method open_context_menu (line 493) | def open_context_menu(self, position: QPoint): method show_reverse_dependencies (line 512) | def show_reverse_dependencies(self, package_name): method fetch_versions (line 527) | def fetch_versions(self, package_name, position): method on_versions_fetched (line 544) | def on_versions_fetched(self, versions): method show_versions_menu (line 547) | def show_versions_menu(self, package_name, versions, position): method upgrade_downgrade_package (line 560) | def upgrade_downgrade_package(self, package_name, selected_version): method on_pip_finished (line 591) | def on_pip_finished(self, output): method on_pip_error (line 617) | def on_pip_error(self, error_message): method on_latest_version_fetched (line 622) | def on_latest_version_fetched(self, latest_version): method on_latest_version_error (line 625) | def on_latest_version_error(self, error_message): method update_outdated_after_upgrade (line 628) | def update_outdated_after_upgrade(self, package_name, latest_version): method find_row (line 647) | def find_row(self, package_name): method remove_package_from_table (line 654) | def remove_package_from_table(self, package_name): method on_versions_error (line 659) | def on_versions_error(self, error_message): method show_package_info (line 662) | def show_package_info(self, package_name): method export_requirements (line 711) | def export_requirements(self): method import_requirements (line 729) | def import_requirements(self): method on_import_finished (line 753) | def on_import_finished(self, output): method on_import_error (line 759) | def on_import_error(self, error_message): method show_message (line 764) | def show_message(self, title, message): method set_tooltip_for_package (line 772) | def set_tooltip_for_package(self, row, package_name): function main (line 781) | def main(): FILE: tools/chunk_userguide.py class MarkdownChunker (line 10) | class MarkdownChunker(QMainWindow): method __init__ (line 11) | def __init__(self): method setup_ui (line 24) | def setup_ui(self): method select_file (line 88) | def select_file(self): method create_output_directory (line 101) | def create_output_directory(self): method extract_chunks (line 122) | def extract_chunks(self, content): method save_chunks (line 149) | def save_chunks(self, chunks, output_dir): method analyze_chunks (line 159) | def analyze_chunks(self, chunks): method create_master_questions (line 179) | def create_master_questions(self, chunks): method update_display (line 197) | def update_display(self, num_chunks): method process_file (line 206) | def process_file(self): function main (line 239) | def main(): FILE: tools/replace_sourcecode.py class DependencyUpdater (line 9) | class DependencyUpdater: method __init__ (line 10) | def __init__(self): method get_site_packages_path (line 13) | def get_site_packages_path(self): method find_dependency_path (line 18) | def find_dependency_path(self, dependency_path_segments): method hash_file (line 30) | def hash_file(filepath): method copy_and_overwrite_if_necessary (line 38) | def copy_and_overwrite_if_necessary(source_path, target_path): method update_file_in_dependency (line 45) | def update_file_in_dependency(self, source_folder, file_name, dependen... method print_status (line 69) | def print_status(status, message): method print_ascii_table (line 80) | def print_ascii_table(title, rows): function replace_sentence_transformer_file (line 90) | def replace_sentence_transformer_file(): function replace_chattts_file (line 94) | def replace_chattts_file(): function add_cuda_files (line 98) | def add_cuda_files(): function setup_vector_db (line 142) | def setup_vector_db(): function check_embedding_model_dimensions (line 193) | def check_embedding_model_dimensions():