dify_invocation

package
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BackwardsInvocation

type BackwardsInvocation interface {
	// InvokeLLM
	InvokeLLM(payload *InvokeLLMRequest) (*stream.Stream[model_entities.LLMResultChunk], error)
	// InvokeTextEmbedding
	InvokeTextEmbedding(payload *InvokeTextEmbeddingRequest) (*model_entities.TextEmbeddingResult, error)
	// InvokeRerank
	InvokeRerank(payload *InvokeRerankRequest) (*model_entities.RerankResult, error)
	// InvokeTTS
	InvokeTTS(payload *InvokeTTSRequest) (*stream.Stream[model_entities.TTSResult], error)
	// InvokeSpeech2Text
	InvokeSpeech2Text(payload *InvokeSpeech2TextRequest) (*model_entities.Speech2TextResult, error)
	// InvokeModeration
	InvokeModeration(payload *InvokeModerationRequest) (*model_entities.ModerationResult, error)
	// InvokeTool
	InvokeTool(payload *InvokeToolRequest) (*stream.Stream[tool_entities.ToolResponseChunk], error)
	// InvokeApp
	InvokeApp(payload *InvokeAppRequest) (*stream.Stream[map[string]any], error)
	// InvokeParameterExtractor
	InvokeParameterExtractor(payload *InvokeParameterExtractorRequest) (*InvokeNodeResponse, error)
	// InvokeQuestionClassifier
	InvokeQuestionClassifier(payload *InvokeQuestionClassifierRequest) (*InvokeNodeResponse, error)
	// InvokeEncrypt
	InvokeEncrypt(payload *InvokeEncryptRequest) (map[string]any, error)
	// InvokeSummary
	InvokeSummary(payload *InvokeSummaryRequest) (*InvokeSummaryResponse, error)
	// UploadFile
	UploadFile(payload *UploadFileRequest) (*UploadFileResponse, error)
}

type BaseInvokeDifyRequest

type BaseInvokeDifyRequest struct {
	TenantId string     `json:"tenant_id"`
	UserId   string     `json:"user_id"`
	Type     InvokeType `json:"type"`
}

type EncryptNamespace

type EncryptNamespace string
const (
	ENCRYPT_NAMESPACE_ENDPOINT EncryptNamespace = "endpoint"
)

type EncryptOpt

type EncryptOpt string
const (
	ENCRYPT_OPT_ENCRYPT EncryptOpt = "encrypt"
	ENCRYPT_OPT_DECRYPT EncryptOpt = "decrypt"
	ENCRYPT_OPT_CLEAR   EncryptOpt = "clear"
)

type InvokeAppRequest

type InvokeAppRequest struct {
	BaseInvokeDifyRequest

	InvokeAppSchema
}

type InvokeAppSchema

type InvokeAppSchema struct {
	AppId          string         `json:"app_id" validate:"required"`
	Inputs         map[string]any `json:"inputs" validate:"omitempty"`
	Query          string         `json:"query" validate:"omitempty"`
	ResponseMode   string         `json:"response_mode"`
	ConversationId string         `json:"conversation_id" validate:"omitempty"`
	User           string         `json:"user" validate:"omitempty"`
}

type InvokeEncryptRequest

type InvokeEncryptRequest struct {
	BaseInvokeDifyRequest

	InvokeEncryptSchema
}

func (*InvokeEncryptRequest) EncryptRequired

func (r *InvokeEncryptRequest) EncryptRequired(settings map[string]any) bool

type InvokeEncryptSchema

type InvokeEncryptSchema struct {
	Opt       EncryptOpt                       `json:"opt" validate:"required,encrypt_opt"`
	Namespace EncryptNamespace                 `json:"namespace" validate:"required,encrypt_namespace"`
	Identity  string                           `json:"identity" validate:"required"`
	Data      map[string]any                   `json:"data" validate:"omitempty"`
	Config    []plugin_entities.ProviderConfig `json:"config" validate:"omitempty,dive"`
}

type InvokeEncryptionResponse

type InvokeEncryptionResponse struct {
	Error string         `json:"error"`
	Data  map[string]any `json:"data"`
}

type InvokeLLMRequest

type InvokeLLMRequest struct {
	BaseInvokeDifyRequest
	requests.BaseRequestInvokeModel
	// requests.InvokeLLMSchema,
	// TODO: as completion_params in requests.InvokeLLMSchema is "model_parameters", we declare another one here
	InvokeLLMSchema
}

type InvokeLLMSchema

type InvokeLLMSchema struct {
	Mode             string                             `json:"mode" validate:"required"`
	CompletionParams map[string]any                     `json:"completion_params"  validate:"omitempty"`
	PromptMessages   []model_entities.PromptMessage     `json:"prompt_messages"  validate:"omitempty"`
	Tools            []model_entities.PromptMessageTool `json:"tools" validate:"omitempty,dive"`
	Stop             []string                           `json:"stop" validate:"omitempty"`
	Stream           bool                               `json:"stream"`
}

