fabricatio 0.2.9.dev4__cp312-cp312-win_amd64.whl → 0.2.10.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 +11 -107
- fabricatio/actions/article_rag.py +33 -2
- fabricatio/actions/rag.py +40 -18
- fabricatio/capabilities/check.py +2 -1
- fabricatio/capabilities/rag.py +41 -231
- fabricatio/constants.py +20 -0
- fabricatio/decorators.py +23 -0
- fabricatio/models/adv_kwargs_types.py +35 -0
- fabricatio/models/events.py +6 -6
- fabricatio/models/extra/advanced_judge.py +2 -2
- fabricatio/models/extra/aricle_rag.py +120 -0
- fabricatio/models/extra/article_base.py +2 -186
- fabricatio/models/extra/article_essence.py +8 -7
- fabricatio/models/extra/article_main.py +12 -107
- fabricatio/models/extra/problem.py +12 -17
- fabricatio/models/extra/rag.py +98 -0
- fabricatio/models/extra/rule.py +1 -2
- fabricatio/models/generic.py +19 -11
- fabricatio/models/kwargs_types.py +6 -36
- fabricatio/models/task.py +3 -3
- fabricatio/models/usages.py +73 -5
- fabricatio/rust.cp312-win_amd64.pyd +0 -0
- fabricatio/rust.pyi +35 -6
- fabricatio/utils.py +14 -1
- {fabricatio-0.2.9.dev4.data → fabricatio-0.2.10.dev1.data}/scripts/tdown.exe +0 -0
- {fabricatio-0.2.9.dev4.dist-info → fabricatio-0.2.10.dev1.dist-info}/METADATA +1 -4
- {fabricatio-0.2.9.dev4.dist-info → fabricatio-0.2.10.dev1.dist-info}/RECORD +29 -27
- fabricatio/models/utils.py +0 -148
- {fabricatio-0.2.9.dev4.dist-info → fabricatio-0.2.10.dev1.dist-info}/WHEEL +0 -0
- {fabricatio-0.2.9.dev4.dist-info → fabricatio-0.2.10.dev1.dist-info}/licenses/LICENSE +0 -0
fabricatio/models/generic.py
CHANGED
@@ -6,12 +6,11 @@ from pathlib import Path
|
|
6
6
|
from typing import Any, Callable, Dict, Iterable, List, Optional, Self, Type, Union, final, overload
|
7
7
|
|
8
8
|
import orjson
|
9
|
-
import rtoml
|
10
9
|
from fabricatio.config import configs
|
11
10
|
from fabricatio.fs.readers import MAGIKA, safe_text_read
|
12
11
|
from fabricatio.journal import logger
|
13
12
|
from fabricatio.parser import JsonCapture
|
14
|
-
from fabricatio.rust import blake3_hash
|
13
|
+
from fabricatio.rust import blake3_hash, detect_language
|
15
14
|
from fabricatio.rust_instances import TEMPLATE_MANAGER
|
16
15
|
from fabricatio.utils import ok
|
17
16
|
from litellm.utils import token_counter
|
@@ -53,7 +52,7 @@ class Display(Base):
|
|
53
52
|
Returns:
|
54
53
|
str: JSON string with 1-level indentation for readability
|
55
54
|
"""
|
56
|
-
return self.model_dump_json(indent=1)
|
55
|
+
return self.model_dump_json(indent=1, by_alias=True)
|
57
56
|
|
58
57
|
def compact(self) -> str:
|
59
58
|
"""Generate compact JSON representation.
|
@@ -61,7 +60,7 @@ class Display(Base):
|
|
61
60
|
Returns:
|
62
61
|
str: Minified JSON string without whitespace
|
63
62
|
"""
|
64
|
-
return self.model_dump_json()
|
63
|
+
return self.model_dump_json(by_alias=True)
|
65
64
|
|
66
65
|
@staticmethod
|
67
66
|
def seq_display(seq: Iterable["Display"], compact: bool = False) -> str:
|
@@ -225,7 +224,7 @@ class PersistentAble(Base):
|
|
225
224
|
- Hash generated from JSON content ensures uniqueness
|
226
225
|
"""
|
227
226
|
p = Path(path)
|
228
|
-
out = self.model_dump_json(indent=1)
|
227
|
+
out = self.model_dump_json(indent=1, by_alias=True)
|
229
228
|
|
230
229
|
# Generate a timestamp in the format YYYYMMDD_HHMMSS
|
231
230
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
@@ -298,8 +297,17 @@ class PersistentAble(Base):
|
|
298
297
|
class Language(Base):
|
299
298
|
"""Class that provides a language attribute."""
|
300
299
|
|
301
|
-
|
302
|
-
|
300
|
+
@property
|
301
|
+
def language(self) -> str:
|
302
|
+
"""Get the language of the object."""
|
303
|
+
if isinstance(self, Described):
|
304
|
+
return detect_language(self.description)
|
305
|
+
if isinstance(self, Titled):
|
306
|
+
return detect_language(self.title)
|
307
|
+
if isinstance(self, Named):
|
308
|
+
return detect_language(self.name)
|
309
|
+
|
310
|
+
return detect_language(self.model_dump_json(by_alias=True))
|
303
311
|
|
304
312
|
|
305
313
|
class ModelHash(Base):
|
@@ -543,7 +551,7 @@ class FinalizedDumpAble(Base):
|
|
543
551
|
Returns:
|
544
552
|
str: The finalized dump of the object.
|
545
553
|
"""
|
546
|
-
return self.model_dump_json()
|
554
|
+
return self.model_dump_json(indent=1, by_alias=True)
|
547
555
|
|
548
556
|
def finalized_dump_to(self, path: str | Path) -> Self:
|
549
557
|
"""Finalize the dump of the object to a file.
|
@@ -655,8 +663,9 @@ class Vectorizable(Base):
|
|
655
663
|
This class includes methods to prepare the model for vectorization, ensuring it fits within a specified token length.
|
656
664
|
"""
|
657
665
|
|
666
|
+
@abstractmethod
|
658
667
|
def _prepare_vectorization_inner(self) -> str:
|
659
|
-
|
668
|
+
"""Prepare the model for vectorization."""
|
660
669
|
|
661
670
|
@final
|
662
671
|
def prepare_vectorization(self, max_length: Optional[int] = None) -> str:
|
@@ -674,8 +683,7 @@ class Vectorizable(Base):
|
|
674
683
|
max_length = max_length or configs.embedding.max_sequence_length
|
675
684
|
chunk = self._prepare_vectorization_inner()
|
676
685
|
if max_length and (length := token_counter(text=chunk)) > max_length:
|
677
|
-
|
678
|
-
raise ValueError(err)
|
686
|
+
raise ValueError(f"Chunk exceeds maximum sequence length {max_length}, got {length}, see \n{chunk}")
|
679
687
|
|
680
688
|
return chunk
|
681
689
|
|
@@ -1,47 +1,16 @@
|
|
1
1
|
"""This module contains the types for the keyword arguments of the methods in the models module."""
|
2
2
|
|
3
|
-
from
|
4
|
-
from typing import Any, Dict, List, Optional, Required, TypedDict
|
3
|
+
from typing import Any, Dict, List, NotRequired, Optional, Required, TypedDict
|
5
4
|
|
6
5
|
from litellm.caching.caching import CacheMode
|
7
6
|
from litellm.types.caching import CachingSupportedCallTypes
|
8
7
|
|
9
|
-
if find_spec("pymilvus"):
|
10
|
-
from pymilvus import CollectionSchema
|
11
|
-
from pymilvus.milvus_client import IndexParams
|
12
8
|
|
13
|
-
|
14
|
-
|
9
|
+
class ChunkKwargs(TypedDict):
|
10
|
+
"""Configuration parameters for chunking operations."""
|
15
11
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dimension: int | None
|
20
|
-
primary_field_name: str
|
21
|
-
id_type: str
|
22
|
-
vector_field_name: str
|
23
|
-
metric_type: str
|
24
|
-
timeout: float | None
|
25
|
-
schema: CollectionSchema | None
|
26
|
-
index_params: IndexParams | None
|
27
|
-
|
28
|
-
|
29
|
-
class FetchKwargs(TypedDict, total=False):
|
30
|
-
"""Arguments for fetching data from vector collections.
|
31
|
-
|
32
|
-
Controls how data is retrieved from vector databases, including filtering
|
33
|
-
and result limiting parameters.
|
34
|
-
"""
|
35
|
-
|
36
|
-
collection_name: str | None
|
37
|
-
similarity_threshold: float
|
38
|
-
result_per_query: int
|
39
|
-
|
40
|
-
|
41
|
-
class RetrievalKwargs(FetchKwargs, total=False):
|
42
|
-
"""Arguments for retrieval operations."""
|
43
|
-
|
44
|
-
final_limit: int
|
12
|
+
max_chunk_size: int
|
13
|
+
max_overlapping_rate: NotRequired[float]
|
45
14
|
|
46
15
|
|
47
16
|
class EmbeddingKwargs(TypedDict, total=False):
|
@@ -139,6 +108,7 @@ class ReviewKwargs[T](ReviewInnerKwargs[T], total=False):
|
|
139
108
|
|
140
109
|
class ReferencedKwargs[T](ValidateKwargs[T], total=False):
|
141
110
|
"""Arguments for content review operations."""
|
111
|
+
|
142
112
|
reference: str
|
143
113
|
|
144
114
|
|
fabricatio/models/task.py
CHANGED
@@ -7,11 +7,11 @@ from asyncio import Queue
|
|
7
7
|
from typing import Any, List, Optional, Self
|
8
8
|
|
9
9
|
from fabricatio.config import configs
|
10
|
+
from fabricatio.constants import TaskStatus
|
10
11
|
from fabricatio.core import env
|
11
12
|
from fabricatio.journal import logger
|
12
13
|
from fabricatio.models.events import Event, EventLike
|
13
14
|
from fabricatio.models.generic import ProposedAble, WithBriefing, WithDependency
|
14
|
-
from fabricatio.models.utils import TaskStatus
|
15
15
|
from fabricatio.rust_instances import TEMPLATE_MANAGER
|
16
16
|
from pydantic import Field, PrivateAttr
|
17
17
|
|
@@ -112,12 +112,12 @@ class Task[T](WithBriefing, ProposedAble, WithDependency):
|
|
112
112
|
"""Return a formatted status label for the task.
|
113
113
|
|
114
114
|
Args:
|
115
|
-
status (TaskStatus): The status of the task.
|
115
|
+
status (fabricatio.constants.TaskStatus): The status of the task.
|
116
116
|
|
117
117
|
Returns:
|
118
118
|
str: The formatted status label.
|
119
119
|
"""
|
120
|
-
return self._namespace.derive(self.name).push(status
|
120
|
+
return self._namespace.derive(self.name).push(status).collapse()
|
121
121
|
|
122
122
|
@property
|
123
123
|
def pending_label(self) -> str:
|
fabricatio/models/usages.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
import traceback
|
4
4
|
from asyncio import gather
|
5
|
-
from typing import Callable, Dict, Iterable, List, Optional, Self, Sequence, Set, Union, Unpack, overload
|
5
|
+
from typing import Callable, Dict, Iterable, List, Literal, Optional, Self, Sequence, Set, Union, Unpack, overload
|
6
6
|
|
7
7
|
import asyncstdlib
|
8
8
|
import litellm
|
@@ -13,7 +13,6 @@ from fabricatio.models.generic import ScopedConfig, WithBriefing
|
|
13
13
|
from fabricatio.models.kwargs_types import ChooseKwargs, EmbeddingKwargs, GenerateKwargs, LLMKwargs, ValidateKwargs
|
14
14
|
from fabricatio.models.task import Task
|
15
15
|
from fabricatio.models.tool import Tool, ToolBox
|
16
|
-
from fabricatio.models.utils import Messages
|
17
16
|
from fabricatio.parser import GenericCapture, JsonCapture
|
18
17
|
from fabricatio.rust_instances import TEMPLATE_MANAGER
|
19
18
|
from fabricatio.utils import ok
|
@@ -28,7 +27,7 @@ from litellm.types.utils import (
|
|
28
27
|
)
|
29
28
|
from litellm.utils import CustomStreamWrapper, token_counter # pyright: ignore [reportPrivateImportUsage]
|
30
29
|
from more_itertools import duplicates_everseen
|
31
|
-
from pydantic import Field, NonNegativeInt, PositiveInt
|
30
|
+
from pydantic import BaseModel, ConfigDict, Field, NonNegativeInt, PositiveInt
|
32
31
|
|
33
32
|
if configs.cache.enabled and configs.cache.type:
|
34
33
|
litellm.enable_cache(type=configs.cache.type, **configs.cache.params)
|
@@ -303,7 +302,7 @@ class LLMUsage(ScopedConfig):
|
|
303
302
|
and logger.debug("Co-extraction is enabled.") is None
|
304
303
|
and (
|
305
304
|
validated := validator(
|
306
|
-
response:=await self.aask(
|
305
|
+
response := await self.aask(
|
307
306
|
question=(
|
308
307
|
TEMPLATE_MANAGER.render_template(
|
309
308
|
configs.templates.co_validation_template,
|
@@ -495,7 +494,7 @@ class LLMUsage(ScopedConfig):
|
|
495
494
|
affirm_case: str = "",
|
496
495
|
deny_case: str = "",
|
497
496
|
**kwargs: Unpack[ValidateKwargs[bool]],
|
498
|
-
) -> bool:
|
497
|
+
) -> Optional[bool]:
|
499
498
|
"""Asynchronously judges a prompt using AI validation.
|
500
499
|
|
501
500
|
Args:
|
@@ -732,3 +731,72 @@ class ToolBoxUsage(LLMUsage):
|
|
732
731
|
for other in (x for x in others if isinstance(x, ToolBoxUsage)):
|
733
732
|
other.toolboxes.update(self.toolboxes)
|
734
733
|
return self
|
734
|
+
|
735
|
+
|
736
|
+
class Message(BaseModel):
|
737
|
+
"""A class representing a message."""
|
738
|
+
|
739
|
+
model_config = ConfigDict(use_attribute_docstrings=True)
|
740
|
+
role: Literal["user", "system", "assistant"]
|
741
|
+
"""The role of the message sender."""
|
742
|
+
content: str
|
743
|
+
"""The content of the message."""
|
744
|
+
|
745
|
+
|
746
|
+
class Messages(list):
|
747
|
+
"""A list of messages."""
|
748
|
+
|
749
|
+
def add_message(self, role: Literal["user", "system", "assistant"], content: str) -> Self:
|
750
|
+
"""Adds a message to the list with the specified role and content.
|
751
|
+
|
752
|
+
Args:
|
753
|
+
role (Literal["user", "system", "assistant"]): The role of the message sender.
|
754
|
+
content (str): The content of the message.
|
755
|
+
|
756
|
+
Returns:
|
757
|
+
Self: The current instance of Messages to allow method chaining.
|
758
|
+
"""
|
759
|
+
if content:
|
760
|
+
self.append(Message(role=role, content=content))
|
761
|
+
return self
|
762
|
+
|
763
|
+
def add_user_message(self, content: str) -> Self:
|
764
|
+
"""Adds a user message to the list with the specified content.
|
765
|
+
|
766
|
+
Args:
|
767
|
+
content (str): The content of the user message.
|
768
|
+
|
769
|
+
Returns:
|
770
|
+
Self: The current instance of Messages to allow method chaining.
|
771
|
+
"""
|
772
|
+
return self.add_message("user", content)
|
773
|
+
|
774
|
+
def add_system_message(self, content: str) -> Self:
|
775
|
+
"""Adds a system message to the list with the specified content.
|
776
|
+
|
777
|
+
Args:
|
778
|
+
content (str): The content of the system message.
|
779
|
+
|
780
|
+
Returns:
|
781
|
+
Self: The current instance of Messages to allow method chaining.
|
782
|
+
"""
|
783
|
+
return self.add_message("system", content)
|
784
|
+
|
785
|
+
def add_assistant_message(self, content: str) -> Self:
|
786
|
+
"""Adds an assistant message to the list with the specified content.
|
787
|
+
|
788
|
+
Args:
|
789
|
+
content (str): The content of the assistant message.
|
790
|
+
|
791
|
+
Returns:
|
792
|
+
Self: The current instance of Messages to allow method chaining.
|
793
|
+
"""
|
794
|
+
return self.add_message("assistant", content)
|
795
|
+
|
796
|
+
def as_list(self) -> List[Dict[str, str]]:
|
797
|
+
"""Converts the messages to a list of dictionaries.
|
798
|
+
|
799
|
+
Returns:
|
800
|
+
list[dict]: A list of dictionaries representing the messages.
|
801
|
+
"""
|
802
|
+
return [message.model_dump() for message in self]
|
Binary file
|
fabricatio/rust.pyi
CHANGED
@@ -12,9 +12,7 @@ Key Features:
|
|
12
12
|
"""
|
13
13
|
|
14
14
|
from pathlib import Path
|
15
|
-
from typing import List, Optional
|
16
|
-
|
17
|
-
from pydantic import JsonValue
|
15
|
+
from typing import Any, Dict, List, Optional
|
18
16
|
|
19
17
|
class TemplateManager:
|
20
18
|
"""Template rendering engine using Handlebars templates.
|
@@ -56,7 +54,7 @@ class TemplateManager:
|
|
56
54
|
This refreshes the template cache, finding any new or modified templates.
|
57
55
|
"""
|
58
56
|
|
59
|
-
def render_template(self, name: str, data:
|
57
|
+
def render_template(self, name: str, data: Dict[str, Any]) -> str:
|
60
58
|
"""Render a template with context data.
|
61
59
|
|
62
60
|
Args:
|
@@ -70,7 +68,7 @@ class TemplateManager:
|
|
70
68
|
RuntimeError: If template rendering fails
|
71
69
|
"""
|
72
70
|
|
73
|
-
def render_template_raw(self, template: str, data:
|
71
|
+
def render_template_raw(self, template: str, data: Dict[str, Any]) -> str:
|
74
72
|
"""Render a template with context data.
|
75
73
|
|
76
74
|
Args:
|
@@ -104,6 +102,28 @@ def split_word_bounds(string: str) -> List[str]:
|
|
104
102
|
A list of words extracted from the string.
|
105
103
|
"""
|
106
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
|
+
|
107
127
|
def word_count(string: str) -> int:
|
108
128
|
"""Count the number of words in the string.
|
109
129
|
|
@@ -127,7 +147,7 @@ class BibManager:
|
|
127
147
|
RuntimeError: If file cannot be read or parsed
|
128
148
|
"""
|
129
149
|
|
130
|
-
def
|
150
|
+
def get_cite_key_by_title(self, title: str) -> Optional[str]:
|
131
151
|
"""Find citation key by exact title match.
|
132
152
|
|
133
153
|
Args:
|
@@ -136,6 +156,15 @@ class BibManager:
|
|
136
156
|
Returns:
|
137
157
|
Citation key if exact match found, None otherwise
|
138
158
|
"""
|
159
|
+
def get_cite_key_by_title_fuzzy(self, title: str) -> Optional[str]:
|
160
|
+
"""Find citation key by fuzzy title match.
|
161
|
+
|
162
|
+
Args:
|
163
|
+
title: Search term to find in bibliography entries
|
164
|
+
|
165
|
+
Returns:
|
166
|
+
Citation key of best matching entry, or None if no good match
|
167
|
+
"""
|
139
168
|
|
140
169
|
def get_cite_key_fuzzy(self, query: str) -> Optional[str]:
|
141
170
|
"""Find best matching citation using fuzzy text search.
|
fabricatio/utils.py
CHANGED
@@ -25,7 +25,7 @@ async def ask_edit(
|
|
25
25
|
return res
|
26
26
|
|
27
27
|
|
28
|
-
def override_kwargs(kwargs: Mapping[str,Any], **overrides) -> Dict[str, Any]:
|
28
|
+
def override_kwargs(kwargs: Mapping[str, Any], **overrides) -> Dict[str, Any]:
|
29
29
|
"""Override the values in kwargs with the provided overrides."""
|
30
30
|
new_kwargs = dict(kwargs.items())
|
31
31
|
new_kwargs.update({k: v for k, v in overrides.items() if v is not None})
|
@@ -52,3 +52,16 @@ def ok[T](val: Optional[T], msg: str = "Value is None") -> T:
|
|
52
52
|
if val is None:
|
53
53
|
raise ValueError(msg)
|
54
54
|
return val
|
55
|
+
|
56
|
+
|
57
|
+
def wrapp_in_block(string: str, title: str) -> str:
|
58
|
+
"""Wraps a string in a block with a title.
|
59
|
+
|
60
|
+
Args:
|
61
|
+
string: The string to wrap.
|
62
|
+
title: The title of the block.
|
63
|
+
|
64
|
+
Returns:
|
65
|
+
str: The wrapped string.
|
66
|
+
"""
|
67
|
+
return f"--- Start of {title} ---\n{string}\n--- End of {title} ---"
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fabricatio
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.10.dev1
|
4
4
|
Classifier: License :: OSI Approved :: MIT License
|
5
5
|
Classifier: Programming Language :: Rust
|
6
6
|
Classifier: Programming Language :: Python :: 3.12
|
@@ -23,7 +23,6 @@ Requires-Dist: pymitter>=1.0.0
|
|
23
23
|
Requires-Dist: questionary>=2.1.0
|
24
24
|
Requires-Dist: regex>=2024.11.6
|
25
25
|
Requires-Dist: rich>=13.9.4
|
26
|
-
Requires-Dist: rtoml>=0.12.0
|
27
26
|
Requires-Dist: pymilvus>=2.5.4 ; extra == 'rag'
|
28
27
|
Requires-Dist: fabricatio[calc,plot,rag] ; extra == 'full'
|
29
28
|
Requires-Dist: sympy>=1.13.3 ; extra == 'calc'
|
@@ -45,8 +44,6 @@ Project-URL: Issues, https://github.com/Whth/fabricatio/issues
|
|
45
44
|
# Fabricatio
|
46
45
|
|
47
46
|

|
48
|
-

|
49
|
-

|
50
47
|
|
51
48
|
## Overview
|
52
49
|
|
@@ -1,61 +1,63 @@
|
|
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=
|
1
|
+
fabricatio-0.2.10.dev1.dist-info/METADATA,sha256=HRPFnRmPH19wYpcE1dJoL6Kltg2vewsF432CMSqV-Yg,5118
|
2
|
+
fabricatio-0.2.10.dev1.dist-info/WHEEL,sha256=jABKVkLC9kJr8mi_er5jOqpiQUjARSLXDUIIxDqsS50,96
|
3
|
+
fabricatio-0.2.10.dev1.dist-info/licenses/LICENSE,sha256=do7J7EiCGbq0QPbMAL_FqLYufXpHnCnXBOuqVPwSV8Y,1088
|
4
|
+
fabricatio/actions/article.py,sha256=0PE-b47WvBQpa4XPwc4sMe11GY8KO71N4pui_Yrnz_I,8993
|
5
|
+
fabricatio/actions/article_rag.py,sha256=79466dKS1TaT2rw5gadM1WfZoRJy07LmtoMXvfCZ2-U,5952
|
6
6
|
fabricatio/actions/output.py,sha256=gkC2u_VpMJ6jOnbyRAJN24UVK7iDAMzhItYukaW8Spk,6498
|
7
|
-
fabricatio/actions/rag.py,sha256=
|
7
|
+
fabricatio/actions/rag.py,sha256=9fM4oR5B4AJNhKmWfUlNIeF4QkUntQscICNVo_zWPSA,3580
|
8
8
|
fabricatio/actions/rules.py,sha256=SNvAvQx4xUare16Za_dEpYlYI_PJNnbiO-E0XDa5JT4,2857
|
9
9
|
fabricatio/actions/__init__.py,sha256=wVENCFtpVb1rLFxoOFJt9-8smLWXuJV7IwA8P3EfFz4,48
|
10
10
|
fabricatio/capabilities/advanced_judge.py,sha256=selB0Gwf1F4gGJlwBiRo6gI4KOUROgh3WnzO3mZFEls,706
|
11
11
|
fabricatio/capabilities/censor.py,sha256=bBT5qy-kp7fh8g4Lz3labSwxwJ60gGd_vrkc6k1cZ1U,4719
|
12
|
-
fabricatio/capabilities/check.py,sha256=
|
12
|
+
fabricatio/capabilities/check.py,sha256=kYqzohhv2bZfl1aKSUt7a8snT8YEl2zgha_ZdAdMMfQ,8622
|
13
13
|
fabricatio/capabilities/correct.py,sha256=W_cInqlciNEhyMK0YI53jk4EvW9uAdge90IO9OElUmA,10420
|
14
14
|
fabricatio/capabilities/propose.py,sha256=hkBeSlmcTdfYWT-ph6nlbtHXBozi_JXqXlWcnBy3W78,2007
|
15
|
-
fabricatio/capabilities/rag.py,sha256=
|
15
|
+
fabricatio/capabilities/rag.py,sha256=kqcunWBC6oA4P1rzIG2Xu9zqSg73H3uKPF41JJQ1HVI,9595
|
16
16
|
fabricatio/capabilities/rating.py,sha256=Wt_H5fA1H4XuZGIMI8pr0cp_6jnXJABlo8lfU_4Fp5A,17645
|
17
17
|
fabricatio/capabilities/review.py,sha256=-EMZe0ADFPT6fPGmra16UPjJC1M3rAs6dPFdTZ88Fgg,5060
|
18
18
|
fabricatio/capabilities/task.py,sha256=JahC61X233UIPsjovxJgc_yqj_BjWZJBCzJZq11M2Xk,4417
|
19
19
|
fabricatio/capabilities/__init__.py,sha256=v1cHRHIJ2gxyqMLNCs6ERVcCakSasZNYzmMI4lqAcls,57
|
20
20
|
fabricatio/config.py,sha256=gqhdKxoj4S0EmQKprAEWUARn7yJg-w5UJ7d7GPlyttw,17631
|
21
|
+
fabricatio/constants.py,sha256=thfDuF6JEtJ5CHOnAJLfqvn5834n8ep6DH2jc6XGzQM,577
|
21
22
|
fabricatio/core.py,sha256=VQ_JKgUGIy2gZ8xsTBZCdr_IP7wC5aPg0_bsOmjQ588,6458
|
22
|
-
fabricatio/decorators.py,sha256
|
23
|
+
fabricatio/decorators.py,sha256=-rLj9OXRfzY2E2euLKAHNRcWXjA1teLElg4zZYdIojs,8291
|
23
24
|
fabricatio/fs/curd.py,sha256=p8y0LGKgVDk-CWOlm37E6wg7RK6RCD6denKo-VsW28c,4763
|
24
25
|
fabricatio/fs/readers.py,sha256=M5kojKWsJQMQpE4CBbYvas0JKmPaiaYSfWmiqJx1SP4,1884
|
25
26
|
fabricatio/fs/__init__.py,sha256=PCf0s_9KDjVfNw7AfPoJzGt3jMq4gJOfbcT4pb0D0ZY,588
|
26
27
|
fabricatio/journal.py,sha256=stnEP88aUBA_GmU9gfTF2EZI8FS2OyMLGaMSTgK4QgA,476
|
27
28
|
fabricatio/models/action.py,sha256=Kfa-zojgHQ1vPoC2lQp-thTTp0oySKn7k6I4ea6iYTs,9837
|
28
|
-
fabricatio/models/adv_kwargs_types.py,sha256=
|
29
|
-
fabricatio/models/events.py,sha256=
|
30
|
-
fabricatio/models/extra/advanced_judge.py,sha256=
|
31
|
-
fabricatio/models/extra/
|
32
|
-
fabricatio/models/extra/
|
33
|
-
fabricatio/models/extra/
|
29
|
+
fabricatio/models/adv_kwargs_types.py,sha256=kUO-SiZtFuz5cZCmMLnJJ9tjQ4-Zd_foo6R8HQMlM5A,1950
|
30
|
+
fabricatio/models/events.py,sha256=wiirk_ASg3iXDOZU_gIimci1VZVzWE1nDmxy-hQVJ9M,4150
|
31
|
+
fabricatio/models/extra/advanced_judge.py,sha256=INUl_41C8jkausDekkjnEmTwNfLCJ23TwFjq2cM23Cw,1092
|
32
|
+
fabricatio/models/extra/aricle_rag.py,sha256=I65Dcip3iibQdkACPF-EgYv7bSlpXB9oj8eq-R-Tjdc,4681
|
33
|
+
fabricatio/models/extra/article_base.py,sha256=DxBex4UsMAFmHmriwXkcvGIuU-WTSD4ZfzDEk-no9TA,11894
|
34
|
+
fabricatio/models/extra/article_essence.py,sha256=mlIkkRMR3I1RtqiiOnmIE3Vy623L4eECumkRzryE1pw,2749
|
35
|
+
fabricatio/models/extra/article_main.py,sha256=zGzcf51abcWwiaX6iyi2V7upBLa-DBovnpTJj-qYLeA,7878
|
34
36
|
fabricatio/models/extra/article_outline.py,sha256=w7O0SHgC7exbptWVbR62FMHAueMgBpyWKVYMGGl_oj8,1427
|
35
37
|
fabricatio/models/extra/article_proposal.py,sha256=NbyjW-7UiFPtnVD9nte75re4xL2pD4qL29PpNV4Cg_M,1870
|
36
38
|
fabricatio/models/extra/patches.py,sha256=_WNCxtYzzsVfUxI16vu4IqsLahLYRHdbQN9er9tqhC0,997
|
37
|
-
fabricatio/models/extra/problem.py,sha256=
|
38
|
-
fabricatio/models/extra/
|
39
|
+
fabricatio/models/extra/problem.py,sha256=zZEnjBW2XGRVpJpUp09f1J_w5A1zU-LhxX78AVCq9ts,7113
|
40
|
+
fabricatio/models/extra/rag.py,sha256=RMi8vhEPB0I5mVmjRLRLxYHUnm9pFhvVwysaIwmW2s0,3955
|
41
|
+
fabricatio/models/extra/rule.py,sha256=KQQELVhCLUXhEZ35jU3WGYqKHuCYEAkn0p6pxAE-hOU,2625
|
39
42
|
fabricatio/models/extra/__init__.py,sha256=XlYnS_2B9nhLhtQkjE7rvvfPmAAtXVdNi9bSDAR-Ge8,54
|
40
|
-
fabricatio/models/generic.py,sha256=
|
41
|
-
fabricatio/models/kwargs_types.py,sha256=
|
43
|
+
fabricatio/models/generic.py,sha256=M6K4uMSy4zKoTX5LyZFB8vXw8dTR9nZqec84eE-vPfw,30643
|
44
|
+
fabricatio/models/kwargs_types.py,sha256=r0fgI4ExuAc0MMsgWs8fAyaQ9Z_PRRAKTr53pPP5JYY,4747
|
42
45
|
fabricatio/models/role.py,sha256=-CRcj5_M3_ciLPzwiNn92grBmwoSLQ-n4koVZiCNTBM,2953
|
43
|
-
fabricatio/models/task.py,sha256=
|
46
|
+
fabricatio/models/task.py,sha256=SxWI-b5jlQcGmNsjQ2aKDyywXwGiUvCR1rgUhk-pli8,10503
|
44
47
|
fabricatio/models/tool.py,sha256=jQ51g4lwTPfsMF1nbreDJtBczbxIHoXcPuLSOqHliq8,12506
|
45
|
-
fabricatio/models/usages.py,sha256=
|
46
|
-
fabricatio/models/utils.py,sha256=Ac5g-8ic6q_w7dhNuh-iiofpL1sqOACxbjPPTljP2LY,4417
|
48
|
+
fabricatio/models/usages.py,sha256=VLBpNs7zfNPqROvI2IXlqsoqKYSW8L6usNwZ1HXZVOY,34339
|
47
49
|
fabricatio/parser.py,sha256=qN2godNsArmb90btOMxgqlol57166DyYsV2JlU8DlHs,6532
|
48
50
|
fabricatio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
|
-
fabricatio/rust.pyi,sha256=
|
51
|
+
fabricatio/rust.pyi,sha256=uVHcjDkG4gPcWX_7pxJXHroamY6Db46tQci96THbwJs,7280
|
50
52
|
fabricatio/rust_instances.py,sha256=Byeo8KHW_dJiXujJq7YPGDLBX5bHNDYbBc4sY3uubVY,313
|
51
53
|
fabricatio/toolboxes/arithmetic.py,sha256=WLqhY-Pikv11Y_0SGajwZx3WhsLNpHKf9drzAqOf_nY,1369
|
52
54
|
fabricatio/toolboxes/fs.py,sha256=l4L1CVxJmjw9Ld2XUpIlWfV0_Fu_2Og6d3E13I-S4aE,736
|
53
55
|
fabricatio/toolboxes/__init__.py,sha256=KBJi5OG_pExscdlM7Bnt_UF43j4I3Lv6G71kPVu4KQU,395
|
54
|
-
fabricatio/utils.py,sha256=
|
56
|
+
fabricatio/utils.py,sha256=PKb2yfAe7iRwGJklLB5uZWuWhT0Tm47iHAqPo-zl5CQ,2039
|
55
57
|
fabricatio/workflows/articles.py,sha256=ObYTFUqLUk_CzdmmnX6S7APfxcGmPFqnFr9pdjU7Z4Y,969
|
56
58
|
fabricatio/workflows/rag.py,sha256=-YYp2tlE9Vtfgpg6ROpu6QVO8j8yVSPa6yDzlN3qVxs,520
|
57
59
|
fabricatio/workflows/__init__.py,sha256=5ScFSTA-bvhCesj3U9Mnmi6Law6N1fmh5UKyh58L3u8,51
|
58
60
|
fabricatio/__init__.py,sha256=Rmvq2VgdS2u68vnOi2i5RbeWbAwrJDbk8D8D883PJWE,1022
|
59
|
-
fabricatio/rust.cp312-win_amd64.pyd,sha256=
|
60
|
-
fabricatio-0.2.
|
61
|
-
fabricatio-0.2.
|
61
|
+
fabricatio/rust.cp312-win_amd64.pyd,sha256=ql93jn1qacym6Ks927dxEGJb16rUyWPiW85fm9IE8A0,2251776
|
62
|
+
fabricatio-0.2.10.dev1.data/scripts/tdown.exe,sha256=WFQ7z3utWNkccmrzZPzJTb4N0_IBWrjirdWSOKcrj_0,3365888
|
63
|
+
fabricatio-0.2.10.dev1.dist-info/RECORD,,
|