fabricatio 0.3.14.dev0__cp312-cp312-win_amd64.whl → 0.3.14.dev2__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/__init__.py +3 -5
- fabricatio/actions/article.py +31 -31
- fabricatio/actions/article_rag.py +58 -58
- fabricatio/actions/output.py +58 -24
- fabricatio/actions/rag.py +2 -3
- fabricatio/capabilities/advanced_judge.py +4 -7
- fabricatio/capabilities/advanced_rag.py +2 -1
- fabricatio/capabilities/censor.py +5 -4
- fabricatio/capabilities/check.py +27 -27
- fabricatio/capabilities/correct.py +22 -22
- fabricatio/capabilities/extract.py +33 -33
- fabricatio/capabilities/persist.py +103 -0
- fabricatio/capabilities/propose.py +2 -2
- fabricatio/capabilities/rag.py +37 -37
- fabricatio/capabilities/rating.py +66 -70
- fabricatio/capabilities/review.py +12 -11
- fabricatio/capabilities/task.py +19 -18
- fabricatio/decorators.py +9 -9
- fabricatio/{core.py → emitter.py} +17 -19
- fabricatio/journal.py +2 -4
- fabricatio/models/action.py +10 -12
- fabricatio/models/extra/aricle_rag.py +15 -12
- fabricatio/models/extra/article_base.py +4 -5
- fabricatio/models/extra/article_essence.py +2 -1
- fabricatio/models/extra/article_main.py +12 -12
- fabricatio/models/extra/article_outline.py +2 -1
- fabricatio/models/extra/article_proposal.py +1 -1
- fabricatio/models/extra/rag.py +2 -2
- fabricatio/models/extra/rule.py +2 -1
- fabricatio/models/generic.py +53 -136
- fabricatio/models/kwargs_types.py +1 -9
- fabricatio/models/role.py +15 -16
- fabricatio/models/task.py +3 -4
- fabricatio/models/tool.py +4 -4
- fabricatio/models/usages.py +139 -146
- fabricatio/parser.py +59 -99
- fabricatio/rust.cp312-win_amd64.pyd +0 -0
- fabricatio/rust.pyi +40 -60
- fabricatio/utils.py +37 -170
- fabricatio-0.3.14.dev2.data/scripts/tdown.exe +0 -0
- {fabricatio-0.3.14.dev0.data → fabricatio-0.3.14.dev2.data}/scripts/ttm.exe +0 -0
- {fabricatio-0.3.14.dev0.dist-info → fabricatio-0.3.14.dev2.dist-info}/METADATA +7 -7
- fabricatio-0.3.14.dev2.dist-info/RECORD +64 -0
- fabricatio-0.3.14.dev0.data/scripts/tdown.exe +0 -0
- fabricatio-0.3.14.dev0.dist-info/RECORD +0 -63
- {fabricatio-0.3.14.dev0.dist-info → fabricatio-0.3.14.dev2.dist-info}/WHEEL +0 -0
- {fabricatio-0.3.14.dev0.dist-info → fabricatio-0.3.14.dev2.dist-info}/licenses/LICENSE +0 -0
fabricatio/utils.py
CHANGED
@@ -1,36 +1,31 @@
|
|
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, Iterable, List, Mapping, Optional, Tuple, Type, overload
|
4
4
|
|
5
5
|
from fabricatio.decorators import precheck_package
|
6
|
-
from fabricatio.journal import logger
|
7
|
-
from fabricatio.models.kwargs_types import RerankOptions
|
8
6
|
|
9
7
|
|
10
8
|
def is_subclass_of_base(cls: Type, base_module: str, base_name: str) -> bool:
|
11
9
|
"""Determines if the given class is a subclass of an unimported base class.
|
12
|
-
|
10
|
+
|
13
11
|
Args:
|
14
12
|
cls: The class to check
|
15
13
|
base_module: The module name of the base class
|
16
14
|
base_name: The class name of the base class
|
17
|
-
|
15
|
+
|
18
16
|
Returns:
|
19
17
|
bool: True if cls is a subclass of the specified base class, False otherwise
|
20
18
|
"""
|
21
|
-
for ancestor in cls.__mro__
|
22
|
-
if ancestor.__module__ == base_module and ancestor.__name__ == base_name:
|
23
|
-
return True
|
24
|
-
return False
|
19
|
+
return any(ancestor.__module__ == base_module and ancestor.__name__ == base_name for ancestor in cls.__mro__)
|
25
20
|
|
26
21
|
|
27
22
|
def is_subclass_of_any_base(cls: Type, bases: List[Tuple[str, str]]) -> bool:
|
28
23
|
"""Determines if the given class is a subclass of the candidate base classes.
|
29
|
-
|
24
|
+
|
30
25
|
Args:
|
31
26
|
cls: The class to check
|
32
27
|
bases: A list of tuples where each tuple contains (module_name, class_name)
|
33
|
-
|
28
|
+
|
34
29
|
Returns:
|
35
30
|
bool: True if cls is a subclass of the specified base classes, False otherwise
|
36
31
|
"""
|
@@ -116,6 +111,37 @@ def ok[T](val: Optional[T], msg: str = "Value is None") -> T:
|
|
116
111
|
return val
|
117
112
|
|
118
113
|
|
114
|
+
def first_available[T](iterable: Iterable[T], msg: str = "No available item found in the iterable.") -> T:
|
115
|
+
"""Return the first available item in the iterable that's not None.
|
116
|
+
|
117
|
+
This function searches through the provided iterable and returns the first
|
118
|
+
item that is not None. If all items are None or the iterable is empty,
|
119
|
+
it raises a ValueError.
|
120
|
+
|
121
|
+
Args:
|
122
|
+
iterable: The iterable collection to search through.
|
123
|
+
msg: The message to include in the ValueError if no non-None item is found.
|
124
|
+
|
125
|
+
Returns:
|
126
|
+
T: The first non-None item found in the iterable.
|
127
|
+
If no non-None item is found, it raises a ValueError.
|
128
|
+
|
129
|
+
Raises:
|
130
|
+
ValueError: If no non-None item is found in the iterable.
|
131
|
+
|
132
|
+
Examples:
|
133
|
+
>>> first_available([None, None, "value", "another"])
|
134
|
+
'value'
|
135
|
+
>>> first_available([1, 2, 3])
|
136
|
+
1
|
137
|
+
>>> assert (first_available([None, None]))
|
138
|
+
ValueError: No available item found in the iterable.
|
139
|
+
"""
|
140
|
+
if (first := next((item for item in iterable if item is not None), None)) is not None:
|
141
|
+
return first
|
142
|
+
raise ValueError(msg)
|
143
|
+
|
144
|
+
|
119
145
|
def wrapp_in_block(string: str, title: str, style: str = "-") -> str:
|
120
146
|
"""Wraps a string in a block with a title.
|
121
147
|
|
@@ -128,162 +154,3 @@ def wrapp_in_block(string: str, title: str, style: str = "-") -> str:
|
|
128
154
|
str: The wrapped string.
|
129
155
|
"""
|
130
156
|
return f"--- Start of {title} ---\n{string}\n--- End of {title} ---".replace("-", style)
|
131
|
-
|
132
|
-
|
133
|
-
class RerankResult(TypedDict):
|
134
|
-
"""The rerank result."""
|
135
|
-
|
136
|
-
index: int
|
137
|
-
score: float
|
138
|
-
|
139
|
-
|
140
|
-
class RerankerAPI:
|
141
|
-
"""A class to interact with the /rerank API for text reranking."""
|
142
|
-
|
143
|
-
def __init__(self, base_url: str) -> None:
|
144
|
-
"""Initialize the RerankerAPI instance.
|
145
|
-
|
146
|
-
Args:
|
147
|
-
base_url (str): The base URL of the TEI-deployed reranker model API.
|
148
|
-
Example: "http://localhost:8000".
|
149
|
-
"""
|
150
|
-
self.base_url = base_url.rstrip("/") # Ensure no trailing slashes
|
151
|
-
|
152
|
-
@staticmethod
|
153
|
-
def _map_error_code(status_code: int, error_data: Dict[str, str]) -> Exception:
|
154
|
-
"""Map HTTP status codes and error data to specific exceptions.
|
155
|
-
|
156
|
-
Args:
|
157
|
-
status_code (int): The HTTP status code returned by the API.
|
158
|
-
error_data (Dict[str, str]): The error details returned by the API.
|
159
|
-
|
160
|
-
Returns:
|
161
|
-
Exception: A specific exception based on the error code and message.
|
162
|
-
"""
|
163
|
-
error_message = error_data.get("error", "Unknown error")
|
164
|
-
|
165
|
-
if status_code == 400:
|
166
|
-
return ValueError(f"Bad request: {error_message}")
|
167
|
-
if status_code == 413:
|
168
|
-
return ValueError(f"Batch size error: {error_message}")
|
169
|
-
if status_code == 422:
|
170
|
-
return RuntimeError(f"Tokenization error: {error_message}")
|
171
|
-
if status_code == 424:
|
172
|
-
return RuntimeError(f"Rerank error: {error_message}")
|
173
|
-
if status_code == 429:
|
174
|
-
return RuntimeError(f"Model overloaded: {error_message}")
|
175
|
-
return RuntimeError(f"Unexpected error ({status_code}): {error_message}")
|
176
|
-
|
177
|
-
def rerank(self, query: str, texts: List[str], **kwargs: Unpack[RerankOptions]) -> List[RerankResult]:
|
178
|
-
"""Call the /rerank API to rerank a list of texts based on a query (synchronous).
|
179
|
-
|
180
|
-
Args:
|
181
|
-
query (str): The query string used for matching with the texts.
|
182
|
-
texts (List[str]): A list of texts to be reranked.
|
183
|
-
**kwargs (Unpack[RerankOptions]): Optional keyword arguments:
|
184
|
-
- raw_scores (bool, optional): Whether to return raw scores. Defaults to False.
|
185
|
-
- truncate (bool, optional): Whether to truncate the texts. Defaults to False.
|
186
|
-
- truncation_direction (Literal["left", "right"], optional): Direction of truncation. Defaults to "right".
|
187
|
-
|
188
|
-
Returns:
|
189
|
-
List[RerankResult]: A list of dictionaries containing the reranked results.
|
190
|
-
Each dictionary includes:
|
191
|
-
- "index" (int): The original index of the text.
|
192
|
-
- "score" (float): The relevance score.
|
193
|
-
|
194
|
-
Raises:
|
195
|
-
ValueError: If input parameters are invalid or the API returns a client-side error.
|
196
|
-
RuntimeError: If the API call fails or returns a server-side error.
|
197
|
-
"""
|
198
|
-
import requests
|
199
|
-
# Validate inputs
|
200
|
-
if not isinstance(query, str) or not query.strip():
|
201
|
-
raise ValueError("Query must be a non-empty string.")
|
202
|
-
if not isinstance(texts, list) or not all(isinstance(text, str) for text in texts):
|
203
|
-
raise ValueError("Texts must be a list of strings.")
|
204
|
-
|
205
|
-
# Construct the request payload
|
206
|
-
payload = {
|
207
|
-
"query": query,
|
208
|
-
"texts": texts,
|
209
|
-
**kwargs,
|
210
|
-
}
|
211
|
-
|
212
|
-
try:
|
213
|
-
# Send POST request to the API
|
214
|
-
response = requests.post(f"{self.base_url}/rerank", json=payload)
|
215
|
-
|
216
|
-
# Handle non-200 status codes
|
217
|
-
if not response.ok:
|
218
|
-
error_data = None
|
219
|
-
if "application/json" in response.headers.get("Content-Type", ""):
|
220
|
-
error_data = response.json()
|
221
|
-
else:
|
222
|
-
error_data = {"error": response.text, "error_type": "unexpected_mimetype"}
|
223
|
-
raise self._map_error_code(response.status_code, error_data)
|
224
|
-
|
225
|
-
# Parse the JSON response
|
226
|
-
data: List[RerankResult] = response.json()
|
227
|
-
logger.debug(f"Rerank for `{query}` get {[s['score'] for s in data]}")
|
228
|
-
return data
|
229
|
-
|
230
|
-
except requests.exceptions.RequestException as e:
|
231
|
-
raise RuntimeError(f"Failed to connect to the API: {e}") from e
|
232
|
-
|
233
|
-
async def arerank(self, query: str, texts: List[str], **kwargs: Unpack[RerankOptions]) -> List[RerankResult]:
|
234
|
-
"""Call the /rerank API to rerank a list of texts based on a query (asynchronous).
|
235
|
-
|
236
|
-
Args:
|
237
|
-
query (str): The query string used for matching with the texts.
|
238
|
-
texts (List[str]): A list of texts to be reranked.
|
239
|
-
**kwargs (Unpack[RerankOptions]): Optional keyword arguments:
|
240
|
-
- raw_scores (bool, optional): Whether to return raw scores. Defaults to False.
|
241
|
-
- truncate (bool, optional): Whether to truncate the texts. Defaults to False.
|
242
|
-
- truncation_direction (Literal["left", "right"], optional): Direction of truncation. Defaults to "right".
|
243
|
-
|
244
|
-
Returns:
|
245
|
-
List[RerankResult]: A list of dictionaries containing the reranked results.
|
246
|
-
Each dictionary includes:
|
247
|
-
- "index" (int): The original index of the text.
|
248
|
-
- "score" (float): The relevance score.
|
249
|
-
|
250
|
-
Raises:
|
251
|
-
ValueError: If input parameters are invalid or the API returns a client-side error.
|
252
|
-
RuntimeError: If the API call fails or returns a server-side error.
|
253
|
-
"""
|
254
|
-
import aiohttp
|
255
|
-
|
256
|
-
# Validate inputs
|
257
|
-
if not isinstance(query, str) or not query.strip():
|
258
|
-
raise ValueError("Query must be a non-empty string.")
|
259
|
-
if not isinstance(texts, list) or not all(isinstance(text, str) for text in texts):
|
260
|
-
raise ValueError("Texts must be a list of strings.")
|
261
|
-
|
262
|
-
# Construct the request payload
|
263
|
-
payload = {
|
264
|
-
"query": query,
|
265
|
-
"texts": texts,
|
266
|
-
**kwargs,
|
267
|
-
}
|
268
|
-
|
269
|
-
try:
|
270
|
-
# Send POST request to the API using aiohttp
|
271
|
-
async with (
|
272
|
-
aiohttp.ClientSession() as session,
|
273
|
-
session.post(f"{self.base_url}/rerank", json=payload) as response,
|
274
|
-
):
|
275
|
-
# Handle non-200 status codes
|
276
|
-
if not response.ok:
|
277
|
-
if "application/json" in response.headers.get("Content-Type", ""):
|
278
|
-
error_data = await response.json()
|
279
|
-
else:
|
280
|
-
error_data = {"error": await response.text(), "error_type": "unexpected_mimetype"}
|
281
|
-
raise self._map_error_code(response.status, error_data)
|
282
|
-
|
283
|
-
# Parse the JSON response
|
284
|
-
data: List[RerankResult] = await response.json()
|
285
|
-
logger.debug(f"Rerank for `{query}` get {[s['score'] for s in data]}")
|
286
|
-
return data
|
287
|
-
|
288
|
-
except aiohttp.ClientError as e:
|
289
|
-
raise RuntimeError(f"Failed to connect to the API: {e}") from e
|
Binary file
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fabricatio
|
3
|
-
Version: 0.3.14.
|
3
|
+
Version: 0.3.14.dev2
|
4
4
|
Classifier: License :: OSI Approved :: MIT License
|
5
5
|
Classifier: Programming Language :: Rust
|
6
6
|
Classifier: Programming Language :: Python :: 3.12
|
@@ -86,7 +86,7 @@ make bdist
|
|
86
86
|
|
87
87
|
```python
|
88
88
|
import asyncio
|
89
|
-
from fabricatio import Action, Role, Task, logger, WorkFlow
|
89
|
+
from fabricatio import Action, Role, Task, logger, WorkFlow, Event
|
90
90
|
from typing import Any
|
91
91
|
|
92
92
|
|
@@ -101,14 +101,14 @@ class Hello(Action):
|
|
101
101
|
|
102
102
|
|
103
103
|
async def main() -> None:
|
104
|
-
|
104
|
+
Role(
|
105
105
|
name="talker",
|
106
106
|
description="talker role",
|
107
|
-
registry={
|
107
|
+
registry={Event.quick_instantiate("talk"): WorkFlow(name="talk", steps=(Hello,))}
|
108
108
|
)
|
109
109
|
|
110
|
-
task = Task(name="say hello", goals="say hello", description="say hello to the world")
|
111
|
-
result = await task.delegate()
|
110
|
+
task = Task(name="say hello", goals=["say hello"], description="say hello to the world")
|
111
|
+
result = await task.delegate("talk")
|
112
112
|
logger.success(f"Result: {result}")
|
113
113
|
|
114
114
|
|
@@ -163,11 +163,11 @@ max_tokens = 8192
|
|
163
163
|
```bash
|
164
164
|
make test
|
165
165
|
```
|
166
|
+
|
166
167
|
## TODO
|
167
168
|
|
168
169
|
- Add an element based format strategy
|
169
170
|
|
170
|
-
|
171
171
|
## Contributing
|
172
172
|
|
173
173
|
Contributions are welcome! Follow these steps:
|
@@ -0,0 +1,64 @@
|
|
1
|
+
fabricatio-0.3.14.dev2.dist-info/METADATA,sha256=MKj4CKYFdkLEn75ag-XpvJHS1g8NRiiDGMUhEKdDiA8,5267
|
2
|
+
fabricatio-0.3.14.dev2.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
|
3
|
+
fabricatio-0.3.14.dev2.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
|
4
|
+
fabricatio/actions/article.py,sha256=TPS2fOqCymKv2hK2c_WmMRMKNBkvN8M91QkB9ar8-bg,12507
|
5
|
+
fabricatio/actions/article_rag.py,sha256=e1fVh7Jph2zVD0bRAmK2dJ0BVkSEvF-FPfxUKujkn6s,18407
|
6
|
+
fabricatio/actions/fs.py,sha256=gJR14U4ln35nt8Z7OWLVAZpqGaLnED-r1Yi-lX22tkI,959
|
7
|
+
fabricatio/actions/output.py,sha256=jZL72D5uFobKNiVFapnVxBcjSNqGEThYNlCUKQvZwz8,9935
|
8
|
+
fabricatio/actions/rag.py,sha256=vgCzIfbSd3_vL3QxB12PY4h12V9Pe3sZRsWme0KC6X8,3583
|
9
|
+
fabricatio/actions/rules.py,sha256=dkvCgNDjt2KSO1VgPRsxT4YBmIIMeetZb5tiz-slYkU,3640
|
10
|
+
fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
|
11
|
+
fabricatio/capabilities/advanced_judge.py,sha256=jQ_Gsn6L8EKb6KQi3j0G0GSUz2j8D2220C1hIhrAeU8,682
|
12
|
+
fabricatio/capabilities/advanced_rag.py,sha256=DYh-imLQkjVOgKd__OEbwGzqwNeTtX_6NBGx_bCiFs8,2539
|
13
|
+
fabricatio/capabilities/censor.py,sha256=e0tHll4J_-TT8-Vn1OZ1innVZbJfx55oyGtDoEI99r8,4745
|
14
|
+
fabricatio/capabilities/check.py,sha256=6IC6F0IhYVpSf9pJ8r9lq40l_FF3qf-iJcTRWwpnkdg,8591
|
15
|
+
fabricatio/capabilities/correct.py,sha256=-JR8ZUAtagmNXepVyY679MBUyFCZwtKPjv8dANJMZiE,10403
|
16
|
+
fabricatio/capabilities/extract.py,sha256=E7CLZflWzJ6C6DVLEWysYZ_48g_-F93gZJVU56k2-XA,2523
|
17
|
+
fabricatio/capabilities/persist.py,sha256=9XnKoeZ62YjXVDpYnkbDFf62B_Mz46WVsq1dTr2Wvvc,3421
|
18
|
+
fabricatio/capabilities/propose.py,sha256=v8OiUHc8GU7Jg1zAUghYhrI-AKgmBeUvQMo22ZAOddw,2030
|
19
|
+
fabricatio/capabilities/rag.py,sha256=D5rULrQxPmp4kVLP_jBE4yal1v9N68XOgBdJqGvVHpU,10979
|
20
|
+
fabricatio/capabilities/rating.py,sha256=cm-s2YJMYcS36mR9b7XNwRQ1x0h0uWxLHCapoAORv8I,17815
|
21
|
+
fabricatio/capabilities/review.py,sha256=l06BYcQzPi7VKmWdplj9L6WvZEscZqW1Wx9OhR-UnNw,5061
|
22
|
+
fabricatio/capabilities/task.py,sha256=-b92cGi7b3B30kOSS-90_H6BjA0VF_cjc1BzPbO5MkI,4401
|
23
|
+
fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
|
24
|
+
fabricatio/decorators.py,sha256=OohwKgc5dUjybv70D-J2lA0C9zjUuq8-gzU5O8JPl8w,8962
|
25
|
+
fabricatio/emitter.py,sha256=n4vH6E7lcT57qVve_3hUAdfvj0mQUDkWu6iU5aNztB8,6341
|
26
|
+
fabricatio/fs/curd.py,sha256=652nHulbJ3gwt0Z3nywtPMmjhEyglDvEfc3p7ieJNNA,4777
|
27
|
+
fabricatio/fs/readers.py,sha256=UXvcJO3UCsxHu9PPkg34Yh55Zi-miv61jD_wZQJgKRs,1751
|
28
|
+
fabricatio/fs/__init__.py,sha256=USoMI_HcIr3Yc77_JQYYsXrsplYPXtFTaNB9YgFfC4s,713
|
29
|
+
fabricatio/journal.py,sha256=mnbdB1Dw-mhEKIgWlPKn7W07ssg-6dmxMXilIGQMFV8,216
|
30
|
+
fabricatio/models/action.py,sha256=JCJY27jloElrMBmSNC0tZtMjvgKJtksy2HimFqTKCOM,10082
|
31
|
+
fabricatio/models/adv_kwargs_types.py,sha256=IBV3ZcsNLvvEjO_2hBpYg_wLSpNKaMx6Ndam3qXJCw8,2097
|
32
|
+
fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
|
33
|
+
fabricatio/models/extra/aricle_rag.py,sha256=fTxlQyrzyl9bLCC5Zreb71TKaJ7xiHqqyR62HXr2unQ,11935
|
34
|
+
fabricatio/models/extra/article_base.py,sha256=Hm78qqqkZpeLlt979cgGiam3LE4CussLv0nQkNC9mW8,16769
|
35
|
+
fabricatio/models/extra/article_essence.py,sha256=z3Qz6xVsB9k-K-c4Y2CoKzxZrXaUd4oyt2Mb6hGDYdg,2793
|
36
|
+
fabricatio/models/extra/article_main.py,sha256=rg0QlKKtJ7QT-gXdsRxNa7wNh99DMMB-FPNF7-vjPSQ,11255
|
37
|
+
fabricatio/models/extra/article_outline.py,sha256=P0T-1DGCzoNmQ3iQVwSmOul0nwS6qLgr0FF8jDdD7F0,1673
|
38
|
+
fabricatio/models/extra/article_proposal.py,sha256=OQIKoJkmJv0ogYVk7eGK_TOtANVYcBPA_HeV1nuG0Vo,1909
|
39
|
+
fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
|
40
|
+
fabricatio/models/extra/problem.py,sha256=8tTU-3giFHOi5j7NJsvH__JJyYcaGrcfsRnkzQNm0Ew,7216
|
41
|
+
fabricatio/models/extra/rag.py,sha256=C7ptZCuGJmT8WikjpF9KhZ0Bw-VicdB-s8EqEAgMLKE,3967
|
42
|
+
fabricatio/models/extra/rule.py,sha256=WKahNiaIp8s_l2r_FG21F_PP3_hgNm4hfSVCSFyfoBE,2669
|
43
|
+
fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
|
44
|
+
fabricatio/models/generic.py,sha256=OJrYClooL2XnyalWTyyLgorycA1d_JNW8VqOYNDJdXc,27873
|
45
|
+
fabricatio/models/kwargs_types.py,sha256=Ik8-Oi_NmwfkvC9B8K4NsoZc_vSWV85xKCSthA1Xv_k,3403
|
46
|
+
fabricatio/models/role.py,sha256=b3zg96YKDsMBqa7SIe9LQHc-IVs2fGWqoQeRQYQIl4o,3856
|
47
|
+
fabricatio/models/task.py,sha256=XZ1l1P-iS02ZF9P8cXv8gEfJKBa17PFPNJ1SbhyhT4Q,11033
|
48
|
+
fabricatio/models/tool.py,sha256=up_sN5Y38V_2sTb7rvmsR1cTmf0ACZOftTHsy-VrkCs,12503
|
49
|
+
fabricatio/models/usages.py,sha256=CSd6XyEugkyWDSHRA0oMsJeEiwliQLsDo1V0GGmZ2og,33027
|
50
|
+
fabricatio/parser.py,sha256=dYFri9pDlsiwVpEJ-a5jmVU2nFuKN3uBHC8VsVpdEm8,4642
|
51
|
+
fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
52
|
+
fabricatio/rust.pyi,sha256=dlssKYR2RrS9UQb9bc3y6XP7a9Clq1Qr40dzMW_vNB0,26256
|
53
|
+
fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
|
54
|
+
fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
|
55
|
+
fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
|
56
|
+
fabricatio/utils.py,sha256=WYhFB4tHk6jKmjZgAsYhRmg1ZvBjn4X2y4n7yz25HjE,5454
|
57
|
+
fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
|
58
|
+
fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
|
59
|
+
fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
|
60
|
+
fabricatio/__init__.py,sha256=Qdc-WtYA9DTt-UvOqqWoPI-Qx3COHQhU_3GqP-dg90Q,784
|
61
|
+
fabricatio/rust.cp312-win_amd64.pyd,sha256=LsTZv5I08Epvn-E6kBX2Utllf6L0oKZ7IdSCDIAudu8,7816192
|
62
|
+
fabricatio-0.3.14.dev2.data/scripts/tdown.exe,sha256=sCHm3QOE48Cl1xCs5W25DdoodOlKW6MzGBhhIvGHiVY,3451392
|
63
|
+
fabricatio-0.3.14.dev2.data/scripts/ttm.exe,sha256=i1EXzzTgrz4HHkffE0T2Wi6rPhwuLAHwsrTYr8w0T3w,2557440
|
64
|
+
fabricatio-0.3.14.dev2.dist-info/RECORD,,
|
Binary file
|
@@ -1,63 +0,0 @@
|
|
1
|
-
fabricatio-0.3.14.dev0.dist-info/METADATA,sha256=wYdyUN-54xDS1x4TkCPzO8tQ8XZKmMOz5O33vlSWGSg,5246
|
2
|
-
fabricatio-0.3.14.dev0.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
|
3
|
-
fabricatio-0.3.14.dev0.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
|
4
|
-
fabricatio/actions/article.py,sha256=vkYbzRy4SSJL73SFdgdsMfUy3nbjNFc44mu1-uPjqBo,12627
|
5
|
-
fabricatio/actions/article_rag.py,sha256=Ahij8TSNvE5T1rHhJM5zNj57SaORldNj1YEHFTj0xm8,18631
|
6
|
-
fabricatio/actions/fs.py,sha256=gJR14U4ln35nt8Z7OWLVAZpqGaLnED-r1Yi-lX22tkI,959
|
7
|
-
fabricatio/actions/output.py,sha256=w_7xVFs7OZ8uXqFQKmuXw7Y0vWugSuN6phcVW_VnCqI,8389
|
8
|
-
fabricatio/actions/rag.py,sha256=UifqC4jPpmhTrfToXkqi6ElbNxUoc2wqSMJQEubkhNU,3589
|
9
|
-
fabricatio/actions/rules.py,sha256=dkvCgNDjt2KSO1VgPRsxT4YBmIIMeetZb5tiz-slYkU,3640
|
10
|
-
fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
|
11
|
-
fabricatio/capabilities/advanced_judge.py,sha256=selB0Gwf1F4gGJlwBiRo6gI4KOUROgh3WnzO3mZFEls,706
|
12
|
-
fabricatio/capabilities/advanced_rag.py,sha256=FaXHGOqS4VleGSLsnC5qm4S4EBcHZLZbj8TjXRieKBs,2513
|
13
|
-
fabricatio/capabilities/censor.py,sha256=bBT5qy-kp7fh8g4Lz3labSwxwJ60gGd_vrkc6k1cZ1U,4719
|
14
|
-
fabricatio/capabilities/check.py,sha256=3Y7M9DLYWJefCMDg4aSYuU7XgVdWGR4ElQVeHFVYt4U,8663
|
15
|
-
fabricatio/capabilities/correct.py,sha256=K-m8OZK25AjboGQXFltNk_A3WPBByi1sG_fuEHWDGFw,10445
|
16
|
-
fabricatio/capabilities/extract.py,sha256=005FFcLAC_A6FNmuGK679yJtTL8ai__Zg5bjG9eiSts,2619
|
17
|
-
fabricatio/capabilities/propose.py,sha256=hkBeSlmcTdfYWT-ph6nlbtHXBozi_JXqXlWcnBy3W78,2007
|
18
|
-
fabricatio/capabilities/rag.py,sha256=LHSpBW6FTEgUvsIbE5HGhlRba_bRV5-kM1s8fZUc_IM,11143
|
19
|
-
fabricatio/capabilities/rating.py,sha256=JdxNzjg7hQO6Cbe4Muf20r6f1Cb9dQnUBQq1VRS_bRU,18089
|
20
|
-
fabricatio/capabilities/review.py,sha256=qimV-r51nqLtAcKBO0SKS_J06DYLUL-FsbZNA9JxQ9k,5060
|
21
|
-
fabricatio/capabilities/task.py,sha256=mqRzrNBJEYTYbNfDPhTNy9bpDFyUpygff6FKBiNumbA,4431
|
22
|
-
fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
|
23
|
-
fabricatio/core.py,sha256=KN2Rx-j46xzCh9s2ckfXruz3lui6Q2JPV6LKwjHhkJQ,6485
|
24
|
-
fabricatio/decorators.py,sha256=TGUTUuIfSV2u6Thv1kmAVXAPN_8ynP5T28R8MQw8eg0,8990
|
25
|
-
fabricatio/fs/curd.py,sha256=652nHulbJ3gwt0Z3nywtPMmjhEyglDvEfc3p7ieJNNA,4777
|
26
|
-
fabricatio/fs/readers.py,sha256=UXvcJO3UCsxHu9PPkg34Yh55Zi-miv61jD_wZQJgKRs,1751
|
27
|
-
fabricatio/fs/__init__.py,sha256=USoMI_HcIr3Yc77_JQYYsXrsplYPXtFTaNB9YgFfC4s,713
|
28
|
-
fabricatio/journal.py,sha256=I02_ntN7_WyI_m1RsHB1gEv8LfWtcVGmOqppEV8XjKI,289
|
29
|
-
fabricatio/models/action.py,sha256=-XIzuE-LE38GWuj_0WdSGSQ7kVUMzXUUnfqJ-XcA20o,10084
|
30
|
-
fabricatio/models/adv_kwargs_types.py,sha256=IBV3ZcsNLvvEjO_2hBpYg_wLSpNKaMx6Ndam3qXJCw8,2097
|
31
|
-
fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
|
32
|
-
fabricatio/models/extra/aricle_rag.py,sha256=2dHQOz7Br8xpf3PTtdZmrIw49kC4_YGa89evta67LYg,11707
|
33
|
-
fabricatio/models/extra/article_base.py,sha256=4veM9DNd7T54iocoLS1mP-jOPImrxACAzfsdd6A3LIU,16736
|
34
|
-
fabricatio/models/extra/article_essence.py,sha256=mlIkkRMR3I1RtqiiOnmIE3Vy623L4eECumkRzryE1pw,2749
|
35
|
-
fabricatio/models/extra/article_main.py,sha256=jOHJt6slBakOAdY8IDq4JPiPGXX0_g1n3ROm802UYqc,11221
|
36
|
-
fabricatio/models/extra/article_outline.py,sha256=mw7eOuKMJgns4bihjcjOEIpAy38i0g-x6T6Vx3J0T5A,1629
|
37
|
-
fabricatio/models/extra/article_proposal.py,sha256=NbyjW-7UiFPtnVD9nte75re4xL2pD4qL29PpNV4Cg_M,1870
|
38
|
-
fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
|
39
|
-
fabricatio/models/extra/problem.py,sha256=8tTU-3giFHOi5j7NJsvH__JJyYcaGrcfsRnkzQNm0Ew,7216
|
40
|
-
fabricatio/models/extra/rag.py,sha256=RMi8vhEPB0I5mVmjRLRLxYHUnm9pFhvVwysaIwmW2s0,3955
|
41
|
-
fabricatio/models/extra/rule.py,sha256=KQQELVhCLUXhEZ35jU3WGYqKHuCYEAkn0p6pxAE-hOU,2625
|
42
|
-
fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
|
43
|
-
fabricatio/models/generic.py,sha256=c-_VogsBUbNaU11KZizCI4AzLgg5_FCRLbNYcQKHyks,30424
|
44
|
-
fabricatio/models/kwargs_types.py,sha256=tDeF0B_TnumYGCKU58f-llAApn6ng_Joz8CcGq5GiLk,3619
|
45
|
-
fabricatio/models/role.py,sha256=Uukgh3Nxk5N2QEnyg9CMfsngW9GSgKV_Z7nnvafUYfc,3810
|
46
|
-
fabricatio/models/task.py,sha256=vOL8mzwBRMWC8R_59zh4SDXkjWuAL6WTtsAGfcxp_eE,11032
|
47
|
-
fabricatio/models/tool.py,sha256=uNYVCNr9KUBWQ_KAtekGECdNPZREGJ9Aioyk4lrvtTE,12503
|
48
|
-
fabricatio/models/usages.py,sha256=FyWdKAce2Am10zByISBuf_Tdd4hRnhkAxcXIzyV77LU,33474
|
49
|
-
fabricatio/parser.py,sha256=QXHoJf0i9lAuaUjPBltXXvDZqyeuPwDLdQgr1uMU95w,6633
|
50
|
-
fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
|
-
fabricatio/rust.pyi,sha256=fWK5q3b-TEDfSYQh9vlZq-kTpA9NBXttGszPMVEnODs,25221
|
52
|
-
fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
|
53
|
-
fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
|
54
|
-
fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
|
55
|
-
fabricatio/utils.py,sha256=_kNYzLzBudhjZ3RwgeIPKSxKbOVMgCwoj-BzjYPB0G8,11566
|
56
|
-
fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
|
57
|
-
fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
|
58
|
-
fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
|
59
|
-
fabricatio/__init__.py,sha256=QoZ1WNvK5UVaMGed2GOE781TvF76om3LHe5eVEBSSUE,809
|
60
|
-
fabricatio/rust.cp312-win_amd64.pyd,sha256=lvRcjPuXO8XglnZ9J7QX4AJx1z7Zfj13Msia4orfs-A,6022144
|
61
|
-
fabricatio-0.3.14.dev0.data/scripts/tdown.exe,sha256=dNcSMR1zfpD8t_QYEP0xfqCfEZZ1P1EBWYOxroxTWSU,3356160
|
62
|
-
fabricatio-0.3.14.dev0.data/scripts/ttm.exe,sha256=Q4kRd27t8Fv--kYuoHqhK0NyvFt2jCY8Q11vrWDa2z0,2554880
|
63
|
-
fabricatio-0.3.14.dev0.dist-info/RECORD,,
|
File without changes
|
File without changes
|