• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

georgia-tech-db / eva / #758

04 Sep 2023 08:37PM UTC coverage: 0.0% (-78.3%) from 78.333%
#758

push

circle-ci

hershd23
Increased underline length in at line 75 in text_summarization.rst
	modified:   docs/source/benchmarks/text_summarization.rst

0 of 11303 relevant lines covered (0.0%)

0.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/evadb/udfs/udf_bootstrap_queries.py
1
# coding=utf-8
2
# Copyright 2018-2023 EvaDB
3
#
4
# Licensed under the Apache License, Version 2.0 (the "License");
5
# you may not use this file except in compliance with the License.
6
# You may obtain a copy of the License at
7
#
8
#     http://www.apache.org/licenses/LICENSE-2.0
9
#
10
# Unless required by applicable law or agreed to in writing, software
11
# distributed under the License is distributed on an "AS IS" BASIS,
12
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
# See the License for the specific language governing permissions and
14
# limitations under the License.
15

16
from evadb.configuration.constants import EvaDB_INSTALLATION_DIR
×
17
from evadb.database import EvaDBDatabase
×
18
from evadb.server.command_handler import execute_query_fetch_all
×
19

20
NDARRAY_DIR = "ndarray"
×
21
TUTORIALS_DIR = "tutorials"
×
22

23
DummyObjectDetector_udf_query = """CREATE UDF IF NOT EXISTS DummyObjectDetector
×
24
                  INPUT  (Frame_Array NDARRAY INT8(3, ANYDIM, ANYDIM))
25
                  OUTPUT (label NDARRAY STR(1))
26
                  TYPE  Classification
27
                  IMPL  '{}/../test/util.py';
28
        """.format(
29
    EvaDB_INSTALLATION_DIR
30
)
31

32
DummyMultiObjectDetector_udf_query = """CREATE UDF
×
33
                  IF NOT EXISTS  DummyMultiObjectDetector
34
                  INPUT  (Frame_Array NDARRAY INT8(3, ANYDIM, ANYDIM))
35
                  OUTPUT (labels NDARRAY STR(2))
36
                  TYPE  Classification
37
                  IMPL  '{}/../test/util.py';
38
        """.format(
39
    EvaDB_INSTALLATION_DIR
40
)
41

42
DummyFeatureExtractor_udf_query = """CREATE UDF
×
43
                  IF NOT EXISTS DummyFeatureExtractor
44
                  INPUT (Frame_Array NDARRAY UINT8(3, ANYDIM, ANYDIM))
45
                  OUTPUT (features NDARRAY FLOAT32(1, ANYDIM))
46
                  TYPE Classification
47
                  IMPL '{}/../test/util.py';
48
        """.format(
49
    EvaDB_INSTALLATION_DIR
50
)
51

52
fuzzy_udf_query = """CREATE UDF IF NOT EXISTS FuzzDistance
×
53
                    INPUT (Input_Array1 NDARRAY ANYTYPE, Input_Array2 NDARRAY ANYTYPE)
54
                    OUTPUT (distance FLOAT(32, 7))
55
                    TYPE NdarrayUDF
56
                    IMPL "{}/udfs/{}/fuzzy_join.py";
57
        """.format(
58
    EvaDB_INSTALLATION_DIR, NDARRAY_DIR
59
)
60

61
ArrayCount_udf_query = """CREATE UDF
×
62
            IF NOT EXISTS  ArrayCount
63
            INPUT (Input_Array NDARRAY ANYTYPE, Search_Key ANYTYPE)
64
            OUTPUT (key_count INTEGER)
65
            TYPE NdarrayUDF
66
            IMPL "{}/udfs/{}/array_count.py";
67
        """.format(
68
    EvaDB_INSTALLATION_DIR, NDARRAY_DIR
69
)
70

71
Crop_udf_query = """CREATE UDF IF NOT EXISTS Crop
×
72
                INPUT  (Frame_Array NDARRAY UINT8(3, ANYDIM, ANYDIM),
73
                        bboxes NDARRAY FLOAT32(ANYDIM, 4))
74
                OUTPUT (Cropped_Frame_Array NDARRAY UINT8(3, ANYDIM, ANYDIM))
75
                TYPE  NdarrayUDF
76
                IMPL  "{}/udfs/{}/crop.py";
77
        """.format(
78
    EvaDB_INSTALLATION_DIR, NDARRAY_DIR
79
)
80

