File size: 992 Bytes
7a38b33
9d8cfe6
28f26e5
9d8cfe6
7a38b33
9d8cfe6
 
7a38b33
 
9d8cfe6
 
7a38b33
 
9d8cfe6
 
7a38b33
9d8cfe6
7a38b33
 
9d8cfe6
 
 
7a38b33
 
71e2102
9d8cfe6
7a38b33
9d8cfe6
7a38b33
 
9d8cfe6
 
71e2102
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
import base64

from dotenv import load_dotenv

from . import anthropic_api as anthropic_extractor
from . import openai_api as openai_info_extractor


def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")


def extract_info(image_paths, provider, schema, known_data=None):
    if provider == "anthropic":
        extractor = anthropic_extractor
    elif provider == "openai":
        extractor = openai_info_extractor
    else:
        raise ValueError("Invalid provider")

    return extractor.extract_info(image_paths, schema, known_data=known_data)


def follow_structure(json_info, provider, schema, known_data=None):
    if provider == "anthropic":
        extractor = anthropic_extractor
    elif provider == "openai":
        extractor = openai_info_extractor
    else:
        raise ValueError("Invalid provider")

    return extractor.follow_structure(json_info, schema, known_data=known_data)