fabricatio 0.2.10.dev1__cp312-cp312-win_amd64.whl → 0.2.11__cp312-cp312-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/actions/article.py +55 -10
- fabricatio/actions/article_rag.py +268 -14
- fabricatio/actions/fs.py +25 -0
- fabricatio/actions/output.py +17 -3
- fabricatio/actions/rag.py +3 -3
- fabricatio/actions/rules.py +14 -3
- fabricatio/capabilities/extract.py +70 -0
- fabricatio/capabilities/rating.py +5 -2
- fabricatio/capabilities/task.py +16 -16
- fabricatio/config.py +9 -2
- fabricatio/decorators.py +43 -26
- fabricatio/fs/__init__.py +9 -2
- fabricatio/fs/readers.py +6 -10
- fabricatio/models/action.py +16 -11
- fabricatio/models/extra/aricle_rag.py +143 -9
- fabricatio/models/extra/article_base.py +56 -7
- fabricatio/models/extra/article_main.py +102 -6
- fabricatio/models/extra/problem.py +5 -1
- fabricatio/models/generic.py +31 -13
- fabricatio/models/kwargs_types.py +4 -2
- fabricatio/models/task.py +13 -1
- fabricatio/models/usages.py +10 -27
- fabricatio/parser.py +16 -12
- fabricatio/rust.cp312-win_amd64.pyd +0 -0
- fabricatio/rust.pyi +167 -62
- fabricatio/utils.py +38 -11
- fabricatio-0.2.11.data/scripts/tdown.exe +0 -0
- {fabricatio-0.2.10.dev1.dist-info → fabricatio-0.2.11.dist-info}/METADATA +20 -9
- {fabricatio-0.2.10.dev1.dist-info → fabricatio-0.2.11.dist-info}/RECORD +31 -29
- fabricatio-0.2.10.dev1.data/scripts/tdown.exe +0 -0
- {fabricatio-0.2.10.dev1.dist-info → fabricatio-0.2.11.dist-info}/WHEEL +0 -0
- {fabricatio-0.2.10.dev1.dist-info → fabricatio-0.2.11.dist-info}/licenses/LICENSE +0 -0
fabricatio/rust.pyi
CHANGED
@@ -12,7 +12,7 @@ Key Features:
|
|
12
12
|
"""
|
13
13
|
|
14
14
|
from pathlib import Path
|
15
|
-
from typing import Any, Dict, List, Optional
|
15
|
+
from typing import Any, Dict, List, Optional, overload
|
16
16
|
|
17
17
|
class TemplateManager:
|
18
18
|
"""Template rendering engine using Handlebars templates.
|
@@ -54,86 +54,39 @@ class TemplateManager:
|
|
54
54
|
This refreshes the template cache, finding any new or modified templates.
|
55
55
|
"""
|
56
56
|
|
57
|
-
|
57
|
+
@overload
|
58
|
+
def render_template(self, name: str, data: Dict[str, Any]) -> str: ...
|
59
|
+
@overload
|
60
|
+
def render_template(self, name: str, data: List[Dict[str, Any]]) -> List[str]: ...
|
61
|
+
def render_template(self, name: str, data: Dict[str, Any] | List[Dict[str, Any]]) -> str | List[str]:
|
58
62
|
"""Render a template with context data.
|
59
63
|
|
60
64
|
Args:
|
61
65
|
name: Template name (without extension)
|
62
|
-
data: Context dictionary to provide variables to the template
|
66
|
+
data: Context dictionary or list of dictionaries to provide variables to the template
|
63
67
|
|
64
68
|
Returns:
|
65
|
-
Rendered template content as string
|
69
|
+
Rendered template content as string or list of strings
|
66
70
|
|
67
71
|
Raises:
|
68
72
|
RuntimeError: If template rendering fails
|
69
73
|
"""
|
70
74
|
|
71
|
-
|
75
|
+
@overload
|
76
|
+
def render_template_raw(self, template: str, data: Dict[str, Any]) -> str: ...
|
77
|
+
@overload
|
78
|
+
def render_template_raw(self, template: str, data: List[Dict[str, Any]]) -> List[str]: ...
|
79
|
+
def render_template_raw(self, template: str, data: Dict[str, Any] | List[Dict[str, Any]]) -> str | List[str]:
|
72
80
|
"""Render a template with context data.
|
73
81
|
|
74
82
|
Args:
|
75
83
|
template: The template string
|
76
|
-
data: Context dictionary to provide variables to the template
|
84
|
+
data: Context dictionary or list of dictionaries to provide variables to the template
|
77
85
|
|
78
86
|
Returns:
|
79
|
-
Rendered template content as string
|
87
|
+
Rendered template content as string or list of strings
|
80
88
|
"""
|
81
89
|
|
82
|
-
def blake3_hash(content: bytes) -> str:
|
83
|
-
"""Calculate the BLAKE3 cryptographic hash of data.
|
84
|
-
|
85
|
-
Args:
|
86
|
-
content: Bytes to be hashed
|
87
|
-
|
88
|
-
Returns:
|
89
|
-
Hex-encoded BLAKE3 hash string
|
90
|
-
"""
|
91
|
-
|
92
|
-
def detect_language(string: str) -> str:
|
93
|
-
"""Detect the language of a given string."""
|
94
|
-
|
95
|
-
def split_word_bounds(string: str) -> List[str]:
|
96
|
-
"""Split the string into words based on word boundaries.
|
97
|
-
|
98
|
-
Args:
|
99
|
-
string: The input string to be split.
|
100
|
-
|
101
|
-
Returns:
|
102
|
-
A list of words extracted from the string.
|
103
|
-
"""
|
104
|
-
|
105
|
-
def split_sentence_bounds(string: str) -> List[str]:
|
106
|
-
"""Split the string into sentences based on sentence boundaries.
|
107
|
-
|
108
|
-
Args:
|
109
|
-
string: The input string to be split.
|
110
|
-
|
111
|
-
Returns:
|
112
|
-
A list of sentences extracted from the string.
|
113
|
-
"""
|
114
|
-
|
115
|
-
def split_into_chunks(string: str, max_chunk_size: int, max_overlapping_rate: float = 0.3) -> List[str]:
|
116
|
-
"""Split the string into chunks of a specified size.
|
117
|
-
|
118
|
-
Args:
|
119
|
-
string: The input string to be split.
|
120
|
-
max_chunk_size: The maximum size of each chunk.
|
121
|
-
max_overlapping_rate: The minimum overlapping rate between chunks.
|
122
|
-
|
123
|
-
Returns:
|
124
|
-
A list of chunks extracted from the string.
|
125
|
-
"""
|
126
|
-
|
127
|
-
def word_count(string: str) -> int:
|
128
|
-
"""Count the number of words in the string.
|
129
|
-
|
130
|
-
Args:
|
131
|
-
string: The input string to count words from.
|
132
|
-
|
133
|
-
Returns:
|
134
|
-
The number of words in the string.
|
135
|
-
"""
|
136
|
-
|
137
90
|
class BibManager:
|
138
91
|
"""BibTeX bibliography manager for parsing and querying citation data."""
|
139
92
|
|
@@ -156,6 +109,7 @@ class BibManager:
|
|
156
109
|
Returns:
|
157
110
|
Citation key if exact match found, None otherwise
|
158
111
|
"""
|
112
|
+
|
159
113
|
def get_cite_key_by_title_fuzzy(self, title: str) -> Optional[str]:
|
160
114
|
"""Find citation key by fuzzy title match.
|
161
115
|
|
@@ -219,6 +173,7 @@ class BibManager:
|
|
219
173
|
Returns:
|
220
174
|
Abstract if found, None otherwise
|
221
175
|
"""
|
176
|
+
|
222
177
|
def get_title_by_key(self, key: str) -> Optional[str]:
|
223
178
|
"""Retrieve the title by citation key.
|
224
179
|
|
@@ -239,3 +194,153 @@ class BibManager:
|
|
239
194
|
Returns:
|
240
195
|
Field value if found, None otherwise
|
241
196
|
"""
|
197
|
+
|
198
|
+
def blake3_hash(content: bytes) -> str:
|
199
|
+
"""Calculate the BLAKE3 cryptographic hash of data.
|
200
|
+
|
201
|
+
Args:
|
202
|
+
content: Bytes to be hashed
|
203
|
+
|
204
|
+
Returns:
|
205
|
+
Hex-encoded BLAKE3 hash string
|
206
|
+
"""
|
207
|
+
|
208
|
+
def detect_language(string: str) -> str:
|
209
|
+
"""Detect the language of a given string."""
|
210
|
+
|
211
|
+
def split_word_bounds(string: str) -> List[str]:
|
212
|
+
"""Split the string into words based on word boundaries.
|
213
|
+
|
214
|
+
Args:
|
215
|
+
string: The input string to be split.
|
216
|
+
|
217
|
+
Returns:
|
218
|
+
A list of words extracted from the string.
|
219
|
+
"""
|
220
|
+
|
221
|
+
def split_sentence_bounds(string: str) -> List[str]:
|
222
|
+
"""Split the string into sentences based on sentence boundaries.
|
223
|
+
|
224
|
+
Args:
|
225
|
+
string: The input string to be split.
|
226
|
+
|
227
|
+
Returns:
|
228
|
+
A list of sentences extracted from the string.
|
229
|
+
"""
|
230
|
+
|
231
|
+
def split_into_chunks(string: str, max_chunk_size: int, max_overlapping_rate: float = 0.3) -> List[str]:
|
232
|
+
"""Split the string into chunks of a specified size.
|
233
|
+
|
234
|
+
Args:
|
235
|
+
string: The input string to be split.
|
236
|
+
max_chunk_size: The maximum size of each chunk.
|
237
|
+
max_overlapping_rate: The minimum overlapping rate between chunks.
|
238
|
+
|
239
|
+
Returns:
|
240
|
+
A list of chunks extracted from the string.
|
241
|
+
"""
|
242
|
+
|
243
|
+
def word_count(string: str) -> int:
|
244
|
+
"""Count the number of words in the string.
|
245
|
+
|
246
|
+
Args:
|
247
|
+
string: The input string to count words from.
|
248
|
+
|
249
|
+
Returns:
|
250
|
+
The number of words in the string.
|
251
|
+
"""
|
252
|
+
|
253
|
+
def is_chinese(string: str) -> bool:
|
254
|
+
"""Check if the given string is in Chinese."""
|
255
|
+
|
256
|
+
def is_english(string: str) -> bool:
|
257
|
+
"""Check if the given string is in English."""
|
258
|
+
|
259
|
+
def is_japanese(string: str) -> bool:
|
260
|
+
"""Check if the given string is in Japanese."""
|
261
|
+
|
262
|
+
def is_korean(string: str) -> bool:
|
263
|
+
"""Check if the given string is in Korean."""
|
264
|
+
|
265
|
+
def is_arabic(string: str) -> bool:
|
266
|
+
"""Check if the given string is in Arabic."""
|
267
|
+
|
268
|
+
def is_russian(string: str) -> bool:
|
269
|
+
"""Check if the given string is in Russian."""
|
270
|
+
|
271
|
+
def is_german(string: str) -> bool:
|
272
|
+
"""Check if the given string is in German."""
|
273
|
+
|
274
|
+
def is_french(string: str) -> bool:
|
275
|
+
"""Check if the given string is in French."""
|
276
|
+
|
277
|
+
def is_hindi(string: str) -> bool:
|
278
|
+
"""Check if the given string is in Hindi."""
|
279
|
+
|
280
|
+
def is_italian(string: str) -> bool:
|
281
|
+
"""Check if the given string is in Italian."""
|
282
|
+
|
283
|
+
def is_dutch(string: str) -> bool:
|
284
|
+
"""Check if the given string is in Dutch."""
|
285
|
+
|
286
|
+
def is_portuguese(string: str) -> bool:
|
287
|
+
"""Check if the given string is in Portuguese."""
|
288
|
+
|
289
|
+
def is_swedish(string: str) -> bool:
|
290
|
+
"""Check if the given string is in Swedish."""
|
291
|
+
|
292
|
+
def is_turkish(string: str) -> bool:
|
293
|
+
"""Check if the given string is in Turkish."""
|
294
|
+
|
295
|
+
def is_vietnamese(string: str) -> bool:
|
296
|
+
"""Check if the given string is in Vietnamese."""
|
297
|
+
|
298
|
+
def tex_to_typst(string: str) -> str:
|
299
|
+
"""Convert TeX to Typst.
|
300
|
+
|
301
|
+
Args:
|
302
|
+
string: The input TeX string to be converted.
|
303
|
+
|
304
|
+
Returns:
|
305
|
+
The converted Typst string.
|
306
|
+
"""
|
307
|
+
|
308
|
+
def convert_all_inline_tex(string: str) -> str:
|
309
|
+
"""Convert all inline TeX code in the string.
|
310
|
+
|
311
|
+
Args:
|
312
|
+
string: The input string containing inline TeX code wrapped in $code$.
|
313
|
+
|
314
|
+
Returns:
|
315
|
+
The converted string with inline TeX code replaced.
|
316
|
+
"""
|
317
|
+
|
318
|
+
def convert_all_block_tex(string: str) -> str:
|
319
|
+
"""Convert all block TeX code in the string.
|
320
|
+
|
321
|
+
Args:
|
322
|
+
string: The input string containing block TeX code wrapped in $$code$$.
|
323
|
+
|
324
|
+
Returns:
|
325
|
+
The converted string with block TeX code replaced.
|
326
|
+
"""
|
327
|
+
|
328
|
+
def comment(string: str) -> str:
|
329
|
+
"""Add comment to the string.
|
330
|
+
|
331
|
+
Args:
|
332
|
+
string: The input string to which comments will be added.
|
333
|
+
|
334
|
+
Returns:
|
335
|
+
The string with each line prefixed by '// '.
|
336
|
+
"""
|
337
|
+
|
338
|
+
def uncomment(string: str) -> str:
|
339
|
+
"""Remove comment from the string.
|
340
|
+
|
341
|
+
Args:
|
342
|
+
string: The input string from which comments will be removed.
|
343
|
+
|
344
|
+
Returns:
|
345
|
+
The string with comments (lines starting with '// ' or '//') removed.
|
346
|
+
"""
|
fabricatio/utils.py
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
"""A collection of utility functions for the fabricatio package."""
|
2
2
|
|
3
|
-
from typing import Any, Dict, List, Mapping, Optional
|
3
|
+
from typing import Any, Dict, List, Mapping, Optional, overload
|
4
4
|
|
5
|
-
from
|
5
|
+
from fabricatio.decorators import precheck_package
|
6
6
|
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
)
|
8
|
+
@precheck_package(
|
9
|
+
"questionary", "'questionary' is required to run this function. Have you installed `fabricatio[qa]`?."
|
10
|
+
)
|
11
|
+
async def ask_edit(text_seq: List[str]) -> List[str]:
|
11
12
|
"""Asks the user to edit a list of texts.
|
12
13
|
|
13
14
|
Args:
|
@@ -17,6 +18,8 @@ async def ask_edit(
|
|
17
18
|
List[str]: A list of edited texts.
|
18
19
|
If the user does not edit a text, it will not be included in the returned list.
|
19
20
|
"""
|
21
|
+
from questionary import text
|
22
|
+
|
20
23
|
res = []
|
21
24
|
for i, t in enumerate(text_seq):
|
22
25
|
edited = await text(f"[{i}] ", default=t).ask_async()
|
@@ -25,17 +28,40 @@ async def ask_edit(
|
|
25
28
|
return res
|
26
29
|
|
27
30
|
|
31
|
+
@overload
|
32
|
+
async def ask_retain[V](candidates: List[str]) -> List[str]: ...
|
33
|
+
|
34
|
+
|
35
|
+
@overload
|
36
|
+
async def ask_retain[V](candidates: List[str], value_mapping: List[V]) -> List[V]: ...
|
37
|
+
|
38
|
+
|
39
|
+
@precheck_package(
|
40
|
+
"questionary", "'questionary' is required to run this function. Have you installed `fabricatio[qa]`?."
|
41
|
+
)
|
42
|
+
async def ask_retain[V](candidates: List[str], value_mapping: Optional[List[V]] = None) -> List[str] | List[V]:
|
43
|
+
"""Asks the user to retain a list of candidates."""
|
44
|
+
from questionary import Choice, checkbox
|
45
|
+
|
46
|
+
return await checkbox(
|
47
|
+
"Please choose those that should be retained.",
|
48
|
+
choices=[Choice(p, value=p, checked=True) for p in candidates]
|
49
|
+
if value_mapping is None
|
50
|
+
else [Choice(p, value=v, checked=True) for p, v in zip(candidates, value_mapping, strict=True)],
|
51
|
+
).ask_async()
|
52
|
+
|
53
|
+
|
28
54
|
def override_kwargs(kwargs: Mapping[str, Any], **overrides) -> Dict[str, Any]:
|
29
55
|
"""Override the values in kwargs with the provided overrides."""
|
30
56
|
new_kwargs = dict(kwargs.items())
|
31
|
-
new_kwargs.update(
|
57
|
+
new_kwargs.update(overrides)
|
32
58
|
return new_kwargs
|
33
59
|
|
34
60
|
|
35
|
-
def fallback_kwargs(kwargs: Mapping[str, Any], **
|
36
|
-
"""Fallback the values in kwargs with the provided
|
61
|
+
def fallback_kwargs(kwargs: Mapping[str, Any], **fallbacks) -> Dict[str, Any]:
|
62
|
+
"""Fallback the values in kwargs with the provided fallbacks."""
|
37
63
|
new_kwargs = dict(kwargs.items())
|
38
|
-
new_kwargs.update({k: v for k, v in
|
64
|
+
new_kwargs.update({k: v for k, v in fallbacks.items() if k not in new_kwargs})
|
39
65
|
return new_kwargs
|
40
66
|
|
41
67
|
|
@@ -54,14 +80,15 @@ def ok[T](val: Optional[T], msg: str = "Value is None") -> T:
|
|
54
80
|
return val
|
55
81
|
|
56
82
|
|
57
|
-
def wrapp_in_block(string: str, title: str) -> str:
|
83
|
+
def wrapp_in_block(string: str, title: str, style: str = "-") -> str:
|
58
84
|
"""Wraps a string in a block with a title.
|
59
85
|
|
60
86
|
Args:
|
61
87
|
string: The string to wrap.
|
62
88
|
title: The title of the block.
|
89
|
+
style: The style of the block.
|
63
90
|
|
64
91
|
Returns:
|
65
92
|
str: The wrapped string.
|
66
93
|
"""
|
67
|
-
return f"--- Start of {title} ---\n{string}\n--- End of {title} ---"
|
94
|
+
return f"--- Start of {title} ---\n{string}\n--- End of {title} ---".replace("-", style)
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fabricatio
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.11
|
4
4
|
Classifier: License :: OSI Approved :: MIT License
|
5
5
|
Classifier: Programming Language :: Rust
|
6
6
|
Classifier: Programming Language :: Python :: 3.12
|
@@ -14,23 +14,26 @@ Requires-Dist: asyncstdlib>=3.13.0
|
|
14
14
|
Requires-Dist: json-repair>=0.39.1
|
15
15
|
Requires-Dist: litellm>=1.60.0
|
16
16
|
Requires-Dist: loguru>=0.7.3
|
17
|
-
Requires-Dist: magika>=0.5.1
|
18
17
|
Requires-Dist: more-itertools>=10.6.0
|
19
|
-
Requires-Dist: orjson>=3.10.15
|
20
18
|
Requires-Dist: pydantic>=2.10.6
|
21
19
|
Requires-Dist: pydantic-settings>=2.7.1
|
22
20
|
Requires-Dist: pymitter>=1.0.0
|
23
|
-
Requires-Dist: questionary>=2.1.0
|
24
|
-
Requires-Dist: regex>=2024.11.6
|
25
21
|
Requires-Dist: rich>=13.9.4
|
22
|
+
Requires-Dist: ujson>=5.10.0
|
23
|
+
Requires-Dist: fabricatio[calc,ftd,plot,qa,rag,cli] ; extra == 'full'
|
26
24
|
Requires-Dist: pymilvus>=2.5.4 ; extra == 'rag'
|
27
|
-
Requires-Dist: fabricatio[calc,plot,rag] ; extra == 'full'
|
28
25
|
Requires-Dist: sympy>=1.13.3 ; extra == 'calc'
|
29
26
|
Requires-Dist: matplotlib>=3.10.1 ; extra == 'plot'
|
30
|
-
|
27
|
+
Requires-Dist: questionary>=2.1.0 ; extra == 'qa'
|
28
|
+
Requires-Dist: magika>=0.6.1 ; extra == 'ftd'
|
29
|
+
Requires-Dist: typer-slim[standard]>=0.15.2 ; extra == 'cli'
|
31
30
|
Provides-Extra: full
|
31
|
+
Provides-Extra: rag
|
32
32
|
Provides-Extra: calc
|
33
33
|
Provides-Extra: plot
|
34
|
+
Provides-Extra: qa
|
35
|
+
Provides-Extra: ftd
|
36
|
+
Provides-Extra: cli
|
34
37
|
License-File: LICENSE
|
35
38
|
Summary: A LLM multi-agent framework.
|
36
39
|
Keywords: ai,agents,multi-agent,llm,pyo3
|
@@ -47,7 +50,8 @@ Project-URL: Issues, https://github.com/Whth/fabricatio/issues
|
|
47
50
|
|
48
51
|
## Overview
|
49
52
|
|
50
|
-
Fabricatio is a streamlined Python library for building LLM applications using an event-based agent structure. It
|
53
|
+
Fabricatio is a streamlined Python library for building LLM applications using an event-based agent structure. It
|
54
|
+
leverages Rust for performance-critical tasks, Handlebars for templating, and PyO3 for Python bindings.
|
51
55
|
|
52
56
|
## Features
|
53
57
|
|
@@ -87,6 +91,7 @@ import asyncio
|
|
87
91
|
from fabricatio import Action, Role, Task, logger, WorkFlow
|
88
92
|
from typing import Any
|
89
93
|
|
94
|
+
|
90
95
|
class Hello(Action):
|
91
96
|
name: str = "hello"
|
92
97
|
output_key: str = "task_output"
|
@@ -96,6 +101,7 @@ class Hello(Action):
|
|
96
101
|
logger.info("executing talk action")
|
97
102
|
return ret
|
98
103
|
|
104
|
+
|
99
105
|
async def main() -> None:
|
100
106
|
role = Role(
|
101
107
|
name="talker",
|
@@ -107,6 +113,7 @@ async def main() -> None:
|
|
107
113
|
result = await task.delegate()
|
108
114
|
logger.success(f"Result: {result}")
|
109
115
|
|
116
|
+
|
110
117
|
if __name__ == "__main__":
|
111
118
|
asyncio.run(main())
|
112
119
|
```
|
@@ -114,6 +121,7 @@ if __name__ == "__main__":
|
|
114
121
|
### Examples
|
115
122
|
|
116
123
|
For various usage scenarios, refer to the following examples:
|
124
|
+
|
117
125
|
- Simple Chat
|
118
126
|
- Retrieval-Augmented Generation (RAG)
|
119
127
|
- Article Extraction
|
@@ -161,6 +169,7 @@ max_tokens = 8192
|
|
161
169
|
## Contributing
|
162
170
|
|
163
171
|
Contributions are welcome! Follow these steps:
|
172
|
+
|
164
173
|
1. Fork the repository.
|
165
174
|
2. Create your feature branch (`git checkout -b feature/new-feature`).
|
166
175
|
3. Commit your changes (`git commit -am 'Add new feature'`).
|
@@ -174,6 +183,8 @@ Fabricatio is licensed under the MIT License. See [LICENSE](LICENSE) for details
|
|
174
183
|
## Acknowledgments
|
175
184
|
|
176
185
|
Special thanks to the contributors and maintainers of:
|
186
|
+
|
177
187
|
- [PyO3](https://github.com/PyO3/pyo3)
|
178
188
|
- [Maturin](https://github.com/PyO3/maturin)
|
179
|
-
- [Handlebars.rs](https://github.com/sunng87/handlebars-rust)
|
189
|
+
- [Handlebars.rs](https://github.com/sunng87/handlebars-rust)
|
190
|
+
|
@@ -1,63 +1,65 @@
|
|
1
|
-
fabricatio-0.2.
|
2
|
-
fabricatio-0.2.
|
3
|
-
fabricatio-0.2.
|
4
|
-
fabricatio/actions/article.py,sha256=
|
5
|
-
fabricatio/actions/article_rag.py,sha256=
|
6
|
-
fabricatio/actions/
|
7
|
-
fabricatio/actions/
|
8
|
-
fabricatio/actions/
|
1
|
+
fabricatio-0.2.11.dist-info/METADATA,sha256=wBBVlkmwss-SZ0r5ZLkffvhEv5eYksk-w_uBygWe-pg,5258
|
2
|
+
fabricatio-0.2.11.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
|
3
|
+
fabricatio-0.2.11.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
|
4
|
+
fabricatio/actions/article.py,sha256=SFl1zc0hz9vW2sW4VJm9-w8E7kLEty-2LzXi9wgWMmE,10905
|
5
|
+
fabricatio/actions/article_rag.py,sha256=DuGjW0z5ryVEZddTt3bM4I7B7p7UnDzk7PdIqRvgBd0,17614
|
6
|
+
fabricatio/actions/fs.py,sha256=gJR14U4ln35nt8Z7OWLVAZpqGaLnED-r1Yi-lX22tkI,959
|
7
|
+
fabricatio/actions/output.py,sha256=ttXLC2wZmtVN9Ik8zsA7g45rwBO656LyRjOGRdVSyJA,6977
|
8
|
+
fabricatio/actions/rag.py,sha256=KN-OWgcQjGmNgSZ-s5B8m4LpYKSGFJR8eq72mo2CP9k,3592
|
9
|
+
fabricatio/actions/rules.py,sha256=dkvCgNDjt2KSO1VgPRsxT4YBmIIMeetZb5tiz-slYkU,3640
|
9
10
|
fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
|
10
11
|
fabricatio/capabilities/advanced_judge.py,sha256=selB0Gwf1F4gGJlwBiRo6gI4KOUROgh3WnzO3mZFEls,706
|
11
12
|
fabricatio/capabilities/censor.py,sha256=bBT5qy-kp7fh8g4Lz3labSwxwJ60gGd_vrkc6k1cZ1U,4719
|
12
13
|
fabricatio/capabilities/check.py,sha256=kYqzohhv2bZfl1aKSUt7a8snT8YEl2zgha_ZdAdMMfQ,8622
|
13
14
|
fabricatio/capabilities/correct.py,sha256=W_cInqlciNEhyMK0YI53jk4EvW9uAdge90IO9OElUmA,10420
|
15
|
+
fabricatio/capabilities/extract.py,sha256=PMjkWvbsv57IYT7zzd_xbIu4eQqQjpcmBtJzqlWZhHY,2495
|
14
16
|
fabricatio/capabilities/propose.py,sha256=hkBeSlmcTdfYWT-ph6nlbtHXBozi_JXqXlWcnBy3W78,2007
|
15
17
|
fabricatio/capabilities/rag.py,sha256=kqcunWBC6oA4P1rzIG2Xu9zqSg73H3uKPF41JJQ1HVI,9595
|
16
|
-
fabricatio/capabilities/rating.py,sha256=
|
18
|
+
fabricatio/capabilities/rating.py,sha256=iMtQs3H6vCjuEjiuuz4SRKMVaX7yff7MHWz-slYvi5g,17835
|
17
19
|
fabricatio/capabilities/review.py,sha256=-EMZe0ADFPT6fPGmra16UPjJC1M3rAs6dPFdTZ88Fgg,5060
|
18
|
-
fabricatio/capabilities/task.py,sha256=
|
20
|
+
fabricatio/capabilities/task.py,sha256=uks1U-4LNCUdwdRxAbJJjMc31hOw6jlrcYriuQQfb04,4475
|
19
21
|
fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
|
20
|
-
fabricatio/config.py,sha256=
|
22
|
+
fabricatio/config.py,sha256=okqrVoLhvmAjmfQXlLY3js4nC_qW4v7mxoYaGO2dMQ8,17984
|
21
23
|
fabricatio/constants.py,sha256=thfDuF6JEtJ5CHOnAJLfqvn5834n8ep6DH2jc6XGzQM,577
|
22
24
|
fabricatio/core.py,sha256=VQ_JKgUGIy2gZ8xsTBZCdr_IP7wC5aPg0_bsOmjQ588,6458
|
23
|
-
fabricatio/decorators.py,sha256
|
25
|
+
fabricatio/decorators.py,sha256=RFMYUlQPf561-BIHetpMd7fPig5bZ2brzWiQTgoLOlY,8966
|
24
26
|
fabricatio/fs/curd.py,sha256=p8y0LGKgVDk-CWOlm37E6wg7RK6RCD6denKo-VsW28c,4763
|
25
|
-
fabricatio/fs/readers.py,sha256=
|
26
|
-
fabricatio/fs/__init__.py,sha256=
|
27
|
+
fabricatio/fs/readers.py,sha256=UXvcJO3UCsxHu9PPkg34Yh55Zi-miv61jD_wZQJgKRs,1751
|
28
|
+
fabricatio/fs/__init__.py,sha256=FydmlEY_3QY74r1BpGDc5lFLhE6g6gkwOAtE30Fo-aI,786
|
27
29
|
fabricatio/journal.py,sha256=stnEP88aUBA_GmU9gfTF2EZI8FS2OyMLGaMSTgK4QgA,476
|
28
|
-
fabricatio/models/action.py,sha256=
|
30
|
+
fabricatio/models/action.py,sha256=_Do4XKqfV8RChLTYMIuxR1oUoInKe1jOt0UfrrSdGSQ,10140
|
29
31
|
fabricatio/models/adv_kwargs_types.py,sha256=kUO-SiZtFuz5cZCmMLnJJ9tjQ4-Zd_foo6R8HQMlM5A,1950
|
30
32
|
fabricatio/models/events.py,sha256=wiirk_ASg3iXDOZU_gIimci1VZVzWE1nDmxy-hQVJ9M,4150
|
31
33
|
fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
|
32
|
-
fabricatio/models/extra/aricle_rag.py,sha256=
|
33
|
-
fabricatio/models/extra/article_base.py,sha256=
|
34
|
+
fabricatio/models/extra/aricle_rag.py,sha256=vs4d_-AdbtIVTcUJGzp69itvJ0oiQp2Roflw2SnmVso,10272
|
35
|
+
fabricatio/models/extra/article_base.py,sha256=tO0Ql-wzsGHpgkCdAbP6WwNUJAgw4HPPr6jGXJDKHac,14134
|
34
36
|
fabricatio/models/extra/article_essence.py,sha256=mlIkkRMR3I1RtqiiOnmIE3Vy623L4eECumkRzryE1pw,2749
|
35
|
-
fabricatio/models/extra/article_main.py,sha256=
|
37
|
+
fabricatio/models/extra/article_main.py,sha256=Oz6X7tHztb6zwnJQnw9XlgVwTp8kfI9ywkWUY3_fe_E,11824
|
36
38
|
fabricatio/models/extra/article_outline.py,sha256=w7O0SHgC7exbptWVbR62FMHAueMgBpyWKVYMGGl_oj8,1427
|
37
39
|
fabricatio/models/extra/article_proposal.py,sha256=NbyjW-7UiFPtnVD9nte75re4xL2pD4qL29PpNV4Cg_M,1870
|
38
40
|
fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
|
39
|
-
fabricatio/models/extra/problem.py,sha256=
|
41
|
+
fabricatio/models/extra/problem.py,sha256=8tTU-3giFHOi5j7NJsvH__JJyYcaGrcfsRnkzQNm0Ew,7216
|
40
42
|
fabricatio/models/extra/rag.py,sha256=RMi8vhEPB0I5mVmjRLRLxYHUnm9pFhvVwysaIwmW2s0,3955
|
41
43
|
fabricatio/models/extra/rule.py,sha256=KQQELVhCLUXhEZ35jU3WGYqKHuCYEAkn0p6pxAE-hOU,2625
|
42
44
|
fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
|
43
|
-
fabricatio/models/generic.py,sha256=
|
44
|
-
fabricatio/models/kwargs_types.py,sha256=
|
45
|
+
fabricatio/models/generic.py,sha256=1SfneELXtN4SZ0pejq01fHGYNAjIeO6wSi2315jbKeo,31153
|
46
|
+
fabricatio/models/kwargs_types.py,sha256=BPqZUgxz4WJaB7hmvrhNxHXp-O7O4SiAdn6UguBRij8,4784
|
45
47
|
fabricatio/models/role.py,sha256=-CRcj5_M3_ciLPzwiNn92grBmwoSLQ-n4koVZiCNTBM,2953
|
46
|
-
fabricatio/models/task.py,sha256=
|
48
|
+
fabricatio/models/task.py,sha256=bLYSKjlRAlb4jMYyF12RTnm_8pVXysSmX8CYLrEmbQ8,11096
|
47
49
|
fabricatio/models/tool.py,sha256=jQ51g4lwTPfsMF1nbreDJtBczbxIHoXcPuLSOqHliq8,12506
|
48
|
-
fabricatio/models/usages.py,sha256=
|
49
|
-
fabricatio/parser.py,sha256
|
50
|
+
fabricatio/models/usages.py,sha256=0bzITf0vug9ZaN6qnjNfFB7T8BAvpXE0bvx0otFYLLA,33356
|
51
|
+
fabricatio/parser.py,sha256=-RbW2yzfJiu2ARq-lZw4tfgsjY2rIZWtJpoUmaE6gJQ,6637
|
50
52
|
fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
|
-
fabricatio/rust.pyi,sha256=
|
53
|
+
fabricatio/rust.pyi,sha256=GJRLeeQ1UIaf5kOgJWX2GkwIacoTBk3yBKuD5cKW8i4,10489
|
52
54
|
fabricatio/rust_instances.py,sha256=Byeo8KHW_dJiXujJq7YPGDLBX5bHNDYbBc4sY3uubVY,313
|
53
55
|
fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
|
54
56
|
fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
|
55
57
|
fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
|
56
|
-
fabricatio/utils.py,sha256=
|
58
|
+
fabricatio/utils.py,sha256=4aK6bNHCCGEbSkLRKrDBzabuVAow9PrJ6SVGUX1Rt-U,3098
|
57
59
|
fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
|
58
60
|
fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
|
59
61
|
fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
|
60
62
|
fabricatio/__init__.py,sha256=Rmvq2VgdS2u68vnOi2i5RbeWbAwrJDbk8D8D883PJWE,1022
|
61
|
-
fabricatio/rust.cp312-win_amd64.pyd,sha256=
|
62
|
-
fabricatio-0.2.
|
63
|
-
fabricatio-0.2.
|
63
|
+
fabricatio/rust.cp312-win_amd64.pyd,sha256=tb9ROeE3gxqbvhiiN5aOCXsW45MoTudGZgl9ClK1sYY,4155904
|
64
|
+
fabricatio-0.2.11.data/scripts/tdown.exe,sha256=9NCl7ycobV0NptGmOEIm_mH1c5In_s5to05ZZOktsjM,3350016
|
65
|
+
fabricatio-0.2.11.dist-info/RECORD,,
|
Binary file
|
File without changes
|
File without changes
|