Zero-Shot Classification
Transformers
Safetensors
qwen3_5
feature-extraction
security
code-review
ai-agents
decision-model
d3
system-one
pre-release
custom_code
Instructions to use stonefish-labs/d3-mini-agentcode with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use stonefish-labs/d3-mini-agentcode with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("zero-shot-classification", model="stonefish-labs/d3-mini-agentcode", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModel processor = AutoProcessor.from_pretrained("stonefish-labs/d3-mini-agentcode", trust_remote_code=True) model = AutoModel.from_pretrained("stonefish-labs/d3-mini-agentcode", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
File size: 2,936 Bytes
21a9138 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | """The ``decision`` pipeline for d3 models (``trust_remote_code=True``).
``pipeline("decision", model=repo, trust_remote_code=True)`` loads the model with ``AutoModel`` and answers
``{"state": ..., "questions": {...}}`` requests, optionally with ``"images": [...]`` and ``"videos": [...]`` (any
number per request), or ``state=..., questions=..., images=..., videos=...`` keywords, or a list of requests, with
the model's
``system_one`` response. The model batches the questions of one request itself.
"""
from transformers import Pipeline
_UNSET = object()
REQUEST_KEYS = {"state", "questions"}
OPTIONAL_KEYS = {"images", "videos"}
class D3Pipeline(Pipeline):
_load_tokenizer = False
_load_processor = False
_load_image_processor = False
_load_feature_extractor = False
_load_video_processor = False
def _sanitize_parameters(self, **kwargs):
if kwargs:
raise TypeError(
f"The decision pipeline takes no parameters: {sorted(kwargs)}"
)
return {}, {}, {}
def __call__(
self,
inputs=None,
*,
state=_UNSET,
questions=_UNSET,
images=_UNSET,
videos=_UNSET,
**kwargs,
):
if any(v is not _UNSET for v in (state, questions, images, videos)):
if inputs is not None:
raise TypeError(
"Pass one request, or state=, questions=, images= and videos="
)
inputs = {
"state": None if state is _UNSET else state,
"questions": None if questions is _UNSET else questions,
}
if images is not _UNSET:
inputs["images"] = images
if videos is not _UNSET:
inputs["videos"] = videos
if kwargs.get("batch_size") not in (None, 1):
raise ValueError(
"The decision pipeline runs one request at a time (batch_size=1)"
)
return super().__call__(inputs, **kwargs)
def preprocess(self, inputs):
if not isinstance(inputs, dict) or not (
REQUEST_KEYS <= set(inputs) <= REQUEST_KEYS | OPTIONAL_KEYS
):
raise ValueError(
'A decision request is {"state": ..., "questions": {<id>: <question>, ...}} '
'with optional "images": [...] and "videos": [...]'
)
return {
"state": inputs["state"],
"questions": inputs["questions"],
"images": inputs.get("images"),
"videos": inputs.get("videos"),
}
def _forward(self, model_inputs):
return self.model.system_one(
state=model_inputs["state"],
questions=model_inputs["questions"],
images=model_inputs["images"],
videos=model_inputs["videos"],
)
def postprocess(self, model_outputs):
return model_outputs
|