File size: 2,729 Bytes
8e874f5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
"""
QAFD-RAG Utilities Package.

This package provides various utility functions for the QAFD-RAG system.

Modules:
--------
- hashing: MD5-based hashing functions
- tokenization: Tiktoken-based encoding/decoding
- parsing: JSON extraction and string manipulation
- data: CSV conversion and context combination
- logging: Centralized logging configuration
- embedding: Embedding function wrappers
- async_utils: Async function decorators
- file_io: JSON and XML file operations
- caching: Embedding-based caching utilities
"""

# Hashing utilities
from .hashing import (
    compute_args_hash,
    compute_mdhash_id,
)

# Tokenization utilities
from .tokenization import (
    encode_string_by_tiktoken,
    decode_tokens_by_tiktoken,
    truncate_list_by_token_size,
)

# Parsing utilities
from .parsing import (
    locate_json_string_body_from_string,
    convert_response_to_json,
    split_string_by_multi_markers,
    clean_str,
    is_float_regex,
    safe_unicode_decode,
    pack_user_ass_to_openai_messages,
)

# Data utilities
from .data import (
    list_of_list_to_csv,
    csv_string_to_list,
    process_combine_contexts,
)

# Logging utilities
from .logging import (
    logger,
    set_logger,
)

# Embedding utilities
from .embedding import (
    UnlimitedSemaphore,
    EmbeddingFunc,
    wrap_embedding_func_with_attrs,
)

# Async utilities
from .async_utils import (
    limit_async_func_call,
)

# File I/O utilities
from .file_io import (
    load_json,
    write_json,
    save_data_to_file,
    xml_to_json,
)

# Caching utilities
from .caching import (
    cosine_similarity,
    quantize_embedding,
    dequantize_embedding,
    get_best_cached_response,
    handle_cache,
    CacheData,
    save_to_cache,
)


__all__ = [
    # Hashing
    "compute_args_hash",
    "compute_mdhash_id",
    # Tokenization
    "encode_string_by_tiktoken",
    "decode_tokens_by_tiktoken",
    "truncate_list_by_token_size",
    # Parsing
    "locate_json_string_body_from_string",
    "convert_response_to_json",
    "split_string_by_multi_markers",
    "clean_str",
    "is_float_regex",
    "safe_unicode_decode",
    "pack_user_ass_to_openai_messages",
    # Data
    "list_of_list_to_csv",
    "csv_string_to_list",
    "process_combine_contexts",
    # Logging
    "logger",
    "set_logger",
    # Embedding
    "UnlimitedSemaphore",
    "EmbeddingFunc",
    "wrap_embedding_func_with_attrs",
    # Async
    "limit_async_func_call",
    # File I/O
    "load_json",
    "write_json",
    "save_data_to_file",
    "xml_to_json",
    # Caching
    "cosine_similarity",
    "quantize_embedding",
    "dequantize_embedding",
    "get_best_cached_response",
    "handle_cache",
    "CacheData",
    "save_to_cache",
]