tool.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package requests
  2. import (
  3. "github.com/go-playground/validator/v10"
  4. "github.com/langgenius/dify-plugin-daemon/pkg/validators"
  5. )
  6. type ToolType string
  7. const (
  8. TOOL_TYPE_BUILTIN ToolType = "builtin"
  9. TOOL_TYPE_WORKFLOW ToolType = "workflow"
  10. TOOL_TYPE_API ToolType = "api"
  11. )
  12. func init() {
  13. validators.GlobalEntitiesValidator.RegisterValidation("tool_type", func(fl validator.FieldLevel) bool {
  14. switch fl.Field().String() {
  15. case string(TOOL_TYPE_BUILTIN), string(TOOL_TYPE_WORKFLOW), string(TOOL_TYPE_API):
  16. return true
  17. }
  18. return false
  19. })
  20. }
  21. type InvokeToolSchema struct {
  22. Provider string `json:"provider" validate:"required"`
  23. Tool string `json:"tool" validate:"required"`
  24. ToolParameters map[string]any `json:"tool_parameters" validate:"omitempty"`
  25. }
  26. type RequestInvokeTool struct {
  27. InvokeToolSchema
  28. Credentials
  29. }
  30. type RequestValidateToolCredentials struct {
  31. Provider string `json:"provider" validate:"required"`
  32. Credentials map[string]any `json:"credentials" validate:"omitempty"`
  33. }
  34. type RequestGetToolRuntimeParameters struct {
  35. Provider string `json:"provider" validate:"required"`
  36. Tool string `json:"tool" validate:"required"`
  37. Credentials map[string]any `json:"credentials" validate:"omitempty"`
  38. }