- Deleted obsolete agent API files (agent.go, api.go, api_test.go, types.go) to streamline the codebase. - Refactored the agent loading logic to initialize the API instance correctly, ensuring proper integration with the new structure. - Updated context handling to improve clarity and maintainability across the agent's functionality. - Enhanced error handling and cache management in the agent's initialization process.
38 lines
788 B
Go
38 lines
788 B
Go
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/yaoapp/yao/agent/assistant"
|
|
chatctx "github.com/yaoapp/yao/agent/context"
|
|
"github.com/yaoapp/yao/agent/types"
|
|
)
|
|
|
|
// Agent the agent AI assistant
|
|
var Agent *API
|
|
|
|
// API the agent API
|
|
type API struct {
|
|
*types.DSL
|
|
}
|
|
|
|
// Answer reply the message
|
|
func (agent *API) Answer(ctx chatctx.Context, question string, c *gin.Context) error {
|
|
var err error
|
|
var ast assistant.API = Agent.Assistant
|
|
if ctx.AssistantID != "" {
|
|
ast, err = agent.Select(ctx.AssistantID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
_, err = ast.Execute(c, ctx, question, nil)
|
|
return err
|
|
}
|
|
|
|
// Select select an assistant
|
|
func (agent *API) Select(id string) (assistant.API, error) {
|
|
if id == "" {
|
|
return Agent.Assistant, nil
|
|
}
|
|
return assistant.Get(id)
|
|
}
|