Lift tool description out to constant to reduce clutter
This commit is contained in:
parent
2f6c8006d0
commit
d1c11b41d8
@ -35,11 +35,8 @@ type AvailableTool struct {
|
||||
Impl func(arguments map[string]interface{}) (string, error)
|
||||
}
|
||||
|
||||
var AvailableTools = map[string]AvailableTool{
|
||||
"read_dir": {
|
||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
||||
Name: "read_dir",
|
||||
Description: `Return the contents of the CWD (current working directory).
|
||||
const (
|
||||
READ_DIR_DESCRIPTION = `Return the contents of the CWD (current working directory).
|
||||
|
||||
Results are returned as JSON in the following format:
|
||||
{
|
||||
@ -53,7 +50,52 @@ Results are returned as JSON in the following format:
|
||||
}
|
||||
|
||||
For files, size represents the size (in bytes) of the file.
|
||||
For directories, size represents the number of entries in that directory.`,
|
||||
For directories, size represents the number of entries in that directory.`
|
||||
|
||||
READ_FILE_DESCRIPTION = `Read the contents of a text file relative to the current working directory.
|
||||
|
||||
Each line of the file is prefixed with its line number and a tabs (\t) to make
|
||||
it make it easier to see which lines to change for other modifications.
|
||||
|
||||
Example:
|
||||
{
|
||||
"message": "success", // if successful, or a different message indicating failure
|
||||
"result": "1\tthe contents\n2\tof the file\n"
|
||||
}`
|
||||
|
||||
WRITE_FILE_DESCRIPTION = `Write the provided contents to a file relative to the current working directory.
|
||||
|
||||
Result is returned as JSON in the following format:
|
||||
{
|
||||
"message": "success", // if successful, or a different message indicating failure
|
||||
}`
|
||||
|
||||
MODIFY_FILE_DESCRIPTION = `Perform complex line-based modifications to a file.
|
||||
|
||||
Line ranges are inclusive. If 'start_line' is specified but 'end_line' is not,
|
||||
'end_line' gets set to the last line of the file.
|
||||
|
||||
To replace or remove a single line, *set start_line and end_line to the same value*
|
||||
|
||||
Examples:
|
||||
* Insert the lines "hello<new line>world" at line 10, preserving other content:
|
||||
{"path": "myfile", "operation": "insert_before", "start_line": 10, "content": "hello\nworld"}
|
||||
|
||||
* Remove lines 45 up to and including 54:
|
||||
{"path": "myfile", "operation": "remove", "start_line": 45, "end_line": 54}
|
||||
|
||||
* Replace content from line 10 to 25:
|
||||
{"path": "myfile", "operation": "replace", "start_line": 10, "end_line": 25, "content": "i\nwas\nhere"}
|
||||
|
||||
* Replace contents of entire the file:
|
||||
{"path": "myfile", "operation": "replace", "start_line": 0, "content": "i\nwas\nhere"}`
|
||||
)
|
||||
|
||||
var AvailableTools = map[string]AvailableTool{
|
||||
"read_dir": {
|
||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
||||
Name: "read_dir",
|
||||
Description: READ_DIR_DESCRIPTION,
|
||||
Parameters: FunctionParameters{
|
||||
Type: "object",
|
||||
Properties: map[string]FunctionParameter{
|
||||
@ -78,17 +120,8 @@ For directories, size represents the number of entries in that directory.`,
|
||||
},
|
||||
"read_file": {
|
||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
||||
Name: "read_file",
|
||||
Description: `Read the contents of a text file relative to the current working directory.
|
||||
|
||||
Each line of the file is prefixed with its line number and a tabs (\t) to make
|
||||
it make it easier to see which lines to change for other modifications.
|
||||
|
||||
Example:
|
||||
{
|
||||
"message": "success", // if successful, or a different message indicating failure
|
||||
"result": "1\tthe contents\n2\tof the file\n"
|
||||
}`,
|
||||
Name: "read_file",
|
||||
Description: READ_FILE_DESCRIPTION,
|
||||
Parameters: FunctionParameters{
|
||||
Type: "object",
|
||||
Properties: map[string]FunctionParameter{
|
||||
@ -114,13 +147,8 @@ Example:
|
||||
},
|
||||
"write_file": {
|
||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
||||
Name: "write_file",
|
||||
Description: `Write the provided contents to a file relative to the current working directory.
|
||||
|
||||
Result is returned as JSON in the following format:
|
||||
{
|
||||
"message": "success", // if successful, or a different message indicating failure
|
||||
}`,
|
||||
Name: "write_file",
|
||||
Description: WRITE_FILE_DESCRIPTION,
|
||||
Parameters: FunctionParameters{
|
||||
Type: "object",
|
||||
Properties: map[string]FunctionParameter{
|
||||
@ -158,26 +186,8 @@ Result is returned as JSON in the following format:
|
||||
},
|
||||
"modify_file": {
|
||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
||||
Name: "modify_file",
|
||||
Description: `Perform complex line-based modifications to a file.
|
||||
|
||||
Line ranges are inclusive. If 'start_line' is specified but 'end_line' is not,
|
||||
'end_line' gets set to the last line of the file.
|
||||
|
||||
To replace or remove a single line, *set start_line and end_line to the same value*
|
||||
|
||||
Examples:
|
||||
* Insert the lines "hello<new line>world" at line 10, preserving other content:
|
||||
{"path": "myfile", "operation": "insert_before", "start_line": 10, "content": "hello\nworld"}
|
||||
|
||||
* Remove lines 45 up to and including 54:
|
||||
{"path": "myfile", "operation": "remove", "start_line": 45, "end_line": 54}
|
||||
|
||||
* Replace content from line 10 to 25:
|
||||
{"path": "myfile", "operation": "replace", "start_line": 10, "end_line": 25, "content": "i\nwas\nhere"}
|
||||
|
||||
* Replace contents of entire the file:
|
||||
{"path": "myfile", "operation": "replace", "start_line": 0, "content": "i\nwas\nhere"}`,
|
||||
Name: "modify_file",
|
||||
Description: MODIFY_FILE_DESCRIPTION,
|
||||
Parameters: FunctionParameters{
|
||||
Type: "object",
|
||||
Properties: map[string]FunctionParameter{
|
||||
|
Loading…
Reference in New Issue
Block a user