type InvokeNodeResponse

type InvokeNodeResponse struct {
	ProcessData map[string]any `json:"process_data" validate:"required"`
	Outputs     map[string]any `json:"outputs" validate:"required"`
	Inputs      map[string]any `json:"inputs" validate:"required"`
}

type InvokeParameterExtractorRequest

type InvokeParameterExtractorRequest struct {
	BaseInvokeDifyRequest

	Parameters []struct {
		Name        string   `json:"name" validate:"required"`
		Type        string   `json:"type" validate:"required,oneof=string number bool select array[string] array[number] array[object]"`
		Options     []string `json:"options" validate:"omitempty"`
		Description string   `json:"description" validate:"omitempty"`
		Required    bool     `json:"required" validate:"omitempty"`
	} `json:"parameters" validate:"required,dive"`

	Model       ModelConfig `json:"model" validate:"required"`
	Instruction string      `json:"instruction" validate:"omitempty"`
	Query       string      `json:"query" validate:"required"`
}

type InvokeQuestionClassifierRequest

type InvokeQuestionClassifierRequest struct {
	BaseInvokeDifyRequest

	Classes []struct {
		ID   string `json:"id" validate:"required"`
		Name string `json:"name" validate:"required"`
	} `json:"classes" validate:"required,dive"`

	Model       ModelConfig `json:"model" validate:"required"`
	Instruction string      `json:"instruction" validate:"omitempty"`
	Query       string      `json:"query" validate:"required"`
}

type InvokeStorageRequest

type InvokeStorageRequest struct {
	Opt   StorageOpt `json:"opt" validate:"required,storage_opt"`
	Key   string     `json:"key" validate:"required"`
	Value string     `json:"value"` // encoded in hex, optional
}

type InvokeSummaryRequest

type InvokeSummaryRequest struct {
	BaseInvokeDifyRequest
	InvokeSummarySchema
}

type InvokeSummaryResponse

type InvokeSummaryResponse struct {
	Summary string `json:"summary"`
}

type InvokeSummarySchema

type InvokeSummarySchema struct {
	Text        string `json:"text" validate:"required"`
	Instruction string `json:"instruction" validate:"omitempty"`
}

type InvokeTTSRequest

type InvokeTTSRequest struct {
	// BaseInvokeDifyRequest
	// # TODO: BaseInvokeDifyRequest has a duplicate field with InvokeTTSSchema,
	// # we should consider to refactor it in the future
	UserId string     `json:"user_id"`
	Type   InvokeType `json:"type"`
	requests.BaseRequestInvokeModel
	requests.InvokeTTSSchema
}

type InvokeToolRequest

type InvokeToolRequest struct {
	BaseInvokeDifyRequest
	ToolType requests.ToolType `json:"tool_type" validate:"required,tool_type"`
	requests.InvokeToolSchema
}

type InvokeType

type InvokeType string
const (
	INVOKE_TYPE_LLM                      InvokeType = "llm"
	INVOKE_TYPE_TEXT_EMBEDDING           InvokeType = "text_embedding"
	INVOKE_TYPE_RERANK                   InvokeType = "rerank"
	INVOKE_TYPE_TTS                      InvokeType = "tts"
	INVOKE_TYPE_SPEECH2TEXT              InvokeType = "speech2text"
	INVOKE_TYPE_MODERATION               InvokeType = "moderation"
	INVOKE_TYPE_TOOL                     InvokeType = "tool"
	INVOKE_TYPE_NODE_PARAMETER_EXTRACTOR InvokeType = "node_parameter_extractor"
	INVOKE_TYPE_NODE_QUESTION_CLASSIFIER InvokeType = "node_question_classifier"
	INVOKE_TYPE_APP                      InvokeType = "app"
	INVOKE_TYPE_STORAGE                  InvokeType = "storage"
	INVOKE_TYPE_ENCRYPT                  InvokeType = "encrypt"
	INVOKE_TYPE_SYSTEM_SUMMARY           InvokeType = "system_summary"
	INVOKE_TYPE_UPLOAD_FILE              InvokeType = "upload_file"
)

type ModelConfig

type ModelConfig struct {
	Provider         string         `json:"provider" validate:"required"`
	Name             string         `json:"name" validate:"required"`
	Mode             string         `json:"mode" validate:"required"`
	CompletionParams map[string]any `json:"completion_params" validate:"omitempty"`
}

type StorageOpt

type StorageOpt string
const (
	STORAGE_OPT_GET StorageOpt = "get"
	STORAGE_OPT_SET StorageOpt = "set"
	STORAGE_OPT_DEL StorageOpt = "del"
)

type UploadFileRequest

type UploadFileRequest struct {
	BaseInvokeDifyRequest
	Filename string `json:"filename" validate:"required"`
	MimeType string `json:"mimetype" validate:"required"`
}

type UploadFileResponse

type UploadFileResponse struct {
	URL string `json:"url"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL