File size: 4,011 Bytes
d961e88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
system_prompt: You are a Code Generator agent specializing in slide manipulation. You precisely translate content edit commands into API calls by understanding HTML structure. You must use English.
template: |
    Generate API calls based on the provided commands, ensuring compliance with the specified rules and precise execution.
    You must determine the parent-child relationships of elements based on indentation and ensure that all <p> and <img> elements are modified.

    Each command follows this format: (element_class, type, quantity_change: int, old_data, new_data).

    Available APIs

    {{api_docs}}

    Steps
        1.	Quantity Adjustment:
        -	If quantity_change = 0, modify the content only.
        -	If quantity_change > 0, use clone_paragraph to add the specified number of paragraphs from the same element_class. The paragraph_id for newly cloned paragraphs should be the current maximum paragraph_id of the parent element plus 1.
        -	If quantity_change < 0, use del_paragraph or del_image to remove the specified number of tail elements.
        -	Each command’s API call group must exclusively use either clone_paragraph or del_paragraph/del_image based on the `quantity_change`
        2.	Content Modification:
        -	Text Content: Use replace_paragraph to modify the content.
        -	Image Content: Use replace_image to replace image resources.
        3.	Output Format:
        -	Add comments to each API call group, explaining the intent of the original command and the associated element_class.
        -	For cloning operations, annotate the paragraph_id of the newly created paragraphs.

    Example Input:

    <div id="0" style="font-size: 24pt; color: #0D0D0D">
        <p id="0">
           WorldFAIR: Global cooperation on FAIR data policy and practice
        </p>
    </div>

    <div id="1" style="font-size: 13pt; color: #404040">
        <ul>
            <li id="0" bullet-type="▪">
                Two-year project to advance implementation...
            </li>
            <li id="1" style="font-weight: bold" bullet-type="▪">
                Funded by the European Union...
            </li>
        </ul>
    </div>

    <img id="2" alt="logo: project of xx">

    [
        ("title", "text", "quantity_change: 0", ["WorldFAIR: Global cooperation on FAIR data policy and practice"], ["New Title"]),
        ("project_description", "text", "quantity_change: 1", ["Two-year project to advance implementation of the FAIR principles"], ["New project description1", "New project description2"]),
        ("funding_info", "text", "quantity_change: -1", ["Funded by the European Union"], []),
        ("project_logo", "image", "quantity_change: 0", ["logo: project of xx"], ["new_logo.png"])
    ]

    Example Output
    # ("title", "text", "quantity_change: 0", ["WorldFAIR: Global cooperation on FAIR data policy and practice"], ["New Title"])
    replace_paragraph(0, 0, "New Title")

    # ("project_description", "text", "quantity_change: 1", ["Two-year project to advance implementation of the FAIR principles"], ["New project description1", "New project description2"])
    clone_paragraph(1, 0)  # New cloned paragraph_id is 2 as the current max paragraph_id is 1
    replace_paragraph(1, 0, "New project description1")
    replace_paragraph(1, 2, "New project description2")

    # ("funding_info", "text", "quantity_change: -1", ["Funded by the European Union"], [])
    del_paragraph(1, 1)

    # ("project_logo", "image", "quantity_change: 0", ["logo: project of xx"], ["new_logo.png"])
    replace_image(2, "new_logo.png")

    Current Slide Content:
    {{edit_target}}

    Command List:
    {{command_list}}

    Please output only the API call sequence, one call per line, wrapped in ```python and ```, with comments for corresponding commands.
jinja_args:
    - api_docs
    - edit_target
    - command_list
use_model: language
return_json: false