Enha: openai tools [WIP]
This commit is contained in:
@@ -108,33 +108,6 @@ func (cb *ChatBody) MakeStopSlice() []string {
|
||||
return ss
|
||||
}
|
||||
|
||||
type ChatToolsBody struct {
|
||||
Model string `json:"model"`
|
||||
Messages []RoleMsg `json:"messages"`
|
||||
Tools []struct {
|
||||
Type string `json:"type"`
|
||||
Function struct {
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Parameters struct {
|
||||
Type string `json:"type"`
|
||||
Properties struct {
|
||||
Location struct {
|
||||
Type string `json:"type"`
|
||||
Description string `json:"description"`
|
||||
} `json:"location"`
|
||||
Unit struct {
|
||||
Type string `json:"type"`
|
||||
Enum []string `json:"enum"`
|
||||
} `json:"unit"`
|
||||
} `json:"properties"`
|
||||
Required []string `json:"required"`
|
||||
} `json:"parameters"`
|
||||
} `json:"function"`
|
||||
} `json:"tools"`
|
||||
ToolChoice string `json:"tool_choice"`
|
||||
}
|
||||
|
||||
type DSChatReq struct {
|
||||
Messages []RoleMsg `json:"messages"`
|
||||
Model string `json:"model"`
|
||||
@@ -287,6 +260,37 @@ type EmbeddingResp struct {
|
||||
// } `json:"data"`
|
||||
// }
|
||||
|
||||
// === tools models
|
||||
|
||||
type ToolArgProps struct {
|
||||
Type string `json:"type"`
|
||||
Description string `json:"description"`
|
||||
}
|
||||
|
||||
type ToolFuncParams struct {
|
||||
Type string `json:"type"`
|
||||
Properties map[string]ToolArgProps `json:"properties"`
|
||||
Required []string `json:"required"`
|
||||
}
|
||||
|
||||
type ToolFunc struct {
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Parameters ToolFuncParams `json:"parameters"`
|
||||
}
|
||||
|
||||
type Tool struct {
|
||||
Type string `json:"type"`
|
||||
Function ToolFunc `json:"function"`
|
||||
}
|
||||
|
||||
type OpenAIReq struct {
|
||||
ChatBody
|
||||
Tools []Tool `json:"tools"`
|
||||
}
|
||||
|
||||
// ===
|
||||
|
||||
type LLMModels struct {
|
||||
Object string `json:"object"`
|
||||
Data []struct {
|
||||
|
||||
28
tools.go
28
tools.go
@@ -1,8 +1,8 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"gf-lt/models"
|
||||
"fmt"
|
||||
"gf-lt/models"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -141,3 +141,29 @@ var fnMap = map[string]fnSig{
|
||||
"recall_topics": recallTopics,
|
||||
"memorise": memorise,
|
||||
}
|
||||
|
||||
// openai style def
|
||||
var baseTools = []models.Tool{
|
||||
// memorise
|
||||
models.Tool{
|
||||
Type: "function",
|
||||
Function: models.ToolFunc{
|
||||
Name: "memorise",
|
||||
Description: "save topic-data in key-value cache",
|
||||
Parameters: models.ToolFuncParams{
|
||||
Type: "object",
|
||||
Required: []string{"topic", "data"},
|
||||
Properties: map[string]models.ToolArgProps{
|
||||
"topic": models.ToolArgProps{
|
||||
Type: "string",
|
||||
Description: "topic is the key under which data is saved",
|
||||
},
|
||||
"data": models.ToolArgProps{
|
||||
Type: "string",
|
||||
Description: "data is the value that is saved under the topic-key",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user