File size: 2,127 Bytes
ec8f374
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
86
87
88
89
90
91
92
93
94
"""
Base domain template class for AURA AI training system.
"""
from abc import ABC, abstractmethod
from typing import List


class BaseDomain(ABC):
    """
    Abstract base class for domain templates.

    Each domain provides:
    - Name and description
    - Icon for UI display
    - Topic lists for training data generation
    - System prompts for model behavior
    """

    def __init__(self):
        self._name = ""
        self._description = ""
        self._icon = ""

    @property
    def name(self) -> str:
        """Domain name (human-readable)"""
        return self._name

    @property
    def description(self) -> str:
        """Domain description"""
        return self._description

    @property
    def icon(self) -> str:
        """Domain icon (emoji)"""
        return self._icon

    @abstractmethod
    def get_topics(self) -> List[str]:
        """
        Get list of topics for this domain.

        Returns:
            List of topic strings for training data generation
        """
        pass

    @abstractmethod
    def get_system_prompt(self) -> str:
        """
        Get system prompt for this domain.

        Returns:
            System prompt string that defines model behavior
        """
        pass

    def get_example_questions(self) -> List[str]:
        """
        Get example questions for this domain.

        Returns:
            List of example questions for testing
        """
        return []

    def get_specialized_tools(self) -> List[dict]:
        """
        Get specialized tools for this domain.

        Returns:
            List of tool definitions for function calling
        """
        return []

    def get_tools(self) -> List[dict]:
        """
        Get tools for this domain (alias for get_specialized_tools).

        Returns:
            List of tool definitions for function calling
        """
        return self.get_specialized_tools()

    def get_benchmarks(self) -> List[dict]:
        """
        Get pre-built benchmarks for this domain.

        Returns:
            List of benchmark definitions
        """
        return []