File size: 2,104 Bytes
3d3d712
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from taskweaver.memory.plugin import PluginEntry, PluginParameter, PluginSpec


def test_function_formatting():
    plugin = PluginEntry(
        name="test",
        impl="test",
        spec=PluginSpec(
            name="test",
            description="test",
            args=[
                PluginParameter(
                    name="arg1",
                    type="string",
                    description="arg1",
                    required=True,
                ),
                PluginParameter(
                    name="arg2",
                    type="integer",
                    description="arg2",
                    required=False,
                ),
                PluginParameter(
                    name="arg3",
                    type="float",
                    description="arg3",
                    required=False,
                ),
                PluginParameter(
                    name="arg4",
                    type="boolean",
                    description="arg4",
                    required=False,
                ),
                PluginParameter(
                    name="arg5",
                    type="none",
                    description="arg5",
                    required=False,
                ),
            ],
        ),
        config={"test_key": "test_val"},
        required=False,
        enabled=True,
        plugin_only=True,
    )
    assert plugin.format_function_calling() == {
        "type": "function",
        "function": {
            "name": "test",
            "description": "test",
            "parameters": {
                "type": "object",
                "properties": {
                    "arg1": {"type": "string", "description": "arg1"},
                    "arg2": {"type": "integer", "description": "arg2"},
                    "arg3": {"type": "number", "description": "arg3"},
                    "arg4": {"type": "boolean", "description": "arg4"},
                    "arg5": {"type": "null", "description": "arg5"},
                },
                "required": ["arg1"],
            },
        },
    }