SYMBOL INDEX (19 symbols across 2 files) FILE: evaluation/evalute_rag.py function create_deep_eval_test_cases (line 40) | def create_deep_eval_test_cases( function evaluate_rag (line 95) | def evaluate_rag(retriever, num_questions: int = 5) -> Dict[str, Any]: function calculate_average_scores (line 160) | def calculate_average_scores(results: List[Dict]) -> Dict[str, float]: FILE: helper_functions.py function replace_t_with_space (line 18) | def replace_t_with_space(list_of_documents): function text_wrap (line 34) | def text_wrap(text, width=120): function encode_pdf (line 48) | def encode_pdf(path, chunk_size=1000, chunk_overlap=200): function encode_from_string (line 79) | def encode_from_string(content, chunk_size=1000, chunk_overlap=200): function retrieve_context_per_question (line 129) | def retrieve_context_per_question(question, chunks_query_retriever): class QuestionAnswerFromContext (line 152) | class QuestionAnswerFromContext(BaseModel): function create_question_answer_from_context_chain (line 162) | def create_question_answer_from_context_chain(llm): function answer_question_from_context (line 186) | def answer_question_from_context(question, context, question_answer_from... function show_context (line 208) | def show_context(context): function read_pdf_to_string (line 223) | def read_pdf_to_string(path): function bm25_retrieval (line 248) | def bm25_retrieval(bm25: BM25Okapi, cleaned_texts: List[str], query: str... function exponential_backoff (line 276) | async def exponential_backoff(attempt): function retry_with_exponential_backoff (line 294) | async def retry_with_exponential_backoff(coroutine, max_retries=5): class EmbeddingProvider (line 325) | class EmbeddingProvider(Enum): class ModelProvider (line 331) | class ModelProvider(Enum): function get_langchain_embedding_provider (line 338) | def get_langchain_embedding_provider(provider: EmbeddingProvider, model_...