81
Open_udf_query = """CREATE UDF IF NOT EXISTS Open
×
82
                INPUT (img_path TEXT(1000))
83
                OUTPUT (data NDARRAY UINT8(3, ANYDIM, ANYDIM))
84
                TYPE NdarrayUDF
85
                IMPL "{}/udfs/{}/open.py";
86
        """.format(
87
    EvaDB_INSTALLATION_DIR, NDARRAY_DIR
88
)
89

90
Similarity_udf_query = """CREATE UDF IF NOT EXISTS Similarity
×
91
                    INPUT (Frame_Array_Open NDARRAY UINT8(3, ANYDIM, ANYDIM),
92
                           Frame_Array_Base NDARRAY UINT8(3, ANYDIM, ANYDIM),
93
                           Feature_Extractor_Name TEXT(100))
94
                    OUTPUT (distance FLOAT(32, 7))
95
                    TYPE NdarrayUDF
96
                    IMPL "{}/udfs/{}/similarity.py";
97
        """.format(
98
    EvaDB_INSTALLATION_DIR, NDARRAY_DIR
99
)
100

101
Unnest_udf_query = """CREATE UDF IF NOT EXISTS Unnest
×
102
                INPUT  (inp NDARRAY ANYTYPE)
103
                OUTPUT (out ANYTYPE)
104
                TYPE  NdarrayUDF
105
                IMPL  "{}/udfs/{}/unnest.py";
106
        """.format(
107
    EvaDB_INSTALLATION_DIR, NDARRAY_DIR
108
)
109

110
Fastrcnn_udf_query = """CREATE UDF IF NOT EXISTS FastRCNNObjectDetector
×
111
      INPUT  (Frame_Array NDARRAY UINT8(3, ANYDIM, ANYDIM))
112
      OUTPUT (labels NDARRAY STR(ANYDIM), bboxes NDARRAY FLOAT32(ANYDIM, 4),
113
                scores NDARRAY FLOAT32(ANYDIM))
114
      TYPE  Classification
115
      IMPL  '{}/udfs/fastrcnn_object_detector.py';
116
      """.format(
117
    EvaDB_INSTALLATION_DIR
118
)
119

120
Yolo_udf_query = """CREATE UDF IF NOT EXISTS Yolo
×
121
      TYPE  ultralytics
122
      MODEL 'yolov8m.pt';
123
      """
124

125
face_detection_udf_query = """CREATE UDF IF NOT EXISTS FaceDetector
×
126
                  INPUT  (frame NDARRAY UINT8(3, ANYDIM, ANYDIM))
127
                  OUTPUT (bboxes NDARRAY FLOAT32(ANYDIM, 4),
128
                          scores NDARRAY FLOAT32(ANYDIM))
129
                  TYPE  FaceDetection
130
                  IMPL  '{}/udfs/face_detector.py';
131
        """.format(
132
    EvaDB_INSTALLATION_DIR
133
)
134

135
Mvit_udf_query = """CREATE UDF IF NOT EXISTS MVITActionRecognition
×
136
        INPUT  (Frame_Array NDARRAY UINT8(3, 16, 224, 224))
137
        OUTPUT (labels NDARRAY STR(ANYDIM))
138
        TYPE  Classification
139
        IMPL  '{}/udfs/mvit_action_recognition.py';
140
        """.format(
141
    EvaDB_INSTALLATION_DIR
142
)
143

144
Asl_udf_query = """CREATE UDF IF NOT EXISTS ASLActionRecognition
×
145
        INPUT  (Frame_Array NDARRAY UINT8(3, 16, 224, 224))
146
        OUTPUT (labels NDARRAY STR(ANYDIM))
147
        TYPE  Classification
148
        IMPL  '{}/udfs/asl_action_recognition.py';
149
        """.format(
150
    EvaDB_INSTALLATION_DIR
151
)
152

