File size: 1,353 Bytes
e68d535
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import os
import yaml
import logging
from typing import List, Any
from dotenv import load_dotenv
load_dotenv()

def set_env_variables(env_vars: List):
    env_vars_dict = {}
    for env_var in env_vars:
        if env_var not in os.environ or not os.environ[env_var]:
            raise ValueError(f"ERROR: Please set {env_var}.")
        env_vars_dict[env_var] = os.environ[env_var]
    return env_vars_dict


def initialize_logger():
    logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
    logger = logging.getLogger(__name__)
    return logger


def read_config(config_path: str) -> dict:
    with open(config_path, 'r') as config_file:
        config = yaml.safe_load(config_file)
    return config


def create_vector_database(db: Any, config: Any) -> Any:
    vector_db = db(config)
    return vector_db


def create_text_chunker(text_chunker: Any, text_chunker_config: Any) -> Any:
    return text_chunker(text_chunker_config)


def create_pdf_extractor(pdf_extractor: Any, pdf_extractor_config: Any) -> Any:
    return pdf_extractor(pdf_extractor_config)


def get_embedding_model(model: Any, config: Any) -> Any:
    embedding_model = model(config)
    return embedding_model

def get_generative_model(model: Any, config: Any) -> Any:
    generative_model = model(config)
    return generative_model