@@ -9,42 +9,45 @@ def initialize(tools)
9
9
end
10
10
11
11
def translated_tools
12
- raw_tools . reduce ( +"" ) do |tools , function |
12
+ result = +""
13
+
14
+ raw_tools . each do |tool |
13
15
parameters = +""
14
- if function [ : parameters] . present?
15
- function [ : parameters] . each do |parameter |
16
+ if tool . parameters . present?
17
+ tool . parameters . each do |parameter |
16
18
parameters << <<~PARAMETER
17
19
<parameter>
18
- <name>#{ parameter [ : name] } </name>
19
- <type>#{ parameter [ : type] } </type>
20
- <description>#{ parameter [ : description] } </description>
21
- <required>#{ parameter [ : required] } </required>
20
+ <name>#{ parameter . name } </name>
21
+ <type>#{ parameter . type } </type>
22
+ <description>#{ parameter . description } </description>
23
+ <required>#{ parameter . required } </required>
22
24
PARAMETER
23
- if parameter [ :enum ]
24
- parameters << "<options >#{ parameter [ :enum ] . join ( "," ) } </options >\n "
25
+ if parameter . item_type
26
+ parameters << "<array_item_type >#{ parameter . item_type } </array_item_type >\n "
25
27
end
28
+ parameters << "<options>#{ parameter . enum . join ( "," ) } </options>\n " if parameter . enum
26
29
parameters << "</parameter>\n "
27
30
end
28
31
end
29
32
30
- tools << <<~TOOLS
33
+ result << <<~TOOLS
31
34
<tool_description>
32
- <tool_name>#{ function [ : name] } </tool_name>
33
- <description>#{ function [ : description] } </description>
35
+ <tool_name>#{ tool . name } </tool_name>
36
+ <description>#{ tool . description } </description>
34
37
<parameters>
35
38
#{ parameters } </parameters>
36
39
</tool_description>
37
40
TOOLS
38
41
end
42
+ result
39
43
end
40
44
41
45
def instructions
42
46
return "" if raw_tools . blank?
43
47
44
48
@instructions ||=
45
49
begin
46
- has_arrays =
47
- raw_tools . any? { |tool | tool [ :parameters ] &.any? { |p | p [ :type ] == "array" } }
50
+ has_arrays = raw_tools . any? { |tool | tool . parameters &.any? { |p | p . type == "array" } }
48
51
49
52
( <<~TEXT ) . strip
50
53
#{ tool_preamble ( include_array_tip : has_arrays ) }
0 commit comments