MCPcopy Index your code
hub / github.com/1Panel-dev/MaxKB / DocumentEditInstanceSerializer

Class DocumentEditInstanceSerializer

apps/knowledge/serializers/document.py:156–193  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154
155
156class DocumentEditInstanceSerializer(serializers.Serializer):
157 meta = serializers.DictField(required=False)
158 name = serializers.CharField(
159 required=False, max_length=128, min_length=1, label=_("document name"), source=_("document name")
160 )
161 hit_handling_method = serializers.CharField(
162 required=False,
163 validators=[
164 validators.RegexValidator(
165 regex=re.compile("^optimization|directly_return$"),
166 message=_("The type only supports optimization|directly_return"),
167 code=500,
168 )
169 ],
170 label=_("hit handling method"),
171 )
172
173 directly_return_similarity = serializers.FloatField(
174 required=False, max_value=2, min_value=0, label=_("directly return similarity")
175 )
176
177 is_active = serializers.BooleanField(required=False, label=_("document is active"))
178
179 @staticmethod
180 def get_meta_valid_map():
181 knowledge_meta_valid_map = {
182 KnowledgeType.BASE: MetaSerializer.BaseMeta,
183 KnowledgeType.WEB: MetaSerializer.WebMeta,
184 }
185 return knowledge_meta_valid_map
186
187 def is_valid(self, *, document: Document = None):
188 super().is_valid(raise_exception=True)
189 if "meta" in self.data and self.data.get("meta") is not None and self.data.get("meta") != {}:
190 knowledge_meta_valid_map = self.get_meta_valid_map()
191 valid_class = knowledge_meta_valid_map.get(document.type)
192 if valid_class is not None:
193 valid_class(data=self.data.get("meta")).is_valid(raise_exception=True)
194
195
196class DocumentSplitRequest(serializers.Serializer):

Callers 1

editMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected