Revert "Revert "Add RAG and Version support to Assistant context and options""
This commit is contained in:
parent
bec72b2f51
commit
069105d7bd
3 changed files with 12 additions and 3 deletions
|
|
@ -54,6 +54,10 @@ func (ast *Assistant) Execute(c *gin.Context, ctx chatctx.Context, input string,
|
||||||
contents := chatMessage.NewContents()
|
contents := chatMessage.NewContents()
|
||||||
options = ast.withOptions(options)
|
options = ast.withOptions(options)
|
||||||
|
|
||||||
|
// Add RAG and Version support
|
||||||
|
ctx.RAG = rag != nil
|
||||||
|
ctx.Version = ast.vision
|
||||||
|
|
||||||
// Run init hook
|
// Run init hook
|
||||||
res, err := ast.HookInit(c, ctx, messages, options, contents)
|
res, err := ast.HookInit(c, ctx, messages, options, contents)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -370,6 +374,7 @@ func (ast *Assistant) withOptions(options map[string]interface{}) map[string]int
|
||||||
options = map[string]interface{}{}
|
options = map[string]interface{}{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add Custom Options
|
||||||
if ast.Options != nil {
|
if ast.Options != nil {
|
||||||
for key, value := range ast.Options {
|
for key, value := range ast.Options {
|
||||||
options[key] = value
|
options[key] = value
|
||||||
|
|
@ -377,7 +382,7 @@ func (ast *Assistant) withOptions(options map[string]interface{}) map[string]int
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add functions
|
// Add functions
|
||||||
if ast.Functions != nil {
|
if ast.Functions != nil && len(ast.Functions) > 0 {
|
||||||
options["tools"] = ast.Functions
|
options["tools"] = ast.Functions
|
||||||
if options["tool_choice"] == nil {
|
if options["tool_choice"] == nil {
|
||||||
options["tool_choice"] = "auto"
|
options["tool_choice"] = "auto"
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ func (ast *Assistant) HookInit(c *gin.Context, context chatctx.Context, input []
|
||||||
ctx, cancel := ast.createTimeoutContext(c)
|
ctx, cancel := ast.createTimeoutContext(c)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
v, err := ast.call(ctx, "Init", c, contents, context, input)
|
v, err := ast.call(ctx, "Init", c, contents, context, input, options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err.Error() == HookErrorMethodNotFound {
|
if err.Error() == HookErrorMethodNotFound {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,8 @@ type Context struct {
|
||||||
Config map[string]interface{} `json:"config,omitempty"`
|
Config map[string]interface{} `json:"config,omitempty"`
|
||||||
Signal interface{} `json:"signal,omitempty"`
|
Signal interface{} `json:"signal,omitempty"`
|
||||||
Upload *FileUpload `json:"upload,omitempty"`
|
Upload *FileUpload `json:"upload,omitempty"`
|
||||||
|
Version bool `json:"version,omitempty"` // Version support
|
||||||
|
RAG bool `json:"rag,omitempty"` // RAG support
|
||||||
}
|
}
|
||||||
|
|
||||||
// Field the context field
|
// Field the context field
|
||||||
|
|
@ -84,7 +86,9 @@ func WithTimeout(parent Context, timeout time.Duration) (Context, context.Cancel
|
||||||
// Map the context to a map
|
// Map the context to a map
|
||||||
func (ctx *Context) Map() map[string]interface{} {
|
func (ctx *Context) Map() map[string]interface{} {
|
||||||
data := map[string]interface{}{
|
data := map[string]interface{}{
|
||||||
"sid": ctx.Sid,
|
"sid": ctx.Sid,
|
||||||
|
"rag": ctx.RAG,
|
||||||
|
"version": ctx.Version,
|
||||||
}
|
}
|
||||||
|
|
||||||
if ctx.ChatID != "" {
|
if ctx.ChatID != "" {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue