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)
|
Impl func(arguments map[string]interface{}) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
var AvailableTools = map[string]AvailableTool{
|
const (
|
||||||
"read_dir": {
|
READ_DIR_DESCRIPTION = `Return the contents of the CWD (current working directory).
|
||||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
|
||||||
Name: "read_dir",
|
|
||||||
Description: `Return the contents of the CWD (current working directory).
|
|
||||||
|
|
||||||
Results are returned as JSON in the following format:
|
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 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{
|
Parameters: FunctionParameters{
|
||||||
Type: "object",
|
Type: "object",
|
||||||
Properties: map[string]FunctionParameter{
|
Properties: map[string]FunctionParameter{
|
||||||
@ -79,16 +121,7 @@ For directories, size represents the number of entries in that directory.`,
|
|||||||
"read_file": {
|
"read_file": {
|
||||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
||||||
Name: "read_file",
|
Name: "read_file",
|
||||||
Description: `Read the contents of a text file relative to the current working directory.
|
Description: READ_FILE_DESCRIPTION,
|
||||||
|
|
||||||
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"
|
|
||||||
}`,
|
|
||||||
Parameters: FunctionParameters{
|
Parameters: FunctionParameters{
|
||||||
Type: "object",
|
Type: "object",
|
||||||
Properties: map[string]FunctionParameter{
|
Properties: map[string]FunctionParameter{
|
||||||
@ -115,12 +148,7 @@ Example:
|
|||||||
"write_file": {
|
"write_file": {
|
||||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
||||||
Name: "write_file",
|
Name: "write_file",
|
||||||
Description: `Write the provided contents to a file relative to the current working directory.
|
Description: WRITE_FILE_DESCRIPTION,
|
||||||
|
|
||||||
Result is returned as JSON in the following format:
|
|
||||||
{
|
|
||||||
"message": "success", // if successful, or a different message indicating failure
|
|
||||||
}`,
|
|
||||||
Parameters: FunctionParameters{
|
Parameters: FunctionParameters{
|
||||||
Type: "object",
|
Type: "object",
|
||||||
Properties: map[string]FunctionParameter{
|
Properties: map[string]FunctionParameter{
|
||||||
@ -159,25 +187,7 @@ Result is returned as JSON in the following format:
|
|||||||
"modify_file": {
|
"modify_file": {
|
||||||
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
Tool: openai.Tool{Type: "function", Function: openai.FunctionDefinition{
|
||||||
Name: "modify_file",
|
Name: "modify_file",
|
||||||
Description: `Perform complex line-based modifications to a file.
|
Description: MODIFY_FILE_DESCRIPTION,
|
||||||
|
|
||||||
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"}`,
|
|
||||||
Parameters: FunctionParameters{
|
Parameters: FunctionParameters{
|
||||||
Type: "object",
|
Type: "object",
|
||||||
Properties: map[string]FunctionParameter{
|
Properties: map[string]FunctionParameter{
|
||||||
|
Loading…
Reference in New Issue
Block a user