fabricatio 0.2.6.dev4__cp39-cp39-win_amd64.whl → 0.2.6.dev6__cp39-cp39-win_amd64.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.
- fabricatio/_rust.cp39-win_amd64.pyd +0 -0
- fabricatio/actions/article.py +7 -4
- fabricatio/capabilities/rag.py +3 -3
- fabricatio/capabilities/task.py +2 -2
- fabricatio/config.py +21 -18
- fabricatio/models/action.py +100 -40
- fabricatio/models/extra.py +220 -52
- fabricatio/models/kwargs_types.py +1 -0
- fabricatio/models/role.py +30 -6
- fabricatio/models/usages.py +63 -31
- fabricatio/models/utils.py +21 -0
- fabricatio/parser.py +1 -0
- {fabricatio-0.2.6.dev4.data → fabricatio-0.2.6.dev6.data}/scripts/tdown.exe +0 -0
- {fabricatio-0.2.6.dev4.dist-info → fabricatio-0.2.6.dev6.dist-info}/METADATA +1 -1
- {fabricatio-0.2.6.dev4.dist-info → fabricatio-0.2.6.dev6.dist-info}/RECORD +17 -17
- {fabricatio-0.2.6.dev4.dist-info → fabricatio-0.2.6.dev6.dist-info}/WHEEL +1 -1
- {fabricatio-0.2.6.dev4.dist-info → fabricatio-0.2.6.dev6.dist-info}/licenses/LICENSE +0 -0
fabricatio/models/usages.py
CHANGED
@@ -12,9 +12,9 @@ from fabricatio.models.generic import ScopedConfig, WithBriefing
|
|
12
12
|
from fabricatio.models.kwargs_types import ChooseKwargs, EmbeddingKwargs, GenerateKwargs, LLMKwargs, ValidateKwargs
|
13
13
|
from fabricatio.models.task import Task
|
14
14
|
from fabricatio.models.tool import Tool, ToolBox
|
15
|
-
from fabricatio.models.utils import Messages
|
15
|
+
from fabricatio.models.utils import Messages, ok
|
16
16
|
from fabricatio.parser import GenericCapture, JsonCapture
|
17
|
-
from litellm import Router, stream_chunk_builder
|
17
|
+
from litellm import Router, stream_chunk_builder # pyright: ignore [reportPrivateImportUsage]
|
18
18
|
from litellm.types.router import Deployment, LiteLLM_Params, ModelInfo
|
19
19
|
from litellm.types.utils import (
|
20
20
|
Choices,
|
@@ -70,14 +70,22 @@ class LLMUsage(ScopedConfig):
|
|
70
70
|
"""
|
71
71
|
# Call the underlying asynchronous completion function with the provided and default parameters
|
72
72
|
# noinspection PyTypeChecker,PydanticTypeChecker
|
73
|
-
|
74
73
|
return await self._deploy(
|
75
74
|
Deployment(
|
76
|
-
model_name=(
|
75
|
+
model_name=(
|
76
|
+
m_name := ok(
|
77
|
+
kwargs.get("model") or self.llm_model or configs.llm.model, "model name is not set at any place"
|
78
|
+
)
|
79
|
+
), # pyright: ignore [reportCallIssue]
|
77
80
|
litellm_params=(
|
78
81
|
p := LiteLLM_Params(
|
79
|
-
api_key=(
|
80
|
-
|
82
|
+
api_key=ok(
|
83
|
+
self.llm_api_key or configs.llm.api_key, "llm api key is not set at any place"
|
84
|
+
).get_secret_value(),
|
85
|
+
api_base=ok(
|
86
|
+
self.llm_api_endpoint or configs.llm.api_endpoint,
|
87
|
+
"llm api endpoint is not set at any place",
|
88
|
+
).unicode_string(),
|
81
89
|
model=m_name,
|
82
90
|
tpm=self.llm_tpm or configs.llm.tpm,
|
83
91
|
rpm=self.llm_rpm or configs.llm.rpm,
|
@@ -88,14 +96,14 @@ class LLMUsage(ScopedConfig):
|
|
88
96
|
model_info=ModelInfo(id=hash(m_name + p.model_dump_json(exclude_none=True))),
|
89
97
|
)
|
90
98
|
).acompletion(
|
91
|
-
messages=messages,
|
99
|
+
messages=messages, # pyright: ignore [reportArgumentType]
|
92
100
|
n=n or self.llm_generation_count or configs.llm.generation_count,
|
93
101
|
model=m_name,
|
94
102
|
temperature=kwargs.get("temperature") or self.llm_temperature or configs.llm.temperature,
|
95
103
|
stop=kwargs.get("stop") or self.llm_stop_sign or configs.llm.stop_sign,
|
96
104
|
top_p=kwargs.get("top_p") or self.llm_top_p or configs.llm.top_p,
|
97
105
|
max_tokens=kwargs.get("max_tokens") or self.llm_max_tokens or configs.llm.max_tokens,
|
98
|
-
stream=kwargs.get("stream") or self.llm_stream or configs.llm.stream,
|
106
|
+
stream=ok(kwargs.get("stream") or self.llm_stream or configs.llm.stream, "stream is not set at any place"),
|
99
107
|
cache={
|
100
108
|
"no-cache": kwargs.get("no_cache"),
|
101
109
|
"no-store": kwargs.get("no_store"),
|
@@ -196,15 +204,15 @@ class LLMUsage(ScopedConfig):
|
|
196
204
|
for q, sm in zip(q_seq, sm_seq, strict=True)
|
197
205
|
]
|
198
206
|
)
|
199
|
-
return [r[0].message.content for r in res]
|
207
|
+
return [r[0].message.content for r in res] # pyright: ignore [reportReturnType, reportAttributeAccessIssue]
|
200
208
|
case (list(q_seq), str(sm)):
|
201
209
|
res = await gather(*[self.ainvoke(n=1, question=q, system_message=sm, **kwargs) for q in q_seq])
|
202
|
-
return [r[0].message.content for r in res]
|
210
|
+
return [r[0].message.content for r in res] # pyright: ignore [reportReturnType, reportAttributeAccessIssue]
|
203
211
|
case (str(q), list(sm_seq)):
|
204
212
|
res = await gather(*[self.ainvoke(n=1, question=q, system_message=sm, **kwargs) for sm in sm_seq])
|
205
|
-
return [r[0].message.content for r in res]
|
213
|
+
return [r[0].message.content for r in res] # pyright: ignore [reportReturnType, reportAttributeAccessIssue]
|
206
214
|
case (str(q), str(sm)):
|
207
|
-
return ((await self.ainvoke(n=1, question=q, system_message=sm, **kwargs))[0]).message.content
|
215
|
+
return ((await self.ainvoke(n=1, question=q, system_message=sm, **kwargs))[0]).message.content # pyright: ignore [reportReturnType, reportAttributeAccessIssue]
|
208
216
|
case _:
|
209
217
|
raise RuntimeError("Should not reach here.")
|
210
218
|
|
@@ -213,8 +221,9 @@ class LLMUsage(ScopedConfig):
|
|
213
221
|
self,
|
214
222
|
question: str,
|
215
223
|
validator: Callable[[str], T | None],
|
216
|
-
default: T
|
224
|
+
default: T = ...,
|
217
225
|
max_validations: PositiveInt = 2,
|
226
|
+
co_extractor: Optional[GenerateKwargs] = None,
|
218
227
|
**kwargs: Unpack[GenerateKwargs],
|
219
228
|
) -> T: ...
|
220
229
|
@overload
|
@@ -222,8 +231,9 @@ class LLMUsage(ScopedConfig):
|
|
222
231
|
self,
|
223
232
|
question: List[str],
|
224
233
|
validator: Callable[[str], T | None],
|
225
|
-
default: T
|
234
|
+
default: T = ...,
|
226
235
|
max_validations: PositiveInt = 2,
|
236
|
+
co_extractor: Optional[GenerateKwargs] = None,
|
227
237
|
**kwargs: Unpack[GenerateKwargs],
|
228
238
|
) -> List[T]: ...
|
229
239
|
@overload
|
@@ -233,6 +243,7 @@ class LLMUsage(ScopedConfig):
|
|
233
243
|
validator: Callable[[str], T | None],
|
234
244
|
default: None = None,
|
235
245
|
max_validations: PositiveInt = 2,
|
246
|
+
co_extractor: Optional[GenerateKwargs] = None,
|
236
247
|
**kwargs: Unpack[GenerateKwargs],
|
237
248
|
) -> Optional[T]: ...
|
238
249
|
|
@@ -243,6 +254,7 @@ class LLMUsage(ScopedConfig):
|
|
243
254
|
validator: Callable[[str], T | None],
|
244
255
|
default: None = None,
|
245
256
|
max_validations: PositiveInt = 2,
|
257
|
+
co_extractor: Optional[GenerateKwargs] = None,
|
246
258
|
**kwargs: Unpack[GenerateKwargs],
|
247
259
|
) -> List[Optional[T]]: ...
|
248
260
|
|
@@ -252,6 +264,7 @@ class LLMUsage(ScopedConfig):
|
|
252
264
|
validator: Callable[[str], T | None],
|
253
265
|
default: Optional[T] = None,
|
254
266
|
max_validations: PositiveInt = 2,
|
267
|
+
co_extractor: Optional[GenerateKwargs] = None,
|
255
268
|
**kwargs: Unpack[GenerateKwargs],
|
256
269
|
) -> Optional[T] | List[Optional[T]] | List[T] | T:
|
257
270
|
"""Asynchronously asks a question and validates the response using a given validator.
|
@@ -261,6 +274,7 @@ class LLMUsage(ScopedConfig):
|
|
261
274
|
validator (Callable[[str], T | None]): A function to validate the response.
|
262
275
|
default (T | None): Default value to return if validation fails. Defaults to None.
|
263
276
|
max_validations (PositiveInt): Maximum number of validation attempts. Defaults to 2.
|
277
|
+
co_extractor (Optional[GenerateKwargs]): Keyword arguments for the co-extractor, if provided will enable co-extraction.
|
264
278
|
**kwargs (Unpack[LLMKwargs]): Additional keyword arguments for the LLM usage.
|
265
279
|
|
266
280
|
Returns:
|
@@ -274,11 +288,29 @@ class LLMUsage(ScopedConfig):
|
|
274
288
|
if (response := await self.aask(question=q, **kwargs)) and (validated := validator(response)):
|
275
289
|
logger.debug(f"Successfully validated the response at {lap}th attempt.")
|
276
290
|
return validated
|
291
|
+
|
292
|
+
if co_extractor and (
|
293
|
+
(
|
294
|
+
co_response := await self.aask(
|
295
|
+
question=(
|
296
|
+
TEMPLATE_MANAGER.render_template(
|
297
|
+
configs.templates.co_validation_template,
|
298
|
+
{"original_q": q, "original_a": response},
|
299
|
+
)
|
300
|
+
),
|
301
|
+
**co_extractor,
|
302
|
+
)
|
303
|
+
)
|
304
|
+
and (validated := validator(co_response))
|
305
|
+
):
|
306
|
+
logger.debug(f"Successfully validated the co-response at {lap}th attempt.")
|
307
|
+
return validated
|
277
308
|
except Exception as e: # noqa: BLE001
|
278
309
|
logger.error(f"Error during validation: \n{e}")
|
279
310
|
break
|
280
|
-
kwargs
|
281
|
-
|
311
|
+
if not kwargs.get("no_cache"):
|
312
|
+
kwargs["no_cache"] = True
|
313
|
+
logger.debug("Closed the cache for the next attempt")
|
282
314
|
if default is None:
|
283
315
|
logger.error(f"Failed to validate the response after {max_validations} attempts.")
|
284
316
|
return default
|
@@ -290,7 +322,7 @@ class LLMUsage(ScopedConfig):
|
|
290
322
|
|
291
323
|
async def aliststr(
|
292
324
|
self, requirement: str, k: NonNegativeInt = 0, **kwargs: Unpack[ValidateKwargs[List[str]]]
|
293
|
-
) -> List[str]:
|
325
|
+
) -> Optional[List[str]]:
|
294
326
|
"""Asynchronously generates a list of strings based on a given requirement.
|
295
327
|
|
296
328
|
Args:
|
@@ -310,7 +342,7 @@ class LLMUsage(ScopedConfig):
|
|
310
342
|
**kwargs,
|
311
343
|
)
|
312
344
|
|
313
|
-
async def apathstr(self, requirement: str, **kwargs: Unpack[ChooseKwargs[List[str]]]) -> List[str]:
|
345
|
+
async def apathstr(self, requirement: str, **kwargs: Unpack[ChooseKwargs[List[str]]]) -> Optional[List[str]]:
|
314
346
|
"""Asynchronously generates a list of strings based on a given requirement.
|
315
347
|
|
316
348
|
Args:
|
@@ -338,7 +370,7 @@ class LLMUsage(ScopedConfig):
|
|
338
370
|
Returns:
|
339
371
|
str: The validated response as a single string.
|
340
372
|
"""
|
341
|
-
return (
|
373
|
+
return ok(
|
342
374
|
await self.apathstr(
|
343
375
|
requirement,
|
344
376
|
k=1,
|
@@ -346,7 +378,7 @@ class LLMUsage(ScopedConfig):
|
|
346
378
|
)
|
347
379
|
).pop()
|
348
380
|
|
349
|
-
async def ageneric_string(self, requirement: str, **kwargs: Unpack[ValidateKwargs[str]]) -> str:
|
381
|
+
async def ageneric_string(self, requirement: str, **kwargs: Unpack[ValidateKwargs[str]]) -> Optional[str]:
|
350
382
|
"""Asynchronously generates a generic string based on a given requirement.
|
351
383
|
|
352
384
|
Args:
|
@@ -356,7 +388,7 @@ class LLMUsage(ScopedConfig):
|
|
356
388
|
Returns:
|
357
389
|
str: The generated string.
|
358
390
|
"""
|
359
|
-
return await self.aask_validate(
|
391
|
+
return await self.aask_validate( # pyright: ignore [reportReturnType]
|
360
392
|
TEMPLATE_MANAGER.render_template(
|
361
393
|
configs.templates.generic_string_template,
|
362
394
|
{"requirement": requirement, "language": GenericCapture.capture_type},
|
@@ -371,7 +403,7 @@ class LLMUsage(ScopedConfig):
|
|
371
403
|
choices: List[T],
|
372
404
|
k: NonNegativeInt = 0,
|
373
405
|
**kwargs: Unpack[ValidateKwargs[List[T]]],
|
374
|
-
) -> List[T]:
|
406
|
+
) -> Optional[List[T]]:
|
375
407
|
"""Asynchronously executes a multi-choice decision-making process, generating a prompt based on the instruction and options, and validates the returned selection results.
|
376
408
|
|
377
409
|
Args:
|
@@ -436,13 +468,13 @@ class LLMUsage(ScopedConfig):
|
|
436
468
|
Raises:
|
437
469
|
ValueError: If validation fails after maximum attempts or if no valid selection is made.
|
438
470
|
"""
|
439
|
-
return (
|
471
|
+
return ok(
|
440
472
|
await self.achoose(
|
441
473
|
instruction=instruction,
|
442
474
|
choices=choices,
|
443
475
|
k=1,
|
444
476
|
**kwargs,
|
445
|
-
)
|
477
|
+
),
|
446
478
|
)[0]
|
447
479
|
|
448
480
|
async def ajudge(
|
@@ -499,7 +531,7 @@ class EmbeddingUsage(LLMUsage):
|
|
499
531
|
"""
|
500
532
|
# check seq length
|
501
533
|
max_len = self.embedding_max_sequence_length or configs.embedding.max_sequence_length
|
502
|
-
if any(len(t) > max_len for t in input_text):
|
534
|
+
if max_len and any(len(t) > max_len for t in input_text):
|
503
535
|
logger.error(err := f"Input text exceeds maximum sequence length {max_len}.")
|
504
536
|
raise ValueError(err)
|
505
537
|
|
@@ -513,10 +545,10 @@ class EmbeddingUsage(LLMUsage):
|
|
513
545
|
or configs.embedding.timeout
|
514
546
|
or self.llm_timeout
|
515
547
|
or configs.llm.timeout,
|
516
|
-
api_key=(
|
548
|
+
api_key=ok(
|
517
549
|
self.embedding_api_key or configs.embedding.api_key or self.llm_api_key or configs.llm.api_key
|
518
550
|
).get_secret_value(),
|
519
|
-
api_base=(
|
551
|
+
api_base=ok(
|
520
552
|
self.embedding_api_endpoint
|
521
553
|
or configs.embedding.api_endpoint
|
522
554
|
or self.llm_api_endpoint
|
@@ -565,7 +597,7 @@ class ToolBoxUsage(LLMUsage):
|
|
565
597
|
self,
|
566
598
|
task: Task,
|
567
599
|
**kwargs: Unpack[ChooseKwargs[List[ToolBox]]],
|
568
|
-
) -> List[ToolBox]:
|
600
|
+
) -> Optional[List[ToolBox]]:
|
569
601
|
"""Asynchronously executes a multi-choice decision-making process to choose toolboxes.
|
570
602
|
|
571
603
|
Args:
|
@@ -590,7 +622,7 @@ class ToolBoxUsage(LLMUsage):
|
|
590
622
|
task: Task,
|
591
623
|
toolbox: ToolBox,
|
592
624
|
**kwargs: Unpack[ChooseKwargs[List[Tool]]],
|
593
|
-
) -> List[Tool]:
|
625
|
+
) -> Optional[List[Tool]]:
|
594
626
|
"""Asynchronously executes a multi-choice decision-making process to choose tools.
|
595
627
|
|
596
628
|
Args:
|
@@ -630,11 +662,11 @@ class ToolBoxUsage(LLMUsage):
|
|
630
662
|
tool_choose_kwargs = tool_choose_kwargs or {}
|
631
663
|
|
632
664
|
# Choose the toolboxes
|
633
|
-
chosen_toolboxes = await self.choose_toolboxes(task, **box_choose_kwargs)
|
665
|
+
chosen_toolboxes = ok(await self.choose_toolboxes(task, **box_choose_kwargs))
|
634
666
|
# Choose the tools
|
635
667
|
chosen_tools = []
|
636
668
|
for toolbox in chosen_toolboxes:
|
637
|
-
chosen_tools.extend(await self.choose_tools(task, toolbox, **tool_choose_kwargs))
|
669
|
+
chosen_tools.extend(ok(await self.choose_tools(task, toolbox, **tool_choose_kwargs)))
|
638
670
|
return chosen_tools
|
639
671
|
|
640
672
|
async def gather_tools(self, task: Task, **kwargs: Unpack[ChooseKwargs]) -> List[Tool]:
|
fabricatio/models/utils.py
CHANGED
@@ -165,3 +165,24 @@ async def ask_edit(
|
|
165
165
|
if edited:
|
166
166
|
res.append(edited)
|
167
167
|
return res
|
168
|
+
|
169
|
+
|
170
|
+
def override_kwargs[T](kwargs: Dict[str, T], **overrides) -> Dict[str, T]:
|
171
|
+
"""Override the values in kwargs with the provided overrides."""
|
172
|
+
kwargs.update({k: v for k, v in overrides.items() if v is not None})
|
173
|
+
return kwargs
|
174
|
+
|
175
|
+
|
176
|
+
def ok[T](val: Optional[T], msg:str="Value is None") -> T:
|
177
|
+
"""Check if a value is None and raise a ValueError with the provided message if it is.
|
178
|
+
|
179
|
+
Args:
|
180
|
+
val: The value to check.
|
181
|
+
msg: The message to include in the ValueError if val is None.
|
182
|
+
|
183
|
+
Returns:
|
184
|
+
T: The value if it is not None.
|
185
|
+
"""
|
186
|
+
if val is None:
|
187
|
+
raise ValueError(msg)
|
188
|
+
return val
|
fabricatio/parser.py
CHANGED
Binary file
|
@@ -1,33 +1,33 @@
|
|
1
|
-
fabricatio-0.2.6.
|
2
|
-
fabricatio-0.2.6.
|
3
|
-
fabricatio-0.2.6.
|
4
|
-
fabricatio/actions/article.py,sha256=
|
1
|
+
fabricatio-0.2.6.dev6.dist-info/METADATA,sha256=b28GiuNopBEWlnMn7RmUNnS5MbiuFIU_wGXEGuH6gCY,14085
|
2
|
+
fabricatio-0.2.6.dev6.dist-info/WHEEL,sha256=mDFV3bKFgwlxLHvOsPqpR9up9dUKYzsUQNKBdkW5c08,94
|
3
|
+
fabricatio-0.2.6.dev6.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
|
4
|
+
fabricatio/actions/article.py,sha256=LfIWnbFYB9e3Bq2YDPk1geWDbJTq7zCitLtpFhAhYHM,4563
|
5
5
|
fabricatio/actions/output.py,sha256=KSSLvEvXsA10ACN2mbqGo98QwKLVUAoMUJNKYk6HhGc,645
|
6
6
|
fabricatio/actions/rag.py,sha256=GpT7YlqOYznZyaT-6Y84_33HtZGT-5s71ZK8iroQA9g,813
|
7
7
|
fabricatio/capabilities/correct.py,sha256=0BYhjo9WrLwKsXQR8bTPvdQITbrMs7RX1xpzhuQt_yY,5222
|
8
8
|
fabricatio/capabilities/propose.py,sha256=y3kge5g6bb8HYuV8e9h4MdqOMTlsfAIZpqE_cagWPTY,1593
|
9
|
-
fabricatio/capabilities/rag.py,sha256=
|
9
|
+
fabricatio/capabilities/rag.py,sha256=VcFusFHb5Lz58kfd14JIrCh78uJkAs47SS6-bIGkwFo,15789
|
10
10
|
fabricatio/capabilities/rating.py,sha256=R9otyZVE2E3kKxrOCTZMeesBCPbC-fSb7bXgZPMQzfU,14406
|
11
11
|
fabricatio/capabilities/review.py,sha256=XYzpSnFCT9HS2XytQT8HDgV4SjXehexoJgucZFMx6P8,11102
|
12
|
-
fabricatio/capabilities/task.py,sha256=
|
13
|
-
fabricatio/config.py,sha256=
|
12
|
+
fabricatio/capabilities/task.py,sha256=MBiDyC3oHwTbTiLiGyqUEVfVGSN42lU03ndeapTpyjQ,4609
|
13
|
+
fabricatio/config.py,sha256=f3B_Mwhc4mGEdECG4EqcxGww0Eu7KhCAwPXXJlHf1a8,16635
|
14
14
|
fabricatio/core.py,sha256=VQ_JKgUGIy2gZ8xsTBZCdr_IP7wC5aPg0_bsOmjQ588,6458
|
15
15
|
fabricatio/decorators.py,sha256=uzsP4tFKQNjDHBkofsjjoJA0IUAaYOtt6YVedoyOqlo,6551
|
16
16
|
fabricatio/fs/curd.py,sha256=N6l2MncjrFfnXBRtteRouXp5Rjy8EAKC_i29_G-zz98,4618
|
17
17
|
fabricatio/fs/readers.py,sha256=EZKN_AZdrp8DggJECP53QHw3uHeSDf-AwCAA_V7fNKU,1202
|
18
18
|
fabricatio/fs/__init__.py,sha256=PCf0s_9KDjVfNw7AfPoJzGt3jMq4gJOfbcT4pb0D0ZY,588
|
19
19
|
fabricatio/journal.py,sha256=stnEP88aUBA_GmU9gfTF2EZI8FS2OyMLGaMSTgK4QgA,476
|
20
|
-
fabricatio/models/action.py,sha256=
|
20
|
+
fabricatio/models/action.py,sha256=dSmwIrW68JhCrkhWENRgTLIQ-0grVA4408QAUy23HZo,8210
|
21
21
|
fabricatio/models/events.py,sha256=QvlnS8FEELg6KNabcJMeh2GV_y0ZBzKOPphcteKYWYU,4183
|
22
|
-
fabricatio/models/extra.py,sha256=
|
22
|
+
fabricatio/models/extra.py,sha256=nFB9WSqHVs6V7OVhLfRLnzFObaOJldRcrYdsC93ZCDY,13787
|
23
23
|
fabricatio/models/generic.py,sha256=IdPJMf3qxZFq8yqd6OuAYKfCM0wBlJkozgxvxQZVEEc,14025
|
24
|
-
fabricatio/models/kwargs_types.py,sha256=
|
25
|
-
fabricatio/models/role.py,sha256=
|
24
|
+
fabricatio/models/kwargs_types.py,sha256=XiXuHLWttp8MjNqQr1WdMFYVKVZdsa5Vg0nHLhNKCyA,4627
|
25
|
+
fabricatio/models/role.py,sha256=mmQbJ6GKr2Gx3wtjEz8d-vYoXs09ffcEkT_eCXaDd3E,2782
|
26
26
|
fabricatio/models/task.py,sha256=8NaR7ojQWyM740EDTqt9stwHKdrD6axCRpLKo0QzS-I,10492
|
27
27
|
fabricatio/models/tool.py,sha256=4b-v4WIC_LuLOKzzXL9bvKXr8vmGZ8O2uAFv5-1KRA0,7052
|
28
|
-
fabricatio/models/usages.py,sha256
|
29
|
-
fabricatio/models/utils.py,sha256=
|
30
|
-
fabricatio/parser.py,sha256=
|
28
|
+
fabricatio/models/usages.py,sha256=-689ssQ5F1SmxDToDHbv0EH8YaPTjhkn14l_M6Aer-M,30859
|
29
|
+
fabricatio/models/utils.py,sha256=3HW0tM6WwOK8g14tnIzVWTXzIRLHjMKPjjSl9pMRWkw,5668
|
30
|
+
fabricatio/parser.py,sha256=9Jzw-yV6uKbFvf6sPna-XHdziVGVBZWvPctgX_6ODL8,6251
|
31
31
|
fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
32
|
fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
|
33
33
|
fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
|
@@ -37,6 +37,6 @@ fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,5
|
|
37
37
|
fabricatio/_rust.pyi,sha256=eawBfpyGrB-JtOh4I6RSbjFSq83SSl-0syBeZ-g8270,3491
|
38
38
|
fabricatio/_rust_instances.py,sha256=2GwF8aVfYNemRI2feBzH1CZfBGno-XJJE5imJokGEYw,314
|
39
39
|
fabricatio/__init__.py,sha256=SzBYsRhZeL77jLtfJEjmoHOSwHwUGyvMATX6xfndLDM,1135
|
40
|
-
fabricatio/_rust.cp39-win_amd64.pyd,sha256=
|
41
|
-
fabricatio-0.2.6.
|
42
|
-
fabricatio-0.2.6.
|
40
|
+
fabricatio/_rust.cp39-win_amd64.pyd,sha256=0xarl48qmXpp_BFtTKkg0cm6aLNGDviWyY3gPKMOL9Y,1826304
|
41
|
+
fabricatio-0.2.6.dev6.data/scripts/tdown.exe,sha256=sfJBs8p8BKKChg9vZPVR7PNnNgv9hqUm3uZ3558Zxqk,3397632
|
42
|
+
fabricatio-0.2.6.dev6.dist-info/RECORD,,
|
File without changes
|