hamtaa-texttools 1.2.0__py3-none-any.whl → 1.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hamtaa_texttools-1.2.0.dist-info → hamtaa_texttools-1.3.1.dist-info}/METADATA +6 -29
- {hamtaa_texttools-1.2.0.dist-info → hamtaa_texttools-1.3.1.dist-info}/RECORD +9 -13
- texttools/__init__.py +1 -3
- texttools/core/engine.py +10 -0
- texttools/tools/async_tools.py +338 -269
- texttools/tools/sync_tools.py +16 -17
- texttools/batch/__init__.py +0 -0
- texttools/batch/config.py +0 -40
- texttools/batch/manager.py +0 -228
- texttools/batch/runner.py +0 -228
- {hamtaa_texttools-1.2.0.dist-info → hamtaa_texttools-1.3.1.dist-info}/WHEEL +0 -0
- {hamtaa_texttools-1.2.0.dist-info → hamtaa_texttools-1.3.1.dist-info}/licenses/LICENSE +0 -0
- {hamtaa_texttools-1.2.0.dist-info → hamtaa_texttools-1.3.1.dist-info}/top_level.txt +0 -0
texttools/tools/async_tools.py
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import sys
|
|
2
1
|
from collections.abc import Callable
|
|
3
2
|
from time import perf_counter
|
|
4
3
|
from typing import Any, Literal
|
|
5
4
|
|
|
6
5
|
from openai import AsyncOpenAI
|
|
7
6
|
|
|
8
|
-
from ..core.engine import text_to_chunks
|
|
7
|
+
from ..core.engine import text_to_chunks, run_with_timeout
|
|
9
8
|
from ..core.exceptions import LLMError, PromptError, TextToolsError, ValidationError
|
|
10
9
|
from ..core.internal_models import (
|
|
11
10
|
Bool,
|
|
@@ -44,6 +43,7 @@ class AsyncTheTool:
|
|
|
44
43
|
validator: Callable[[Any], bool] | None = None,
|
|
45
44
|
max_validation_retries: int | None = None,
|
|
46
45
|
priority: int | None = None,
|
|
46
|
+
timeout: float | None = None,
|
|
47
47
|
) -> ToolOutput:
|
|
48
48
|
"""
|
|
49
49
|
Categorize a text into a category / category tree.
|
|
@@ -61,33 +61,37 @@ class AsyncTheTool:
|
|
|
61
61
|
validator: Custom validation function to validate the output
|
|
62
62
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
63
63
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
64
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
64
65
|
|
|
65
66
|
Returns:
|
|
66
67
|
ToolOutput
|
|
67
68
|
|
|
68
69
|
"""
|
|
69
|
-
tool_name =
|
|
70
|
+
tool_name = "categorize"
|
|
70
71
|
start = perf_counter()
|
|
71
72
|
|
|
72
73
|
try:
|
|
73
74
|
if isinstance(categories, list):
|
|
74
|
-
operator_output = await
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
75
|
+
operator_output = await run_with_timeout(
|
|
76
|
+
self._operator.run(
|
|
77
|
+
# User parameters
|
|
78
|
+
text=text,
|
|
79
|
+
category_list=categories,
|
|
80
|
+
with_analysis=with_analysis,
|
|
81
|
+
user_prompt=user_prompt,
|
|
82
|
+
temperature=temperature,
|
|
83
|
+
logprobs=logprobs,
|
|
84
|
+
top_logprobs=top_logprobs,
|
|
85
|
+
validator=validator,
|
|
86
|
+
max_validation_retries=max_validation_retries,
|
|
87
|
+
priority=priority,
|
|
88
|
+
# Internal parameters
|
|
89
|
+
tool_name=tool_name,
|
|
90
|
+
output_model=create_dynamic_model(categories),
|
|
91
|
+
mode=None,
|
|
92
|
+
output_lang=None,
|
|
93
|
+
),
|
|
94
|
+
timeout=timeout,
|
|
91
95
|
)
|
|
92
96
|
|
|
93
97
|
metadata = ToolOutputMetadata(
|
|
@@ -117,23 +121,26 @@ class AsyncTheTool:
|
|
|
117
121
|
]
|
|
118
122
|
category_names = list(parent_node.children.keys())
|
|
119
123
|
|
|
120
|
-
level_operator_output = await
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
124
|
+
level_operator_output = await run_with_timeout(
|
|
125
|
+
self._operator.run(
|
|
126
|
+
# User parameters
|
|
127
|
+
text=text,
|
|
128
|
+
category_list=category_list,
|
|
129
|
+
with_analysis=with_analysis,
|
|
130
|
+
user_prompt=user_prompt,
|
|
131
|
+
temperature=temperature,
|
|
132
|
+
logprobs=logprobs,
|
|
133
|
+
top_logprobs=top_logprobs,
|
|
134
|
+
validator=validator,
|
|
135
|
+
max_validation_retries=max_validation_retries,
|
|
136
|
+
priority=priority,
|
|
137
|
+
# Internal parameters
|
|
138
|
+
tool_name=tool_name,
|
|
139
|
+
output_model=create_dynamic_model(category_names),
|
|
140
|
+
mode=None,
|
|
141
|
+
output_lang=None,
|
|
142
|
+
),
|
|
143
|
+
timeout=timeout,
|
|
137
144
|
)
|
|
138
145
|
|
|
139
146
|
chosen_category = level_operator_output.result
|
|
@@ -179,6 +186,7 @@ class AsyncTheTool:
|
|
|
179
186
|
validator: Callable[[Any], bool] | None = None,
|
|
180
187
|
max_validation_retries: int | None = None,
|
|
181
188
|
priority: int | None = None,
|
|
189
|
+
timeout: float | None = None,
|
|
182
190
|
) -> ToolOutput:
|
|
183
191
|
"""
|
|
184
192
|
Extract salient keywords from text.
|
|
@@ -194,31 +202,35 @@ class AsyncTheTool:
|
|
|
194
202
|
validator: Custom validation function to validate the output
|
|
195
203
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
196
204
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
205
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
197
206
|
|
|
198
207
|
Returns:
|
|
199
208
|
ToolOutput
|
|
200
209
|
"""
|
|
201
|
-
tool_name =
|
|
210
|
+
tool_name = "extract_keywords"
|
|
202
211
|
start = perf_counter()
|
|
203
212
|
|
|
204
213
|
try:
|
|
205
|
-
operator_output = await
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
214
|
+
operator_output = await run_with_timeout(
|
|
215
|
+
self._operator.run(
|
|
216
|
+
# User parameters
|
|
217
|
+
text=text,
|
|
218
|
+
with_analysis=with_analysis,
|
|
219
|
+
output_lang=output_lang,
|
|
220
|
+
user_prompt=user_prompt,
|
|
221
|
+
temperature=temperature,
|
|
222
|
+
logprobs=logprobs,
|
|
223
|
+
top_logprobs=top_logprobs,
|
|
224
|
+
number_of_keywords=number_of_keywords,
|
|
225
|
+
validator=validator,
|
|
226
|
+
max_validation_retries=max_validation_retries,
|
|
227
|
+
priority=priority,
|
|
228
|
+
# Internal parameters
|
|
229
|
+
tool_name=tool_name,
|
|
230
|
+
output_model=ListStr,
|
|
231
|
+
mode=mode,
|
|
232
|
+
),
|
|
233
|
+
timeout=timeout,
|
|
222
234
|
)
|
|
223
235
|
|
|
224
236
|
metadata = ToolOutputMetadata(
|
|
@@ -252,6 +264,7 @@ class AsyncTheTool:
|
|
|
252
264
|
validator: Callable[[Any], bool] | None = None,
|
|
253
265
|
max_validation_retries: int | None = None,
|
|
254
266
|
priority: int | None = None,
|
|
267
|
+
timeout: float | None = None,
|
|
255
268
|
) -> ToolOutput:
|
|
256
269
|
"""
|
|
257
270
|
Perform Named Entity Recognition (NER) over the input text.
|
|
@@ -268,32 +281,36 @@ class AsyncTheTool:
|
|
|
268
281
|
validator: Custom validation function to validate the output
|
|
269
282
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
270
283
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
284
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
271
285
|
|
|
272
286
|
Returns:
|
|
273
287
|
ToolOutput
|
|
274
288
|
"""
|
|
275
|
-
tool_name =
|
|
289
|
+
tool_name = "extract_entities"
|
|
276
290
|
start = perf_counter()
|
|
277
291
|
|
|
278
292
|
try:
|
|
279
|
-
operator_output = await
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
293
|
+
operator_output = await run_with_timeout(
|
|
294
|
+
self._operator.run(
|
|
295
|
+
# User parameters
|
|
296
|
+
text=text,
|
|
297
|
+
entities=entities
|
|
298
|
+
or "all named entities (e.g., PER, ORG, LOC, DAT, etc.)",
|
|
299
|
+
with_analysis=with_analysis,
|
|
300
|
+
output_lang=output_lang,
|
|
301
|
+
user_prompt=user_prompt,
|
|
302
|
+
temperature=temperature,
|
|
303
|
+
logprobs=logprobs,
|
|
304
|
+
top_logprobs=top_logprobs,
|
|
305
|
+
validator=validator,
|
|
306
|
+
max_validation_retries=max_validation_retries,
|
|
307
|
+
priority=priority,
|
|
308
|
+
# Internal parameters
|
|
309
|
+
tool_name=tool_name,
|
|
310
|
+
output_model=ListDictStrStr,
|
|
311
|
+
mode=None,
|
|
312
|
+
),
|
|
313
|
+
timeout=timeout,
|
|
297
314
|
)
|
|
298
315
|
|
|
299
316
|
metadata = ToolOutputMetadata(
|
|
@@ -325,6 +342,7 @@ class AsyncTheTool:
|
|
|
325
342
|
validator: Callable[[Any], bool] | None = None,
|
|
326
343
|
max_validation_retries: int | None = None,
|
|
327
344
|
priority: int | None = None,
|
|
345
|
+
timeout: float | None = None,
|
|
328
346
|
) -> ToolOutput:
|
|
329
347
|
"""
|
|
330
348
|
Detect if the input is phrased as a question.
|
|
@@ -339,31 +357,34 @@ class AsyncTheTool:
|
|
|
339
357
|
validator: Custom validation function to validate the output
|
|
340
358
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
341
359
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
360
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
342
361
|
|
|
343
362
|
Returns:
|
|
344
363
|
ToolOutput
|
|
345
364
|
"""
|
|
346
|
-
tool_name =
|
|
347
|
-
|
|
365
|
+
tool_name = "is_question"
|
|
348
366
|
start = perf_counter()
|
|
349
367
|
|
|
350
368
|
try:
|
|
351
|
-
operator_output = await
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
369
|
+
operator_output = await run_with_timeout(
|
|
370
|
+
self._operator.run(
|
|
371
|
+
# User parameters
|
|
372
|
+
text=text,
|
|
373
|
+
with_analysis=with_analysis,
|
|
374
|
+
user_prompt=user_prompt,
|
|
375
|
+
temperature=temperature,
|
|
376
|
+
logprobs=logprobs,
|
|
377
|
+
top_logprobs=top_logprobs,
|
|
378
|
+
validator=validator,
|
|
379
|
+
max_validation_retries=max_validation_retries,
|
|
380
|
+
priority=priority,
|
|
381
|
+
# Internal parameters
|
|
382
|
+
tool_name=tool_name,
|
|
383
|
+
output_model=Bool,
|
|
384
|
+
mode=None,
|
|
385
|
+
output_lang=None,
|
|
386
|
+
),
|
|
387
|
+
timeout=timeout,
|
|
367
388
|
)
|
|
368
389
|
|
|
369
390
|
metadata = ToolOutputMetadata(
|
|
@@ -397,6 +418,7 @@ class AsyncTheTool:
|
|
|
397
418
|
validator: Callable[[Any], bool] | None = None,
|
|
398
419
|
max_validation_retries: int | None = None,
|
|
399
420
|
priority: int | None = None,
|
|
421
|
+
timeout: float | None = None,
|
|
400
422
|
) -> ToolOutput:
|
|
401
423
|
"""
|
|
402
424
|
Generate a single question from the given text.
|
|
@@ -413,31 +435,35 @@ class AsyncTheTool:
|
|
|
413
435
|
validator: Custom validation function to validate the output
|
|
414
436
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
415
437
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
438
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
416
439
|
|
|
417
440
|
Returns:
|
|
418
441
|
ToolOutput
|
|
419
442
|
"""
|
|
420
|
-
tool_name =
|
|
443
|
+
tool_name = "text_to_question"
|
|
421
444
|
start = perf_counter()
|
|
422
445
|
|
|
423
446
|
try:
|
|
424
|
-
operator_output = await
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
447
|
+
operator_output = await run_with_timeout(
|
|
448
|
+
self._operator.run(
|
|
449
|
+
# User parameters
|
|
450
|
+
text=text,
|
|
451
|
+
number_of_questions=number_of_questions,
|
|
452
|
+
with_analysis=with_analysis,
|
|
453
|
+
output_lang=output_lang,
|
|
454
|
+
user_prompt=user_prompt,
|
|
455
|
+
temperature=temperature,
|
|
456
|
+
logprobs=logprobs,
|
|
457
|
+
top_logprobs=top_logprobs,
|
|
458
|
+
validator=validator,
|
|
459
|
+
max_validation_retries=max_validation_retries,
|
|
460
|
+
priority=priority,
|
|
461
|
+
# Internal parameters
|
|
462
|
+
tool_name=tool_name,
|
|
463
|
+
output_model=ReasonListStr,
|
|
464
|
+
mode=None,
|
|
465
|
+
),
|
|
466
|
+
timeout=timeout,
|
|
441
467
|
)
|
|
442
468
|
|
|
443
469
|
metadata = ToolOutputMetadata(
|
|
@@ -471,6 +497,7 @@ class AsyncTheTool:
|
|
|
471
497
|
validator: Callable[[Any], bool] | None = None,
|
|
472
498
|
max_validation_retries: int | None = None,
|
|
473
499
|
priority: int | None = None,
|
|
500
|
+
timeout: float | None = None,
|
|
474
501
|
) -> ToolOutput:
|
|
475
502
|
"""
|
|
476
503
|
Merge multiple questions into a single unified question.
|
|
@@ -486,31 +513,35 @@ class AsyncTheTool:
|
|
|
486
513
|
validator: Custom validation function to validate the output
|
|
487
514
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
488
515
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
516
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
489
517
|
|
|
490
518
|
Returns:
|
|
491
519
|
ToolOutput
|
|
492
520
|
"""
|
|
493
|
-
tool_name =
|
|
521
|
+
tool_name = "merge_questions"
|
|
494
522
|
start = perf_counter()
|
|
495
523
|
|
|
496
524
|
try:
|
|
497
525
|
text = ", ".join(text)
|
|
498
|
-
operator_output = await
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
526
|
+
operator_output = await run_with_timeout(
|
|
527
|
+
self._operator.run(
|
|
528
|
+
# User parameters
|
|
529
|
+
text=text,
|
|
530
|
+
with_analysis=with_analysis,
|
|
531
|
+
output_lang=output_lang,
|
|
532
|
+
user_prompt=user_prompt,
|
|
533
|
+
temperature=temperature,
|
|
534
|
+
logprobs=logprobs,
|
|
535
|
+
top_logprobs=top_logprobs,
|
|
536
|
+
validator=validator,
|
|
537
|
+
max_validation_retries=max_validation_retries,
|
|
538
|
+
priority=priority,
|
|
539
|
+
# Internal parameters
|
|
540
|
+
tool_name=tool_name,
|
|
541
|
+
output_model=Str,
|
|
542
|
+
mode=mode,
|
|
543
|
+
),
|
|
544
|
+
timeout=timeout,
|
|
514
545
|
)
|
|
515
546
|
|
|
516
547
|
metadata = ToolOutputMetadata(
|
|
@@ -544,6 +575,7 @@ class AsyncTheTool:
|
|
|
544
575
|
validator: Callable[[Any], bool] | None = None,
|
|
545
576
|
max_validation_retries: int | None = None,
|
|
546
577
|
priority: int | None = None,
|
|
578
|
+
timeout: float | None = None,
|
|
547
579
|
) -> ToolOutput:
|
|
548
580
|
"""
|
|
549
581
|
Rewrite a text with different modes.
|
|
@@ -559,30 +591,34 @@ class AsyncTheTool:
|
|
|
559
591
|
validator: Custom validation function to validate the output
|
|
560
592
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
561
593
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
594
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
562
595
|
|
|
563
596
|
Returns:
|
|
564
597
|
ToolOutput
|
|
565
598
|
"""
|
|
566
|
-
tool_name =
|
|
599
|
+
tool_name = "rewrite"
|
|
567
600
|
start = perf_counter()
|
|
568
601
|
|
|
569
602
|
try:
|
|
570
|
-
operator_output = await
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
603
|
+
operator_output = await run_with_timeout(
|
|
604
|
+
self._operator.run(
|
|
605
|
+
# User parameters
|
|
606
|
+
text=text,
|
|
607
|
+
with_analysis=with_analysis,
|
|
608
|
+
output_lang=output_lang,
|
|
609
|
+
user_prompt=user_prompt,
|
|
610
|
+
temperature=temperature,
|
|
611
|
+
logprobs=logprobs,
|
|
612
|
+
top_logprobs=top_logprobs,
|
|
613
|
+
validator=validator,
|
|
614
|
+
max_validation_retries=max_validation_retries,
|
|
615
|
+
priority=priority,
|
|
616
|
+
# Internal parameters
|
|
617
|
+
tool_name=tool_name,
|
|
618
|
+
output_model=Str,
|
|
619
|
+
mode=mode,
|
|
620
|
+
),
|
|
621
|
+
timeout=timeout,
|
|
586
622
|
)
|
|
587
623
|
|
|
588
624
|
metadata = ToolOutputMetadata(
|
|
@@ -616,6 +652,7 @@ class AsyncTheTool:
|
|
|
616
652
|
validator: Callable[[Any], bool] | None = None,
|
|
617
653
|
max_validation_retries: int | None = None,
|
|
618
654
|
priority: int | None = None,
|
|
655
|
+
timeout: float | None = None,
|
|
619
656
|
) -> ToolOutput:
|
|
620
657
|
"""
|
|
621
658
|
Generate a list of questions about a subject.
|
|
@@ -632,31 +669,35 @@ class AsyncTheTool:
|
|
|
632
669
|
validator: Custom validation function to validate the output
|
|
633
670
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
634
671
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
672
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
635
673
|
|
|
636
674
|
Returns:
|
|
637
675
|
ToolOutput
|
|
638
676
|
"""
|
|
639
|
-
tool_name =
|
|
677
|
+
tool_name = "subject_to_question"
|
|
640
678
|
start = perf_counter()
|
|
641
679
|
|
|
642
680
|
try:
|
|
643
|
-
operator_output = await
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
681
|
+
operator_output = await run_with_timeout(
|
|
682
|
+
self._operator.run(
|
|
683
|
+
# User parameters
|
|
684
|
+
text=text,
|
|
685
|
+
number_of_questions=number_of_questions,
|
|
686
|
+
with_analysis=with_analysis,
|
|
687
|
+
output_lang=output_lang,
|
|
688
|
+
user_prompt=user_prompt,
|
|
689
|
+
temperature=temperature,
|
|
690
|
+
logprobs=logprobs,
|
|
691
|
+
top_logprobs=top_logprobs,
|
|
692
|
+
validator=validator,
|
|
693
|
+
max_validation_retries=max_validation_retries,
|
|
694
|
+
priority=priority,
|
|
695
|
+
# Internal parameters
|
|
696
|
+
tool_name=tool_name,
|
|
697
|
+
output_model=ReasonListStr,
|
|
698
|
+
mode=None,
|
|
699
|
+
),
|
|
700
|
+
timeout=timeout,
|
|
660
701
|
)
|
|
661
702
|
|
|
662
703
|
metadata = ToolOutputMetadata(
|
|
@@ -689,6 +730,7 @@ class AsyncTheTool:
|
|
|
689
730
|
validator: Callable[[Any], bool] | None = None,
|
|
690
731
|
max_validation_retries: int | None = None,
|
|
691
732
|
priority: int | None = None,
|
|
733
|
+
timeout: float | None = None,
|
|
692
734
|
) -> ToolOutput:
|
|
693
735
|
"""
|
|
694
736
|
Summarize the given subject text.
|
|
@@ -704,30 +746,34 @@ class AsyncTheTool:
|
|
|
704
746
|
validator: Custom validation function to validate the output
|
|
705
747
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
706
748
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
749
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
707
750
|
|
|
708
751
|
Returns:
|
|
709
752
|
ToolOutput
|
|
710
753
|
"""
|
|
711
|
-
tool_name =
|
|
754
|
+
tool_name = "summarize"
|
|
712
755
|
start = perf_counter()
|
|
713
756
|
|
|
714
757
|
try:
|
|
715
|
-
operator_output = await
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
758
|
+
operator_output = await run_with_timeout(
|
|
759
|
+
self._operator.run(
|
|
760
|
+
# User parameters
|
|
761
|
+
text=text,
|
|
762
|
+
with_analysis=with_analysis,
|
|
763
|
+
output_lang=output_lang,
|
|
764
|
+
user_prompt=user_prompt,
|
|
765
|
+
temperature=temperature,
|
|
766
|
+
logprobs=logprobs,
|
|
767
|
+
top_logprobs=top_logprobs,
|
|
768
|
+
validator=validator,
|
|
769
|
+
max_validation_retries=max_validation_retries,
|
|
770
|
+
priority=priority,
|
|
771
|
+
# Internal parameters
|
|
772
|
+
tool_name=tool_name,
|
|
773
|
+
output_model=Str,
|
|
774
|
+
mode=None,
|
|
775
|
+
),
|
|
776
|
+
timeout=timeout,
|
|
731
777
|
)
|
|
732
778
|
|
|
733
779
|
metadata = ToolOutputMetadata(
|
|
@@ -761,6 +807,7 @@ class AsyncTheTool:
|
|
|
761
807
|
validator: Callable[[Any], bool] | None = None,
|
|
762
808
|
max_validation_retries: int | None = None,
|
|
763
809
|
priority: int | None = None,
|
|
810
|
+
timeout: float | None = None,
|
|
764
811
|
) -> ToolOutput:
|
|
765
812
|
"""
|
|
766
813
|
Translate text between languages.
|
|
@@ -779,11 +826,12 @@ class AsyncTheTool:
|
|
|
779
826
|
validator: Custom validation function to validate the output
|
|
780
827
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
781
828
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
829
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
782
830
|
|
|
783
831
|
Returns:
|
|
784
832
|
ToolOutput
|
|
785
833
|
"""
|
|
786
|
-
tool_name =
|
|
834
|
+
tool_name = "translate"
|
|
787
835
|
start = perf_counter()
|
|
788
836
|
|
|
789
837
|
try:
|
|
@@ -794,23 +842,26 @@ class AsyncTheTool:
|
|
|
794
842
|
logprobs_list = []
|
|
795
843
|
|
|
796
844
|
for chunk in chunks:
|
|
797
|
-
chunk_operator_output = await
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
845
|
+
chunk_operator_output = await run_with_timeout(
|
|
846
|
+
self._operator.run(
|
|
847
|
+
# User parameters
|
|
848
|
+
text=chunk,
|
|
849
|
+
target_language=target_language,
|
|
850
|
+
with_analysis=with_analysis,
|
|
851
|
+
user_prompt=user_prompt,
|
|
852
|
+
temperature=temperature,
|
|
853
|
+
logprobs=logprobs,
|
|
854
|
+
top_logprobs=top_logprobs,
|
|
855
|
+
validator=validator,
|
|
856
|
+
max_validation_retries=max_validation_retries,
|
|
857
|
+
priority=priority,
|
|
858
|
+
# Internal parameters
|
|
859
|
+
tool_name=tool_name,
|
|
860
|
+
output_model=Str,
|
|
861
|
+
mode=None,
|
|
862
|
+
output_lang=None,
|
|
863
|
+
),
|
|
864
|
+
timeout=timeout,
|
|
814
865
|
)
|
|
815
866
|
|
|
816
867
|
translation += chunk_operator_output.result + "\n"
|
|
@@ -831,23 +882,26 @@ class AsyncTheTool:
|
|
|
831
882
|
)
|
|
832
883
|
|
|
833
884
|
else:
|
|
834
|
-
operator_output = await
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
885
|
+
operator_output = await run_with_timeout(
|
|
886
|
+
self._operator.run(
|
|
887
|
+
# User parameters
|
|
888
|
+
text=text,
|
|
889
|
+
target_language=target_language,
|
|
890
|
+
with_analysis=with_analysis,
|
|
891
|
+
user_prompt=user_prompt,
|
|
892
|
+
temperature=temperature,
|
|
893
|
+
logprobs=logprobs,
|
|
894
|
+
top_logprobs=top_logprobs,
|
|
895
|
+
validator=validator,
|
|
896
|
+
max_validation_retries=max_validation_retries,
|
|
897
|
+
priority=priority,
|
|
898
|
+
# Internal parameters
|
|
899
|
+
tool_name=tool_name,
|
|
900
|
+
output_model=Str,
|
|
901
|
+
mode=None,
|
|
902
|
+
output_lang=None,
|
|
903
|
+
),
|
|
904
|
+
timeout=timeout,
|
|
851
905
|
)
|
|
852
906
|
|
|
853
907
|
metadata = ToolOutputMetadata(
|
|
@@ -880,6 +934,7 @@ class AsyncTheTool:
|
|
|
880
934
|
validator: Callable[[Any], bool] | None = None,
|
|
881
935
|
max_validation_retries: int | None = None,
|
|
882
936
|
priority: int | None = None,
|
|
937
|
+
timeout: float | None = None,
|
|
883
938
|
) -> ToolOutput:
|
|
884
939
|
"""
|
|
885
940
|
Proposition input text to meaningful sentences.
|
|
@@ -897,30 +952,34 @@ class AsyncTheTool:
|
|
|
897
952
|
validator: Custom validation function to validate the output
|
|
898
953
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
899
954
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
955
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
900
956
|
|
|
901
957
|
Returns:
|
|
902
958
|
ToolOutput
|
|
903
959
|
"""
|
|
904
|
-
tool_name =
|
|
960
|
+
tool_name = "propositionize"
|
|
905
961
|
start = perf_counter()
|
|
906
962
|
|
|
907
963
|
try:
|
|
908
|
-
operator_output = await
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
964
|
+
operator_output = await run_with_timeout(
|
|
965
|
+
self._operator.run(
|
|
966
|
+
# User parameters
|
|
967
|
+
text=text,
|
|
968
|
+
with_analysis=with_analysis,
|
|
969
|
+
output_lang=output_lang,
|
|
970
|
+
user_prompt=user_prompt,
|
|
971
|
+
temperature=temperature,
|
|
972
|
+
logprobs=logprobs,
|
|
973
|
+
top_logprobs=top_logprobs,
|
|
974
|
+
validator=validator,
|
|
975
|
+
max_validation_retries=max_validation_retries,
|
|
976
|
+
priority=priority,
|
|
977
|
+
# Internal parameters
|
|
978
|
+
tool_name=tool_name,
|
|
979
|
+
output_model=ListStr,
|
|
980
|
+
mode=None,
|
|
981
|
+
),
|
|
982
|
+
timeout=timeout,
|
|
924
983
|
)
|
|
925
984
|
|
|
926
985
|
metadata = ToolOutputMetadata(
|
|
@@ -954,6 +1013,7 @@ class AsyncTheTool:
|
|
|
954
1013
|
validator: Callable[[Any], bool] | None = None,
|
|
955
1014
|
max_validation_retries: int | None = None,
|
|
956
1015
|
priority: int | None = None,
|
|
1016
|
+
timeout: float | None = None,
|
|
957
1017
|
) -> ToolOutput:
|
|
958
1018
|
"""
|
|
959
1019
|
Checks wheather a statement is relevant to the source text or not.
|
|
@@ -962,7 +1022,7 @@ class AsyncTheTool:
|
|
|
962
1022
|
|
|
963
1023
|
Arguments:
|
|
964
1024
|
text: The input text
|
|
965
|
-
source_text:
|
|
1025
|
+
source_text: The source text that we want to check relation of text to it
|
|
966
1026
|
with_analysis: Whether to include detailed reasoning analysis
|
|
967
1027
|
output_lang: Language for the output
|
|
968
1028
|
user_prompt: Additional instructions
|
|
@@ -972,31 +1032,35 @@ class AsyncTheTool:
|
|
|
972
1032
|
validator: Custom validation function to validate the output
|
|
973
1033
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
974
1034
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
1035
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
975
1036
|
|
|
976
1037
|
Returns:
|
|
977
1038
|
ToolOutput
|
|
978
1039
|
"""
|
|
979
|
-
tool_name =
|
|
1040
|
+
tool_name = "check_fact"
|
|
980
1041
|
start = perf_counter()
|
|
981
1042
|
|
|
982
1043
|
try:
|
|
983
|
-
operator_output = await
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1044
|
+
operator_output = await run_with_timeout(
|
|
1045
|
+
self._operator.run(
|
|
1046
|
+
# User parameters
|
|
1047
|
+
text=text,
|
|
1048
|
+
source_text=source_text,
|
|
1049
|
+
with_analysis=with_analysis,
|
|
1050
|
+
output_lang=output_lang,
|
|
1051
|
+
user_prompt=user_prompt,
|
|
1052
|
+
temperature=temperature,
|
|
1053
|
+
logprobs=logprobs,
|
|
1054
|
+
top_logprobs=top_logprobs,
|
|
1055
|
+
validator=validator,
|
|
1056
|
+
max_validation_retries=max_validation_retries,
|
|
1057
|
+
priority=priority,
|
|
1058
|
+
# Internal parameters
|
|
1059
|
+
tool_name=tool_name,
|
|
1060
|
+
output_model=Bool,
|
|
1061
|
+
mode=None,
|
|
1062
|
+
),
|
|
1063
|
+
timeout=timeout,
|
|
1000
1064
|
)
|
|
1001
1065
|
|
|
1002
1066
|
metadata = ToolOutputMetadata(
|
|
@@ -1030,6 +1094,7 @@ class AsyncTheTool:
|
|
|
1030
1094
|
validator: Callable[[Any], bool] | None = None,
|
|
1031
1095
|
max_validation_retries: int | None = None,
|
|
1032
1096
|
priority: int | None = None,
|
|
1097
|
+
timeout: float | None = None,
|
|
1033
1098
|
) -> ToolOutput:
|
|
1034
1099
|
"""
|
|
1035
1100
|
Custom tool that can do almost anything!
|
|
@@ -1046,32 +1111,36 @@ class AsyncTheTool:
|
|
|
1046
1111
|
validator: Custom validation function to validate the output
|
|
1047
1112
|
max_validation_retries: Maximum number of retry attempts if validation fails
|
|
1048
1113
|
priority: Task execution priority (if enabled by vLLM and the model)
|
|
1114
|
+
timeout: Maximum time in seconds to wait for the response before raising a timeout error
|
|
1049
1115
|
|
|
1050
1116
|
Returns:
|
|
1051
1117
|
ToolOutput
|
|
1052
1118
|
"""
|
|
1053
|
-
tool_name =
|
|
1119
|
+
tool_name = "run_custom"
|
|
1054
1120
|
start = perf_counter()
|
|
1055
1121
|
|
|
1056
1122
|
try:
|
|
1057
|
-
operator_output = await
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1123
|
+
operator_output = await run_with_timeout(
|
|
1124
|
+
self._operator.run(
|
|
1125
|
+
# User paramaeters
|
|
1126
|
+
text=prompt,
|
|
1127
|
+
output_model=output_model,
|
|
1128
|
+
with_analysis=with_analysis,
|
|
1129
|
+
analyze_template=analyze_template,
|
|
1130
|
+
output_model_str=output_model.model_json_schema(),
|
|
1131
|
+
output_lang=output_lang,
|
|
1132
|
+
temperature=temperature,
|
|
1133
|
+
logprobs=logprobs,
|
|
1134
|
+
top_logprobs=top_logprobs,
|
|
1135
|
+
validator=validator,
|
|
1136
|
+
max_validation_retries=max_validation_retries,
|
|
1137
|
+
priority=priority,
|
|
1138
|
+
# Internal parameters
|
|
1139
|
+
tool_name=tool_name,
|
|
1140
|
+
user_prompt=None,
|
|
1141
|
+
mode=None,
|
|
1142
|
+
),
|
|
1143
|
+
timeout=timeout,
|
|
1075
1144
|
)
|
|
1076
1145
|
|
|
1077
1146
|
metadata = ToolOutputMetadata(
|