153
norfair_obj_tracker_query = """CREATE UDF IF NOT EXISTS NorFairTracker
×
154
                  IMPL  '{}/udfs/trackers/nor_fair.py';
155
        """.format(
156
    EvaDB_INSTALLATION_DIR
157
)
158

159
Sift_udf_query = """CREATE UDF IF NOT EXISTS SiftFeatureExtractor
×
160
        IMPL  '{}/udfs/sift_feature_extractor.py';
161
        """.format(
162
    EvaDB_INSTALLATION_DIR
163
)
164

165
Text_feat_udf_query = """CREATE UDF IF NOT EXISTS SentenceFeatureExtractor
×
166
        IMPL  '{}/udfs/sentence_feature_extractor.py';
167
        """.format(
168
    EvaDB_INSTALLATION_DIR
169
)
170

171
mnistcnn_udf_query = """CREATE UDF IF NOT EXISTS MnistImageClassifier
×
172
        INPUT  (data NDARRAY (3, 28, 28))
173
        OUTPUT (label TEXT(2))
174
        TYPE  Classification
175
        IMPL  '{}/udfs/mnist_image_classifier.py';
176
        """.format(
177
    EvaDB_INSTALLATION_DIR
178
)
179

180
chatgpt_udf_query = """CREATE UDF IF NOT EXISTS ChatGPT
×
181
        IMPL '{}/udfs/chatgpt.py';
182
        """.format(
183
    EvaDB_INSTALLATION_DIR
184
)
185

186
yolo8n_query = """CREATE UDF IF NOT EXISTS Yolo
×
187
            TYPE  ultralytics
188
            MODEL 'yolov8n.pt';
189
        """
190

191

192
def init_builtin_udfs(db: EvaDBDatabase, mode: str = "debug") -> None:
×
193
    """Load the built-in UDFs into the system during system bootstrapping.
194

195
    The function loads a set of pre-defined UDF queries based on the `mode` argument.
196
    In 'debug' mode, the function loads debug UDFs along with release UDFs.
197
    In 'release' mode, only release UDFs are loaded. In addition, in 'debug' mode,
198
    the function loads a smaller model to accelerate the test suite time.
199

200
    Args:
201
        mode (str, optional): The mode for loading UDFs, either 'debug' or 'release'.
202
        Defaults to 'debug'.
203

204
    """
205

206
    # Attempting to import torch module
207
    # It is necessary to import torch before to avoid encountering a
208
    # "RuntimeError: random_device could not be read"
209
    # The suspicion is that importing torch prior to decord resolves this issue
210
    try:
×
211
        import torch  # noqa: F401
×
212
    except ImportError:
213
        pass
214

215
    # Enable environment variables
216
    # Relevant for transformer-based models
217
    import os
×
218

219
    os.environ["PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION"] = "python"
×
220
    os.environ["TOKENIZERS_PARALLELISM"] = "false"
×
221

222
    # list of UDF queries to load
223
    queries = [
×
224
        mnistcnn_udf_query,
225
        Fastrcnn_udf_query,
226
        ArrayCount_udf_query,
227
        Crop_udf_query,
228
        Open_udf_query,
229
        Similarity_udf_query,
230
        norfair_obj_tracker_query,
231
        chatgpt_udf_query,
232
        face_detection_udf_query,
233
        # Mvit_udf_query,
234
        Sift_udf_query,
235
        Yolo_udf_query,
236
    ]
237

238
    # if mode is 'debug', add debug UDFs
239
    if mode == "debug":
×
240
        queries.extend(
×
241
            [
242
                DummyObjectDetector_udf_query,
243
                DummyMultiObjectDetector_udf_query,
244
                DummyFeatureExtractor_udf_query,
245
            ]
246
        )
247

248
    # execute each query in the list of UDF queries
249
    # ignore exceptions during the bootstrapping phase due to missing packages
250
    for query in queries:
×
251
        try:
×
252
            execute_query_fetch_all(
253
                db, query, do_not_print_exceptions=True, do_not_raise_exceptions=True
254
            )
255
        except Exception:
256
            pass
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc