SYMBOL INDEX (416 symbols across 59 files) FILE: core/quivr_core/__init__.py function register_entries (line 9) | def register_entries(): FILE: core/quivr_core/base_config.py class QuivrBaseConfig (line 8) | class QuivrBaseConfig(BaseModel): method from_yaml (line 27) | def from_yaml(cls, file_path: str | Path) -> Self: FILE: core/quivr_core/brain/brain.py function process_files (line 47) | async def process_files( class Brain (line 88) | class Brain: method __init__ (line 111) | def __init__( method __repr__ (line 137) | def __repr__(self) -> str: method print_info (line 141) | def print_info(self): method load (line 148) | def load(cls, folder_path: str | Path) -> Self: method save (line 208) | async def save(self, folder_path: str | Path): method info (line 274) | def info(self) -> BrainInfo: method chat_history (line 292) | def chat_history(self) -> ChatHistory: method _init_chats (line 295) | def _init_chats(self) -> Dict[UUID, ChatHistory]: method afrom_files (line 301) | async def afrom_files( method from_files (line 375) | def from_files( method afrom_langchain_documents (line 402) | async def afrom_langchain_documents( method asearch (line 455) | async def asearch( method get_chat_history (line 488) | def get_chat_history(self, chat_id: UUID): method add_file (line 492) | def add_file(self) -> None: method ask_streaming (line 497) | async def ask_streaming( method aask (line 568) | async def aask( method ask (line 610) | def ask( FILE: core/quivr_core/brain/brain_defaults.py function build_default_vectordb (line 13) | async def build_default_vectordb( function default_embedder (line 33) | def default_embedder() -> Embeddings: function default_llm (line 46) | def default_llm() -> LLMEndpoint: FILE: core/quivr_core/brain/info.py class ChatHistoryInfo (line 8) | class ChatHistoryInfo: method add_to_tree (line 13) | def add_to_tree(self, chats_tree: Tree): class LLMInfo (line 24) | class LLMInfo: method add_to_tree (line 31) | def add_to_tree(self, llm_tree: Tree): class StorageInfo (line 43) | class StorageInfo: method add_to_tree (line 47) | def add_to_tree(self, files_tree: Tree): class BrainInfo (line 53) | class BrainInfo: method to_tree (line 60) | def to_tree(self): FILE: core/quivr_core/brain/serialization.py class EmbedderConfig (line 12) | class EmbedderConfig(BaseModel): class PGVectorConfig (line 18) | class PGVectorConfig(BaseModel): class FAISSConfig (line 27) | class FAISSConfig(BaseModel): class LocalStorageConfig (line 32) | class LocalStorageConfig(BaseModel): class TransparentStorageConfig (line 38) | class TransparentStorageConfig(BaseModel): class BrainSerialized (line 43) | class BrainSerialized(BaseModel): FILE: core/quivr_core/config.py class ParserType (line 7) | class ParserType(str, Enum): class StrategyEnum (line 15) | class StrategyEnum(str, Enum): class MegaparseBaseConfig (line 23) | class MegaparseBaseConfig(BaseModel): method from_yaml (line 25) | def from_yaml(cls, file_path: str): class MegaparseConfig (line 34) | class MegaparseConfig(MegaparseBaseConfig): FILE: core/quivr_core/files/file.py class QuivrFileSerialized (line 15) | class QuivrFileSerialized(BaseModel): class FileExtension (line 26) | class FileExtension(str, Enum): function get_file_extension (line 53) | def get_file_extension(file_path: Path) -> FileExtension | str: function load_qfile (line 69) | async def load_qfile(brain_id: UUID, path: str | Path): class QuivrFile (line 98) | class QuivrFile: method __init__ (line 110) | def __init__( method __repr__ (line 130) | def __repr__(self) -> str: method open (line 134) | async def open(self) -> AsyncGenerator[AsyncIterable[bytes], None]: method metadata (line 143) | def metadata(self) -> dict[str, Any]: method serialize (line 153) | def serialize(self) -> QuivrFileSerialized: method deserialize (line 166) | def deserialize(cls, serialized: QuivrFileSerialized) -> Self: FILE: core/quivr_core/language/models.py class Language (line 4) | class Language(str, Enum): FILE: core/quivr_core/language/utils.py function detect_language (line 5) | def detect_language(text: str, low_memory: bool = True) -> Language: FILE: core/quivr_core/llm/llm_endpoint.py class LLMTokenizer (line 23) | class LLMTokenizer: method __init__ (line 32) | def __init__(self, tokenizer_hub: str | None, fallback_tokenizer: str): method _calculate_tokenizer_size (line 66) | def _calculate_tokenizer_size(self) -> int: method load (line 89) | def load(cls, tokenizer_hub: str, fallback_tokenizer: str): method set_max_cache_size_mb (line 122) | def set_max_cache_size_mb(cls, size_mb: int): method set_max_cache_count (line 128) | def set_max_cache_count(cls, count: int): method _cleanup_cache (line 134) | def _cleanup_cache(cls): method preload_tokenizers (line 145) | def preload_tokenizers(cls, models: list[str] | None = None): class LLMEndpoint (line 189) | class LLMEndpoint: method __init__ (line 192) | def __init__(self, llm_config: LLMEndpointConfig, llm: BaseChatModel): method count_tokens (line 203) | def count_tokens(self, text: str) -> int: method get_config (line 208) | def get_config(self): method from_config (line 212) | def from_config(cls, config: LLMEndpointConfig = LLMEndpointConfig()): method supports_func_calling (line 315) | def supports_func_calling(self) -> bool: method info (line 318) | def info(self) -> LLMInfo: method clone_llm (line 329) | def clone_llm(self): FILE: core/quivr_core/llm_tools/entity.py class ToolsCategory (line 7) | class ToolsCategory(QuivrBaseConfig): method __init__ (line 14) | def __init__(self, **data): class ToolWrapper (line 19) | class ToolWrapper: method __init__ (line 20) | def __init__(self, tool: BaseTool, format_input: Callable, format_outp... class ToolRegistry (line 26) | class ToolRegistry: method __init__ (line 27) | def __init__(self): method register_tool (line 30) | def register_tool(self, tool_name: str, create_func: Callable): method create_tool (line 33) | def create_tool(self, tool_name: str, config: Dict[str, Any]) -> ToolW... FILE: core/quivr_core/llm_tools/llm_tools.py class LLMToolFactory (line 25) | class LLMToolFactory: method create_tool (line 27) | def create_tool(tool_name: str, config: Dict[str, Any]) -> Union[ToolW... FILE: core/quivr_core/llm_tools/other_tools.py class OtherToolsList (line 8) | class OtherToolsList(str, Enum): function create_other_tool (line 12) | def create_other_tool(tool_name: str, config: Dict[str, Any]) -> Union[B... FILE: core/quivr_core/llm_tools/web_search_tools.py class WebSearchToolsList (line 12) | class WebSearchToolsList(str, Enum): function create_tavily_tool (line 16) | def create_tavily_tool(config: Dict[str, Any]) -> ToolWrapper: function create_web_search_tool (line 63) | def create_web_search_tool(tool_name: str, config: Dict[str, Any]) -> To... FILE: core/quivr_core/processor/implementations/default.py class ProcessorInit (line 32) | class ProcessorInit(ProcessorBase): method __init__ (line 33) | def __init__(self, *args, **loader_kwargs) -> None: function _build_processor (line 40) | def _build_processor( FILE: core/quivr_core/processor/implementations/megaparse_processor.py class MegaparseProcessor (line 19) | class MegaparseProcessor(ProcessorBase[MPDocument]): method __init__ (line 52) | def __init__( method processor_metadata (line 71) | def processor_metadata(self): method process_file_inner (line 76) | async def process_file_inner( FILE: core/quivr_core/processor/implementations/simple_txt_processor.py function recursive_character_splitter (line 12) | def recursive_character_splitter( class SimpleTxtProcessor (line 29) | class SimpleTxtProcessor(ProcessorBase): method __init__ (line 37) | def __init__( method processor_metadata (line 44) | def processor_metadata(self) -> dict[str, Any]: method process_file_inner (line 50) | async def process_file_inner(self, file: QuivrFile) -> ProcessedDocume... FILE: core/quivr_core/processor/implementations/tika_processor.py class TikaProcessor (line 18) | class TikaProcessor(ProcessorBase): method __init__ (line 31) | def __init__( method _send_parse_tika (line 54) | async def _send_parse_tika(self, f: AsyncIterable[bytes]) -> str: method processor_metadata (line 68) | def processor_metadata(self): method process_file_inner (line 73) | async def process_file_inner(self, file: QuivrFile) -> ProcessedDocume... FILE: core/quivr_core/processor/processor_base.py class ProcessedDocument (line 19) | class ProcessedDocument(Generic[R]): class ProcessorBase (line 28) | class ProcessorBase(ABC, Generic[R]): method check_supported (line 31) | def check_supported(self, file: QuivrFile) -> None: method processor_metadata (line 37) | def processor_metadata(self) -> dict[str, Any]: method process_file (line 40) | async def process_file(self, file: QuivrFile) -> ProcessedDocument[R]: method process_file_inner (line 70) | async def process_file_inner(self, file: QuivrFile) -> ProcessedDocume... FILE: core/quivr_core/processor/registry.py class ProcEntry (line 23) | class ProcEntry: function _append_proc_mapping (line 50) | def _append_proc_mapping( function defaults_to_proc_entries (line 89) | def defaults_to_proc_entries( function get_processor_class (line 153) | def get_processor_class(file_extension: FileExtension | str) -> Type[Pro... function register_processor (line 186) | def register_processor( function _import_class (line 226) | def _import_class(full_mod_path: str): function available_processors (line 246) | def available_processors(): FILE: core/quivr_core/processor/splitter.py class SplitterConfig (line 4) | class SplitterConfig(BaseModel): FILE: core/quivr_core/rag/entities/chat.py class ChatHistory (line 10) | class ChatHistory: method __init__ (line 20) | def __init__(self, chat_id: UUID, brain_id: UUID | None) -> None: method get_chat_history (line 32) | def get_chat_history(self, newest_first: bool = False) -> List[ChatMes... method __len__ (line 47) | def __len__(self): method append (line 50) | def append( method iter_pairs (line 70) | def iter_pairs(self) -> Generator[Tuple[HumanMessage, AIMessage], None... method to_list (line 91) | def to_list(self) -> List[HumanMessage | AIMessage]: FILE: core/quivr_core/rag/entities/config.py function normalize_to_env_variable_name (line 24) | def normalize_to_env_variable_name(name: str) -> str: class SpecialEdges (line 37) | class SpecialEdges(str, Enum): class BrainConfig (line 42) | class BrainConfig(QuivrBaseConfig): method id (line 47) | def id(self) -> UUID | None: class DefaultWebSearchTool (line 51) | class DefaultWebSearchTool(str, Enum): class DefaultRerankers (line 55) | class DefaultRerankers(str, Enum): method default_model (line 61) | def default_model(self) -> str: class DefaultModelSuppliers (line 70) | class DefaultModelSuppliers(str, Enum): class LLMConfig (line 80) | class LLMConfig(QuivrBaseConfig): class LLMModelConfig (line 86) | class LLMModelConfig: method get_supplier_by_model_name (line 281) | def get_supplier_by_model_name(cls, model: str) -> DefaultModelSupplie... method get_llm_model_config (line 292) | def get_llm_model_config( class LLMEndpointConfig (line 308) | class LLMEndpointConfig(QuivrBaseConfig): method __hash__ (line 323) | def __hash__(self): method fallback_tokenizer (line 341) | def fallback_tokenizer(self) -> str: method __init__ (line 344) | def __init__(self, **data): method set_api_key (line 349) | def set_api_key(self, force_reset: bool = False): method set_llm_model_config (line 368) | def set_llm_model_config(self): method set_llm_model (line 411) | def set_llm_model(self, model: str): method set_from_sqlmodel (line 423) | def set_from_sqlmodel(self, sqlmodel: BaseModel, mapping: Dict[str, st... class RerankerConfig (line 441) | class RerankerConfig(QuivrBaseConfig): method __init__ (line 449) | def __init__(self, **data): method validate_model (line 453) | def validate_model(self): class ConditionalEdgeConfig (line 470) | class ConditionalEdgeConfig(QuivrBaseConfig): method __init__ (line 474) | def __init__(self, **data): method resolve_special_edges (line 478) | def resolve_special_edges(self): class NodeConfig (line 497) | class NodeConfig(QuivrBaseConfig): method __init__ (line 505) | def __init__(self, **data): method resolve_special_edges_in_name_and_edges (line 510) | def resolve_special_edges_in_name_and_edges(self): method _instantiate_tools (line 524) | def _instantiate_tools(self): class DefaultWorkflow (line 533) | class DefaultWorkflow(str, Enum): method nodes (line 537) | def nodes(self) -> List[NodeConfig]: class WorkflowConfig (line 551) | class WorkflowConfig(QuivrBaseConfig): method __init__ (line 558) | def __init__(self, **data): method check_first_node_is_start (line 563) | def check_first_node_is_start(self): method get_node_tools (line 567) | def get_node_tools(self, node_name: str) -> List[Any]: method validate_available_tools (line 574) | def validate_available_tools(self): class RetrievalConfig (line 596) | class RetrievalConfig(QuivrBaseConfig): method __init__ (line 605) | def __init__(self, **data): class ParserConfig (line 610) | class ParserConfig(QuivrBaseConfig): class IngestionConfig (line 615) | class IngestionConfig(QuivrBaseConfig): class AssistantConfig (line 619) | class AssistantConfig(QuivrBaseConfig): FILE: core/quivr_core/rag/entities/models.py class cited_answer (line 12) | class cited_answer(BaseModel): class ChatMessage (line 30) | class ChatMessage(BaseModel): class KnowledgeStatus (line 39) | class KnowledgeStatus(str, Enum): class Source (line 47) | class Source(BaseModel): class RawRAGChunkResponse (line 55) | class RawRAGChunkResponse(TypedDict): class RawRAGResponse (line 60) | class RawRAGResponse(TypedDict): class LangchainMetadata (line 65) | class LangchainMetadata(BaseModel): class ChatLLMMetadata (line 72) | class ChatLLMMetadata(BaseModel): class RAGResponseMetadata (line 81) | class RAGResponseMetadata(BaseModel): class ParsedRAGResponse (line 90) | class ParsedRAGResponse(BaseModel): class ParsedRAGChunkResponse (line 95) | class ParsedRAGChunkResponse(BaseModel): class QuivrKnowledge (line 101) | class QuivrKnowledge(BaseModel): class SearchResult (line 118) | class SearchResult(BaseModel): FILE: core/quivr_core/rag/prompts.py class TemplatePromptName (line 15) | class TemplatePromptName(str, Enum): function _define_custom_prompts (line 28) | def _define_custom_prompts() -> dict[TemplatePromptName, BasePromptTempl... FILE: core/quivr_core/rag/quivr_rag.py class IdempotentCompressor (line 40) | class IdempotentCompressor(BaseDocumentCompressor): method compress_documents (line 41) | def compress_documents( class QuivrQARAG (line 50) | class QuivrQARAG: method __init__ (line 55) | def __init__( method retriever (line 69) | def retriever(self): method filter_history (line 75) | def filter_history( method build_chain (line 105) | def build_chain(self, files: str): method answer (line 161) | def answer( method answer_astream (line 188) | async def answer_astream( FILE: core/quivr_core/rag/quivr_rag_langgraph.py class SplittedInput (line 63) | class SplittedInput(BaseModel): class TasksCompletion (line 82) | class TasksCompletion(BaseModel): class FinalAnswer (line 101) | class FinalAnswer(BaseModel): class UpdatedPromptAndTools (line 114) | class UpdatedPromptAndTools(BaseModel): class UserTaskEntity (line 133) | class UserTaskEntity(BaseModel): method has_tool (line 144) | def has_tool(self) -> bool: method is_completable (line 147) | def is_completable(self) -> bool: class UserTasks (line 151) | class UserTasks: method __init__ (line 152) | def __init__(self, task_definitions: List[str] | None = None): method __iter__ (line 161) | def __iter__(self): method set_docs (line 164) | def set_docs(self, id: UUID, docs: List[Document]): method set_definition (line 171) | def set_definition(self, id: UUID, definition: str): method set_completion (line 178) | def set_completion(self, id: UUID, completable: bool): method set_tool (line 185) | def set_tool(self, id: UUID, tool: str): method __call__ (line 192) | def __call__(self, id: UUID) -> UserTaskEntity: method has_tasks (line 195) | def has_tasks(self) -> bool: method has_non_completable_tasks (line 198) | def has_non_completable_tasks(self) -> bool: method non_completable_tasks (line 202) | def non_completable_tasks(self) -> List[UserTaskEntity]: method completable_tasks (line 206) | def completable_tasks(self) -> List[UserTaskEntity]: method ids (line 210) | def ids(self) -> List[UUID]: method definitions (line 214) | def definitions(self) -> List[str]: method docs (line 218) | def docs(self) -> List[Document]: class AgentState (line 223) | class AgentState(TypedDict): class IdempotentCompressor (line 240) | class IdempotentCompressor(BaseDocumentCompressor): method compress_documents (line 241) | def compress_documents( class QuivrQARAGLangGraph (line 256) | class QuivrQARAGLangGraph: method __init__ (line 257) | def __init__( method get_reranker (line 279) | def get_reranker(self, **kwargs): method get_retriever (line 302) | def get_retriever(self, **kwargs): method routing (line 316) | def routing(self, state: AgentState) -> List[Send]: method routing_split (line 369) | def routing_split(self, state: AgentState): method update_active_tools (line 393) | def update_active_tools(self, updated_prompt_and_tools: UpdatedPromptA... method edit_system_prompt (line 414) | def edit_system_prompt(self, state: AgentState) -> AgentState: method filter_history (line 441) | def filter_history(self, state: AgentState) -> AgentState: method rewrite (line 479) | async def rewrite(self, state: AgentState) -> AgentState: method filter_chunks_by_relevance (line 521) | def filter_chunks_by_relevance(self, chunks: List[Document], **kwargs): method tool_routing (line 544) | async def tool_routing(self, state: AgentState): method run_tool (line 588) | async def run_tool(self, state: AgentState) -> AgentState: method retrieve (line 620) | async def retrieve(self, state: AgentState) -> AgentState: method dynamic_retrieve (line 678) | async def dynamic_retrieve(self, state: AgentState) -> AgentState: method _sort_docs_by_relevance (line 761) | def _sort_docs_by_relevance(self, docs: List[Document]) -> List[Docume... method retrieve_full_documents_context (line 770) | async def retrieve_full_documents_context(self, state: AgentState) -> ... method get_rag_context_length (line 837) | def get_rag_context_length(self, state: AgentState, docs: List[Documen... method reduce_rag_context (line 844) | def reduce_rag_context( method bind_tools_to_llm (line 916) | def bind_tools_to_llm(self, node_name: str): method generate_zendesk_rag (line 923) | def generate_zendesk_rag(self, state: AgentState) -> AgentState: method generate_rag (line 956) | def generate_rag(self, state: AgentState) -> AgentState: method generate_chat_llm (line 968) | def generate_chat_llm(self, state: AgentState) -> AgentState: method build_chain (line 1023) | def build_chain(self): method create_graph (line 1035) | def create_graph(self): method _build_workflow (line 1043) | def _build_workflow(self, workflow: StateGraph): method _add_node_edges (line 1051) | def _add_node_edges(self, workflow: StateGraph, node: NodeConfig): method answer_astream (line 1067) | async def answer_astream( method _is_final_node_with_docs (line 1149) | def _is_final_node_with_docs(self, event: StreamEvent) -> bool: method _is_final_node_and_chat_model_stream (line 1157) | def _is_final_node_and_chat_model_stream(self, event: StreamEvent) -> ... method _extract_node_name (line 1164) | def _extract_node_name(self, event: StreamEvent) -> str: method ainvoke_structured_output (line 1175) | async def ainvoke_structured_output( method invoke_structured_output (line 1187) | def invoke_structured_output( method _build_rag_prompt_inputs (line 1199) | def _build_rag_prompt_inputs( FILE: core/quivr_core/rag/utils.py function model_supports_function_calling (line 26) | def model_supports_function_calling(model_name: str): function format_history_to_openai_mesages (line 32) | def format_history_to_openai_mesages( function cited_answer_filter (line 45) | def cited_answer_filter(tool): function get_chunk_metadata (line 49) | def get_chunk_metadata( function get_prev_message_str (line 72) | def get_prev_message_str(msg: AIMessageChunk) -> str: function parse_chunk_response (line 83) | def parse_chunk_response( function get_answers_from_tool_calls (line 117) | def get_answers_from_tool_calls(tool_calls): function parse_response (line 130) | def parse_response(raw_response: RawRAGResponse, model_name: str) -> Par... function combine_documents (line 164) | def combine_documents( function format_file_list (line 176) | def format_file_list( function collect_tools (line 187) | def collect_tools(workflow_config: WorkflowConfig): function format_dict (line 201) | def format_dict(kv: Dict[str, str]) -> str: class LangfuseService (line 205) | class LangfuseService: method __init__ (line 206) | def __init__(self): method get_handler (line 209) | def get_handler(self): FILE: core/quivr_core/storage/file.py class FileExtension (line 14) | class FileExtension(str, Enum): function get_file_extension (line 20) | def get_file_extension(file_path: Path) -> FileExtension | str: function load_qfile (line 36) | async def load_qfile(brain_id: UUID, path: str | Path): class QuivrFile (line 65) | class QuivrFile: method __init__ (line 76) | def __init__( method open (line 95) | async def open(self) -> AsyncGenerator[AsyncIterable[bytes], None]: method metadata (line 104) | def metadata(self) -> dict[str, Any]: FILE: core/quivr_core/storage/local_storage.py class LocalStorage (line 12) | class LocalStorage(StorageBase): method __init__ (line 36) | def __init__(self, dir_path: Path | None = None, copy_flag: bool = True): method _load_files (line 49) | def _load_files(self) -> None: method nb_files (line 53) | def nb_files(self) -> int: method info (line 56) | def info(self): method upload_file (line 59) | async def upload_file(self, file: QuivrFile, exists_ok: bool = False) ... method get_files (line 90) | async def get_files(self) -> list[QuivrFile]: method remove_file (line 99) | async def remove_file(self, file_id: UUID) -> None: method load (line 113) | def load(cls, config: LocalStorageConfig) -> Self: class TransparentStorage (line 132) | class TransparentStorage(StorageBase): method __init__ (line 137) | def __init__(self): method upload_file (line 140) | async def upload_file(self, file: QuivrFile, exists_ok: bool = False) ... method nb_files (line 143) | def nb_files(self) -> int: method remove_file (line 146) | async def remove_file(self, file_id: UUID) -> None: method get_files (line 149) | async def get_files(self) -> list[QuivrFile]: method load (line 153) | def load(cls, config: TransparentStorageConfig) -> Self: FILE: core/quivr_core/storage/storage_base.py class StorageBase (line 8) | class StorageBase(ABC): method __init_subclass__ (line 18) | def __init_subclass__(cls, **kwargs): method __repr__ (line 26) | def __repr__(self) -> str: method nb_files (line 30) | def nb_files(self) -> int: method get_files (line 43) | async def get_files(self) -> list[QuivrFile]: method upload_file (line 56) | async def upload_file(self, file: QuivrFile, exists_ok: bool = False) ... method remove_file (line 70) | async def remove_file(self, file_id: UUID) -> None: method info (line 82) | def info(self) -> StorageInfo: FILE: core/tests/conftest.py function temp_data_file (line 18) | def temp_data_file(tmp_path): function quivr_txt (line 26) | def quivr_txt(temp_data_file): function quivr_pdf (line 38) | def quivr_pdf(): function full_response (line 50) | def full_response(): function chunks_stream_answer (line 55) | def chunks_stream_answer(): function openai_api_key (line 69) | def openai_api_key(): function answers (line 74) | def answers(): function fake_llm (line 79) | def fake_llm(answers: list[str]): function embedder (line 85) | def embedder(): function mem_vector_store (line 90) | def mem_vector_store(embedder): FILE: core/tests/fixture_chunks.py function main (line 14) | async def main(): FILE: core/tests/processor/community/test_markdown_processor.py function test_markdown_processor (line 13) | async def test_markdown_processor(): function test_markdown_processor_fail (line 30) | async def test_markdown_processor_fail(quivr_txt): FILE: core/tests/processor/docx/test_docx.py function test_docx_filedocx (line 13) | async def test_docx_filedocx(): function test_docx_processor_fail (line 30) | async def test_docx_processor_fail(quivr_txt): FILE: core/tests/processor/epub/test_epub_processor.py function test_epub_page_blanche (line 13) | async def test_epub_page_blanche(): function test_epub_processor (line 30) | async def test_epub_processor(): function test_epub_processor_fail (line 48) | async def test_epub_processor_fail(quivr_txt): FILE: core/tests/processor/odt/test_odt.py function test_odt_processor (line 13) | async def test_odt_processor(): function test_odt_processor_fail (line 30) | async def test_odt_processor_fail(): FILE: core/tests/processor/pdf/test_unstructured_pdf_processor.py function test_unstructured_pdf_processor (line 14) | async def test_unstructured_pdf_processor(): function test_unstructured_pdf_processor_fail (line 34) | async def test_unstructured_pdf_processor_fail(ext): FILE: core/tests/processor/test_default_implementations.py function test___build_processor (line 7) | def test___build_processor(): FILE: core/tests/processor/test_registry.py function test_get_default_processors_cls (line 26) | def test_get_default_processors_cls(): function test_get_default_processors_cls_core (line 38) | def test_get_default_processors_cls_core(): function test_append_proc_mapping_empty (line 46) | def test_append_proc_mapping_empty(): function test_append_proc_mapping_priority (line 63) | def test_append_proc_mapping_priority(): function test_append_proc_mapping (line 88) | def test_append_proc_mapping(): function test_known_processors (line 121) | def test_known_processors(): function test__import_class (line 127) | def test__import_class(): function test_get_processor_cls_import_error (line 142) | def test_get_processor_cls_import_error(caplog): function test_get_processor_cls_error (line 150) | def test_get_processor_cls_error(): function test_register_new_proc_noappend (line 156) | def test_register_new_proc_noappend(): function test_register_new_proc_append (line 162) | def test_register_new_proc_append(caplog): function test_register_new_proc (line 175) | def test_register_new_proc(): function test_register_non_processor (line 191) | def test_register_non_processor(): function test_register_override_proc (line 199) | def test_register_override_proc(): function test_register_override_error (line 215) | def test_register_override_error(): function test_available_processors (line 233) | def test_available_processors(): FILE: core/tests/processor/test_simple_txt_processor.py function test_recursive_character_splitter (line 11) | def test_recursive_character_splitter(): function test_simple_processor (line 21) | async def test_simple_processor(quivr_pdf, quivr_txt): FILE: core/tests/processor/test_tika_processor.py function test_process_file (line 9) | async def test_process_file(quivr_pdf): function test_send_parse_tika_exception (line 18) | async def test_send_parse_tika_exception(quivr_pdf): FILE: core/tests/processor/test_txt_processor.py function txt_qfile (line 10) | def txt_qfile(temp_data_file): function test_process_txt (line 23) | async def test_process_txt(txt_qfile): FILE: core/tests/test_brain.py function test_brain_empty_files_no_vectordb (line 14) | def test_brain_empty_files_no_vectordb(fake_llm, embedder): function test_brain_empty_files (line 25) | def test_brain_empty_files(fake_llm, embedder, mem_vector_store): function test_brain_from_files_success (line 37) | async def test_brain_from_files_success( function test_brain_from_langchain_docs (line 60) | async def test_brain_from_langchain_docs(embedder, fake_llm, mem_vector_... function test_brain_search (line 76) | async def test_brain_search( function test_brain_get_history (line 96) | async def test_brain_get_history( function test_brain_ask_streaming (line 115) | async def test_brain_ask_streaming( function test_brain_info_empty (line 129) | def test_brain_info_empty(fake_llm: LLMEndpoint, embedder, mem_vector_st... FILE: core/tests/test_chat_history.py function ai_message (line 10) | def ai_message(): function human_message (line 15) | def human_message(): function test_chat_history_constructor (line 19) | def test_chat_history_constructor(): function test_chat_history_append (line 28) | def test_chat_history_append(ai_message: AIMessage, human_message: Human... function test_chat_history_get_history (line 37) | def test_chat_history_get_history(ai_message: AIMessage, human_message: ... function test_chat_history_iter_pairs_invalid (line 56) | def test_chat_history_iter_pairs_invalid( function test_chat_history_iter_pais (line 66) | def test_chat_history_iter_pais(ai_message: AIMessage, human_message: Hu... FILE: core/tests/test_config.py function test_default_llm_config (line 4) | def test_default_llm_config(): function test_default_retrievalconfig (line 21) | def test_default_retrievalconfig(): FILE: core/tests/test_llm_endpoint.py function test_llm_endpoint_from_config_default (line 11) | def test_llm_endpoint_from_config_default(): function test_llm_endpoint_from_config (line 29) | def test_llm_endpoint_from_config(): function test_llm_endpoint_constructor (line 42) | def test_llm_endpoint_constructor(): FILE: core/tests/test_quivr_file.py function test_create_file (line 7) | def test_create_file(): function test_create_file_add_metadata (line 25) | def test_create_file_add_metadata(): FILE: core/tests/test_quivr_rag.py function mock_chain_qa_stream (line 12) | def mock_chain_qa_stream(monkeypatch, chunks_stream_answer): function test_quivrqaraglanggraph (line 56) | async def test_quivrqaraglanggraph( FILE: core/tests/test_utils.py function test_model_supports_function_calling (line 13) | def test_model_supports_function_calling(): function test_get_prev_message_incorrect_message (line 18) | def test_get_prev_message_incorrect_message(): function test_get_prev_message_str (line 27) | def test_get_prev_message_str(): function test_parse_chunk_response_nofunc_calling (line 44) | def test_parse_chunk_response_nofunc_calling(): function _check_rolling_msg (line 53) | def _check_rolling_msg(rol_msg: AIMessageChunk) -> bool: function test_parse_chunk_response_func_calling (line 62) | def test_parse_chunk_response_func_calling(chunks_stream_answer): FILE: docs/src/docs/__init__.py function hello (line 1) | def hello() -> str: FILE: examples/chatbot/main.py function on_chat_start (line 9) | async def on_chat_start(): function main (line 49) | async def main(message: cl.Message): FILE: examples/chatbot_voice/main.py function on_chat_start (line 13) | async def on_chat_start(): function main (line 53) | async def main(message: cl.Message): function speech_to_text (line 115) | async def speech_to_text(audio_file): function text_to_speech (line 123) | async def text_to_speech(text): function on_audio_chunk (line 132) | async def on_audio_chunk(chunk: cl.AudioChunk): function on_audio_end (line 146) | async def on_audio_end(elements: list[Element]): FILE: examples/pdf_document_from_yaml.py function main (line 27) | async def main(): FILE: examples/quivr-whisper/app.py function index (line 33) | def index(): function run_in_event_loop (line 37) | def run_in_event_loop(func, *args, **kwargs): function allowed_file (line 48) | def allowed_file(filename): function upload_file (line 53) | async def upload_file(): function ask (line 87) | async def ask(): function transcribe_audio_file (line 117) | def transcribe_audio_file(audio_file): function synthesize_speech (line 134) | def synthesize_speech(text): FILE: examples/quivr-whisper/static/app.js constant SILENCE_THRESHOLD (line 28) | const SILENCE_THRESHOLD = 128; constant SILENCE_DURATION (line 29) | const SILENCE_DURATION = 1500; constant FFT_SIZE (line 30) | const FFT_SIZE = 2048; class AudioAnalyzer (line 42) | class AudioAnalyzer { method constructor (line 43) | constructor() { method reset (line 47) | reset() { method setup (line 55) | setup(source, audioContext) { method setupForPlayback (line 65) | setupForPlayback(audioElement, audioContext, connectToDestination = tr... method cleanup (line 84) | cleanup() { method _createAnalyser (line 93) | _createAnalyser(audioContext) { method _initializeBuffer (line 99) | _initializeBuffer() { method _safeDisconnect (line 104) | _safeDisconnect(node) { class Visualizer (line 116) | class Visualizer { method constructor (line 117) | constructor(canvas, analyzer) { method draw (line 123) | draw(currentAnalyser, onSilence) { class RecordingHandler (line 182) | class RecordingHandler { method constructor (line 183) | constructor() { method initialize (line 190) | async initialize() { method setupRecordingEvents (line 203) | setupRecordingEvents() { method startRecording (line 213) | startRecording() { method stopRecording (line 239) | stopRecording() { method handleRecordingStop (line 250) | async handleRecordingStop() { method processRecording (line 276) | async processRecording(formData) { method handleResponse (line 286) | async handleResponse(data) { function initializeApp (line 340) | async function initializeApp() { FILE: examples/save_load_brain.py function main (line 7) | async def main(): FILE: examples/simple_question/simple_question_streaming.py function main (line 10) | async def main():