Spaces:
Running
Running
| import torch | |
| import torch.nn as nn | |
| class ProgrammingClassifier(nn.Module): | |
| """ | |
| Classifies programming-related intent or domain. | |
| """ | |
| def __init__(self, input_dim: int = 128, num_classes: int = 5): | |
| super().__init__() | |
| # store attributes for engine access | |
| self.input_dim = input_dim | |
| self.num_classes = num_classes | |
| # classifier layer | |
| self.classifier = nn.Linear(input_dim, num_classes) | |
| # label names | |
| self.labels = [ | |
| "general", | |
| "debugging", | |
| "architecture", | |
| "algorithm", | |
| "deployment" | |
| ] | |
| def forward(self, x: torch.Tensor) -> torch.Tensor: | |
| return self.classifier(x) | |
| def predict_label(self, logits: torch.Tensor) -> str: | |
| """ | |
| Convert logits to programming domain label | |
| """ | |
| idx = torch.argmax(logits, dim=-1).item() | |
| return self.labels[idx] |