fabricatio 0.2.10.dev1__cp312-cp312-win_amd64.whl → 0.2.11.dev1__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 +38 -9
- fabricatio/actions/article_rag.py +115 -13
- 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 +30 -30
- fabricatio/fs/__init__.py +9 -2
- fabricatio/fs/readers.py +6 -10
- fabricatio/models/extra/aricle_rag.py +125 -9
- fabricatio/models/extra/article_main.py +46 -2
- fabricatio/models/extra/problem.py +5 -1
- fabricatio/models/generic.py +29 -11
- fabricatio/models/kwargs_types.py +3 -1
- fabricatio/models/usages.py +9 -26
- fabricatio/parser.py +16 -12
- fabricatio/rust.cp312-win_amd64.pyd +0 -0
- fabricatio/rust.pyi +124 -6
- fabricatio/utils.py +11 -3
- fabricatio-0.2.11.dev1.data/scripts/tdown.exe +0 -0
- {fabricatio-0.2.10.dev1.dist-info → fabricatio-0.2.11.dev1.dist-info}/METADATA +18 -9
- {fabricatio-0.2.10.dev1.dist-info → fabricatio-0.2.11.dev1.dist-info}/RECORD +28 -26
- fabricatio-0.2.10.dev1.data/scripts/tdown.exe +0 -0
- {fabricatio-0.2.10.dev1.dist-info → fabricatio-0.2.11.dev1.dist-info}/WHEEL +0 -0
- {fabricatio-0.2.10.dev1.dist-info → fabricatio-0.2.11.dev1.dist-info}/licenses/LICENSE +0 -0
fabricatio/parser.py
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
"""A module to parse text using regular expressions."""
|
2
2
|
|
3
|
+
import re
|
4
|
+
from functools import lru_cache
|
5
|
+
from re import Pattern, compile
|
3
6
|
from typing import Any, Callable, Iterable, List, Optional, Self, Tuple, Type
|
4
7
|
|
5
|
-
import
|
6
|
-
import regex
|
8
|
+
import ujson
|
7
9
|
from json_repair import repair_json
|
8
10
|
from pydantic import BaseModel, ConfigDict, Field, PositiveInt, PrivateAttr, ValidationError
|
9
|
-
from regex import Pattern, compile
|
10
11
|
|
11
12
|
from fabricatio.config import configs
|
12
13
|
from fabricatio.journal import logger
|
@@ -25,7 +26,7 @@ class Capture(BaseModel):
|
|
25
26
|
"""The target groups to capture from the pattern."""
|
26
27
|
pattern: str = Field(frozen=True)
|
27
28
|
"""The regular expression pattern to search for."""
|
28
|
-
flags: PositiveInt = Field(default=
|
29
|
+
flags: PositiveInt = Field(default=re.DOTALL | re.MULTILINE | re.IGNORECASE, frozen=True)
|
29
30
|
"""The flags to use when compiling the regular expression pattern."""
|
30
31
|
capture_type: Optional[str] = None
|
31
32
|
"""The type of capture to perform, e.g., 'json', which is used to dispatch the fixer accordingly."""
|
@@ -49,7 +50,8 @@ class Capture(BaseModel):
|
|
49
50
|
logger.debug("Applying json repair to text.")
|
50
51
|
if isinstance(text, str):
|
51
52
|
return repair_json(text, ensure_ascii=False) # pyright: ignore [reportReturnType]
|
52
|
-
return [repair_json(item, ensure_ascii=False) for item in
|
53
|
+
return [repair_json(item, ensure_ascii=False) for item in
|
54
|
+
text] # pyright: ignore [reportReturnType, reportGeneralTypeIssues]
|
53
55
|
case _:
|
54
56
|
return text # pyright: ignore [reportReturnType]
|
55
57
|
|
@@ -63,7 +65,7 @@ class Capture(BaseModel):
|
|
63
65
|
str | None: The captured text if the pattern is found, otherwise None.
|
64
66
|
|
65
67
|
"""
|
66
|
-
if (match :=self._compiled.match(text) or self._compiled.search(text)
|
68
|
+
if (match := self._compiled.match(text) or self._compiled.search(text)) is None:
|
67
69
|
logger.debug(f"Capture Failed {type(text)}: \n{text}")
|
68
70
|
return None
|
69
71
|
groups = self.fix(match.groups())
|
@@ -94,12 +96,12 @@ class Capture(BaseModel):
|
|
94
96
|
return None
|
95
97
|
|
96
98
|
def validate_with[K, T, E](
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
99
|
+
self,
|
100
|
+
text: str,
|
101
|
+
target_type: Type[T],
|
102
|
+
elements_type: Optional[Type[E]] = None,
|
103
|
+
length: Optional[int] = None,
|
104
|
+
deserializer: Callable[[Tuple[str, ...]], K] | Callable[[str], K] = ujson.loads,
|
103
105
|
) -> T | None:
|
104
106
|
"""Validate the given text using the pattern.
|
105
107
|
|
@@ -124,6 +126,7 @@ class Capture(BaseModel):
|
|
124
126
|
return None
|
125
127
|
|
126
128
|
@classmethod
|
129
|
+
@lru_cache(32)
|
127
130
|
def capture_code_block(cls, language: str) -> Self:
|
128
131
|
"""Capture the first occurrence of a code block in the given text.
|
129
132
|
|
@@ -136,6 +139,7 @@ class Capture(BaseModel):
|
|
136
139
|
return cls(pattern=f"```{language}(.*?)```", capture_type=language)
|
137
140
|
|
138
141
|
@classmethod
|
142
|
+
@lru_cache(32)
|
139
143
|
def capture_generic_block(cls, language: str) -> Self:
|
140
144
|
"""Capture the first occurrence of a generic code block in the given text.
|
141
145
|
|
Binary file
|
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.
|
@@ -24,7 +24,7 @@ class TemplateManager:
|
|
24
24
|
"""
|
25
25
|
|
26
26
|
def __init__(
|
27
|
-
|
27
|
+
self, template_dirs: List[Path], suffix: Optional[str] = None, active_loading: Optional[bool] = None
|
28
28
|
) -> None:
|
29
29
|
"""Initialize the template manager.
|
30
30
|
|
@@ -54,31 +54,48 @@ class TemplateManager:
|
|
54
54
|
This refreshes the template cache, finding any new or modified templates.
|
55
55
|
"""
|
56
56
|
|
57
|
+
@overload
|
57
58
|
def render_template(self, name: str, data: Dict[str, Any]) -> str:
|
59
|
+
...
|
60
|
+
|
61
|
+
@overload
|
62
|
+
def render_template(self, name: str, data: List[Dict[str, Any]]) -> List[str]:
|
63
|
+
...
|
64
|
+
|
65
|
+
def render_template(self, name: str, data: Dict[str, Any] | List[Dict[str, Any]]) -> str | List[str]:
|
58
66
|
"""Render a template with context data.
|
59
67
|
|
60
68
|
Args:
|
61
69
|
name: Template name (without extension)
|
62
|
-
data: Context dictionary to provide variables to the template
|
70
|
+
data: Context dictionary or list of dictionaries to provide variables to the template
|
63
71
|
|
64
72
|
Returns:
|
65
|
-
Rendered template content as string
|
73
|
+
Rendered template content as string or list of strings
|
66
74
|
|
67
75
|
Raises:
|
68
76
|
RuntimeError: If template rendering fails
|
69
77
|
"""
|
70
78
|
|
79
|
+
@overload
|
71
80
|
def render_template_raw(self, template: str, data: Dict[str, Any]) -> str:
|
81
|
+
...
|
82
|
+
|
83
|
+
@overload
|
84
|
+
def render_template_raw(self, template: str, data: List[Dict[str, Any]]) -> List[str]:
|
85
|
+
...
|
86
|
+
|
87
|
+
def render_template_raw(self, template: str, data: Dict[str, Any] | List[Dict[str, Any]]) -> str | List[str]:
|
72
88
|
"""Render a template with context data.
|
73
89
|
|
74
90
|
Args:
|
75
91
|
template: The template string
|
76
|
-
data: Context dictionary to provide variables to the template
|
92
|
+
data: Context dictionary or list of dictionaries to provide variables to the template
|
77
93
|
|
78
94
|
Returns:
|
79
|
-
Rendered template content as string
|
95
|
+
Rendered template content as string or list of strings
|
80
96
|
"""
|
81
97
|
|
98
|
+
|
82
99
|
def blake3_hash(content: bytes) -> str:
|
83
100
|
"""Calculate the BLAKE3 cryptographic hash of data.
|
84
101
|
|
@@ -89,9 +106,11 @@ def blake3_hash(content: bytes) -> str:
|
|
89
106
|
Hex-encoded BLAKE3 hash string
|
90
107
|
"""
|
91
108
|
|
109
|
+
|
92
110
|
def detect_language(string: str) -> str:
|
93
111
|
"""Detect the language of a given string."""
|
94
112
|
|
113
|
+
|
95
114
|
def split_word_bounds(string: str) -> List[str]:
|
96
115
|
"""Split the string into words based on word boundaries.
|
97
116
|
|
@@ -102,6 +121,7 @@ def split_word_bounds(string: str) -> List[str]:
|
|
102
121
|
A list of words extracted from the string.
|
103
122
|
"""
|
104
123
|
|
124
|
+
|
105
125
|
def split_sentence_bounds(string: str) -> List[str]:
|
106
126
|
"""Split the string into sentences based on sentence boundaries.
|
107
127
|
|
@@ -112,6 +132,7 @@ def split_sentence_bounds(string: str) -> List[str]:
|
|
112
132
|
A list of sentences extracted from the string.
|
113
133
|
"""
|
114
134
|
|
135
|
+
|
115
136
|
def split_into_chunks(string: str, max_chunk_size: int, max_overlapping_rate: float = 0.3) -> List[str]:
|
116
137
|
"""Split the string into chunks of a specified size.
|
117
138
|
|
@@ -124,6 +145,7 @@ def split_into_chunks(string: str, max_chunk_size: int, max_overlapping_rate: fl
|
|
124
145
|
A list of chunks extracted from the string.
|
125
146
|
"""
|
126
147
|
|
148
|
+
|
127
149
|
def word_count(string: str) -> int:
|
128
150
|
"""Count the number of words in the string.
|
129
151
|
|
@@ -134,6 +156,100 @@ def word_count(string: str) -> int:
|
|
134
156
|
The number of words in the string.
|
135
157
|
"""
|
136
158
|
|
159
|
+
|
160
|
+
def is_chinese(string: str) -> bool:
|
161
|
+
"""Check if the given string is in Chinese."""
|
162
|
+
|
163
|
+
|
164
|
+
def is_english(string: str) -> bool:
|
165
|
+
"""Check if the given string is in English."""
|
166
|
+
|
167
|
+
|
168
|
+
def is_japanese(string: str) -> bool:
|
169
|
+
"""Check if the given string is in Japanese."""
|
170
|
+
|
171
|
+
|
172
|
+
def is_korean(string: str) -> bool:
|
173
|
+
"""Check if the given string is in Korean."""
|
174
|
+
|
175
|
+
|
176
|
+
def is_arabic(string: str) -> bool:
|
177
|
+
"""Check if the given string is in Arabic."""
|
178
|
+
|
179
|
+
|
180
|
+
def is_russian(string: str) -> bool:
|
181
|
+
"""Check if the given string is in Russian."""
|
182
|
+
|
183
|
+
|
184
|
+
def is_german(string: str) -> bool:
|
185
|
+
"""Check if the given string is in German."""
|
186
|
+
|
187
|
+
|
188
|
+
def is_french(string: str) -> bool:
|
189
|
+
"""Check if the given string is in French."""
|
190
|
+
|
191
|
+
|
192
|
+
def is_hindi(string: str) -> bool:
|
193
|
+
"""Check if the given string is in Hindi."""
|
194
|
+
|
195
|
+
|
196
|
+
def is_italian(string: str) -> bool:
|
197
|
+
"""Check if the given string is in Italian."""
|
198
|
+
|
199
|
+
|
200
|
+
def is_dutch(string: str) -> bool:
|
201
|
+
"""Check if the given string is in Dutch."""
|
202
|
+
|
203
|
+
|
204
|
+
def is_portuguese(string: str) -> bool:
|
205
|
+
"""Check if the given string is in Portuguese."""
|
206
|
+
|
207
|
+
|
208
|
+
def is_swedish(string: str) -> bool:
|
209
|
+
"""Check if the given string is in Swedish."""
|
210
|
+
|
211
|
+
|
212
|
+
def is_turkish(string: str) -> bool:
|
213
|
+
"""Check if the given string is in Turkish."""
|
214
|
+
|
215
|
+
|
216
|
+
def is_vietnamese(string: str) -> bool:
|
217
|
+
"""Check if the given string is in Vietnamese."""
|
218
|
+
|
219
|
+
|
220
|
+
def tex_to_typst(string: str) -> str:
|
221
|
+
"""Convert TeX to Typst.
|
222
|
+
|
223
|
+
Args:
|
224
|
+
string: The input TeX string to be converted.
|
225
|
+
|
226
|
+
Returns:
|
227
|
+
The converted Typst string.
|
228
|
+
"""
|
229
|
+
|
230
|
+
|
231
|
+
def convert_all_inline_tex(string: str) -> str:
|
232
|
+
"""Convert all inline TeX code in the string.
|
233
|
+
|
234
|
+
Args:
|
235
|
+
string: The input string containing inline TeX code wrapped in $code$.
|
236
|
+
|
237
|
+
Returns:
|
238
|
+
The converted string with inline TeX code replaced.
|
239
|
+
"""
|
240
|
+
|
241
|
+
|
242
|
+
def convert_all_block_tex(string: str) -> str:
|
243
|
+
"""Convert all block TeX code in the string.
|
244
|
+
|
245
|
+
Args:
|
246
|
+
string: The input string containing block TeX code wrapped in $$code$$.
|
247
|
+
|
248
|
+
Returns:
|
249
|
+
The converted string with block TeX code replaced.
|
250
|
+
"""
|
251
|
+
|
252
|
+
|
137
253
|
class BibManager:
|
138
254
|
"""BibTeX bibliography manager for parsing and querying citation data."""
|
139
255
|
|
@@ -156,6 +272,7 @@ class BibManager:
|
|
156
272
|
Returns:
|
157
273
|
Citation key if exact match found, None otherwise
|
158
274
|
"""
|
275
|
+
|
159
276
|
def get_cite_key_by_title_fuzzy(self, title: str) -> Optional[str]:
|
160
277
|
"""Find citation key by fuzzy title match.
|
161
278
|
|
@@ -219,6 +336,7 @@ class BibManager:
|
|
219
336
|
Returns:
|
220
337
|
Abstract if found, None otherwise
|
221
338
|
"""
|
339
|
+
|
222
340
|
def get_title_by_key(self, key: str) -> Optional[str]:
|
223
341
|
"""Retrieve the title by citation key.
|
224
342
|
|
fabricatio/utils.py
CHANGED
@@ -2,9 +2,12 @@
|
|
2
2
|
|
3
3
|
from typing import Any, Dict, List, Mapping, Optional
|
4
4
|
|
5
|
-
from
|
5
|
+
from fabricatio.decorators import precheck_package
|
6
6
|
|
7
7
|
|
8
|
+
@precheck_package(
|
9
|
+
"questionary", "'questionary' is required to run this function. Have you installed `fabricatio[qa]`?."
|
10
|
+
)
|
8
11
|
async def ask_edit(
|
9
12
|
text_seq: List[str],
|
10
13
|
) -> List[str]:
|
@@ -17,6 +20,8 @@ async def ask_edit(
|
|
17
20
|
List[str]: A list of edited texts.
|
18
21
|
If the user does not edit a text, it will not be included in the returned list.
|
19
22
|
"""
|
23
|
+
from questionary import text
|
24
|
+
|
20
25
|
res = []
|
21
26
|
for i, t in enumerate(text_seq):
|
22
27
|
edited = await text(f"[{i}] ", default=t).ask_async()
|
@@ -54,14 +59,17 @@ def ok[T](val: Optional[T], msg: str = "Value is None") -> T:
|
|
54
59
|
return val
|
55
60
|
|
56
61
|
|
57
|
-
def wrapp_in_block(string: str, title: str) -> str:
|
62
|
+
def wrapp_in_block(string: str, title: str, style: str = "-") -> str:
|
58
63
|
"""Wraps a string in a block with a title.
|
59
64
|
|
60
65
|
Args:
|
61
66
|
string: The string to wrap.
|
62
67
|
title: The title of the block.
|
68
|
+
style: The style of the block.
|
63
69
|
|
64
70
|
Returns:
|
65
71
|
str: The wrapped string.
|
66
72
|
"""
|
67
|
-
return f"--- Start of {title} ---\n{string}\n--- End of {title} ---"
|
73
|
+
return f"--- Start of {title} ---\n{string}\n--- End of {title} ---".replace("-", style)
|
74
|
+
|
75
|
+
|
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.dev1
|
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,24 @@ 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] ; 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'
|
31
29
|
Provides-Extra: full
|
30
|
+
Provides-Extra: rag
|
32
31
|
Provides-Extra: calc
|
33
32
|
Provides-Extra: plot
|
33
|
+
Provides-Extra: qa
|
34
|
+
Provides-Extra: ftd
|
34
35
|
License-File: LICENSE
|
35
36
|
Summary: A LLM multi-agent framework.
|
36
37
|
Keywords: ai,agents,multi-agent,llm,pyo3
|
@@ -47,7 +48,8 @@ Project-URL: Issues, https://github.com/Whth/fabricatio/issues
|
|
47
48
|
|
48
49
|
## Overview
|
49
50
|
|
50
|
-
Fabricatio is a streamlined Python library for building LLM applications using an event-based agent structure. It
|
51
|
+
Fabricatio is a streamlined Python library for building LLM applications using an event-based agent structure. It
|
52
|
+
leverages Rust for performance-critical tasks, Handlebars for templating, and PyO3 for Python bindings.
|
51
53
|
|
52
54
|
## Features
|
53
55
|
|
@@ -87,6 +89,7 @@ import asyncio
|
|
87
89
|
from fabricatio import Action, Role, Task, logger, WorkFlow
|
88
90
|
from typing import Any
|
89
91
|
|
92
|
+
|
90
93
|
class Hello(Action):
|
91
94
|
name: str = "hello"
|
92
95
|
output_key: str = "task_output"
|
@@ -96,6 +99,7 @@ class Hello(Action):
|
|
96
99
|
logger.info("executing talk action")
|
97
100
|
return ret
|
98
101
|
|
102
|
+
|
99
103
|
async def main() -> None:
|
100
104
|
role = Role(
|
101
105
|
name="talker",
|
@@ -107,6 +111,7 @@ async def main() -> None:
|
|
107
111
|
result = await task.delegate()
|
108
112
|
logger.success(f"Result: {result}")
|
109
113
|
|
114
|
+
|
110
115
|
if __name__ == "__main__":
|
111
116
|
asyncio.run(main())
|
112
117
|
```
|
@@ -114,6 +119,7 @@ if __name__ == "__main__":
|
|
114
119
|
### Examples
|
115
120
|
|
116
121
|
For various usage scenarios, refer to the following examples:
|
122
|
+
|
117
123
|
- Simple Chat
|
118
124
|
- Retrieval-Augmented Generation (RAG)
|
119
125
|
- Article Extraction
|
@@ -161,6 +167,7 @@ max_tokens = 8192
|
|
161
167
|
## Contributing
|
162
168
|
|
163
169
|
Contributions are welcome! Follow these steps:
|
170
|
+
|
164
171
|
1. Fork the repository.
|
165
172
|
2. Create your feature branch (`git checkout -b feature/new-feature`).
|
166
173
|
3. Commit your changes (`git commit -am 'Add new feature'`).
|
@@ -174,6 +181,8 @@ Fabricatio is licensed under the MIT License. See [LICENSE](LICENSE) for details
|
|
174
181
|
## Acknowledgments
|
175
182
|
|
176
183
|
Special thanks to the contributors and maintainers of:
|
184
|
+
|
177
185
|
- [PyO3](https://github.com/PyO3/pyo3)
|
178
186
|
- [Maturin](https://github.com/PyO3/maturin)
|
179
|
-
- [Handlebars.rs](https://github.com/sunng87/handlebars-rust)
|
187
|
+
- [Handlebars.rs](https://github.com/sunng87/handlebars-rust)
|
188
|
+
|
@@ -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.dev1.dist-info/METADATA,sha256=GC-i85oxlfkyYU9coT5f3zIJUVGksKiKQFDJJBnAxGc,5178
|
2
|
+
fabricatio-0.2.11.dev1.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
|
3
|
+
fabricatio-0.2.11.dev1.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
|
4
|
+
fabricatio/actions/article.py,sha256=J2wneRmGDVzzyvsFw1Ux69Q6kI8Ty3Dty0l5eToSGX0,10237
|
5
|
+
fabricatio/actions/article_rag.py,sha256=rN-g3uQbgmMZbYtV63jOMYQ6ssOFtKbRtZGJ8ZOjXug,10710
|
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=nYCYnJd7s0h-jcCLqt4XLcc4fXTUIc5DFnk7gne1GOo,8453
|
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
30
|
fabricatio/models/action.py,sha256=Kfa-zojgHQ1vPoC2lQp-thTTp0oySKn7k6I4ea6iYTs,9837
|
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=
|
34
|
+
fabricatio/models/extra/aricle_rag.py,sha256=MYTzq_wDxMXDC7kXElQNJxX6b7w50o7LyEvkE4Yosk4,9503
|
33
35
|
fabricatio/models/extra/article_base.py,sha256=DxBex4UsMAFmHmriwXkcvGIuU-WTSD4ZfzDEk-no9TA,11894
|
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=4rjev0wpI2jf52NLNatRbqFQmN6rtKaMB9iy30hSEXM,9818
|
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=7wcG01DN9g4q1DJGZsTUxSTMixQgwXX0xlX4HbbLc6U,31185
|
46
|
+
fabricatio/models/kwargs_types.py,sha256=GEw75ZiiDEFx_ImhCBENnPF7K0BcdTQ1ocH5jSPwMRs,4774
|
45
47
|
fabricatio/models/role.py,sha256=-CRcj5_M3_ciLPzwiNn92grBmwoSLQ-n4koVZiCNTBM,2953
|
46
48
|
fabricatio/models/task.py,sha256=SxWI-b5jlQcGmNsjQ2aKDyywXwGiUvCR1rgUhk-pli8,10503
|
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=B9kII7wP9uUj6-M69kbnTsWQpZcJ-gKZ2HplIxL0j1c,33358
|
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=g-lfJY5-5kLRNUFHXPHdf539RaTErm1r29HlHAvs8hs,10091
|
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=Fju7bvxrF2r-tGpRGuIQHvgjiifSfDYXZYdBXWtzFns,2310
|
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=xuHK1JAwjOPlN_BojaTTIKycn8ILyBRuSUE8Mlj3qhM,4147712
|
64
|
+
fabricatio-0.2.11.dev1.data/scripts/tdown.exe,sha256=yx3AcvfP3lcjWcNlgPBXzH863MlWBnrJjqXkLoC39nk,3351040
|
65
|
+
fabricatio-0.2.11.dev1.dist-info/RECORD,,
|
Binary file
|
File without changes
|
File without changes
|