Yeuoly 10 meses atrás
pai
commit
93f1d3b75a

+ 10 - 9
internal/core/dify_invocation/tester/mock.go

@@ -6,6 +6,7 @@ import (
 	"github.com/langgenius/dify-plugin-daemon/internal/core/dify_invocation"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/model_entities"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/tool_entities"
+	"github.com/langgenius/dify-plugin-daemon/internal/utils/routine"
 	"github.com/langgenius/dify-plugin-daemon/internal/utils/stream"
 )
 
@@ -17,7 +18,7 @@ func NewMockedDifyInvocation() dify_invocation.BackwardsInvocation {
 
 func (m *MockedDifyInvocation) InvokeLLM(payload *dify_invocation.InvokeLLMRequest) (*stream.Stream[model_entities.LLMResultChunk], error) {
 	stream := stream.NewStream[model_entities.LLMResultChunk](5)
-	go func() {
+	routine.Submit(func() {
 		stream.Write(model_entities.LLMResultChunk{
 			Model:             model_entities.LLMModel(payload.Model),
 			PromptMessages:    payload.PromptMessages,
@@ -90,7 +91,7 @@ func (m *MockedDifyInvocation) InvokeLLM(payload *dify_invocation.InvokeLLMReque
 			},
 		})
 		stream.Close()
-	}()
+	})
 	return stream, nil
 }
 
@@ -128,7 +129,7 @@ func (m *MockedDifyInvocation) InvokeRerank(payload *dify_invocation.InvokeReran
 
 func (m *MockedDifyInvocation) InvokeTTS(payload *dify_invocation.InvokeTTSRequest) (*stream.Stream[model_entities.TTSResult], error) {
 	stream := stream.NewStream[model_entities.TTSResult](5)
-	go func() {
+	routine.Submit(func() {
 		for i := 0; i < 10; i++ {
 			stream.Write(model_entities.TTSResult{
 				Result: "a1b2c3d4",
@@ -136,7 +137,7 @@ func (m *MockedDifyInvocation) InvokeTTS(payload *dify_invocation.InvokeTTSReque
 			time.Sleep(100 * time.Millisecond)
 		}
 		stream.Close()
-	}()
+	})
 	return stream, nil
 }
 
@@ -156,7 +157,7 @@ func (m *MockedDifyInvocation) InvokeModeration(payload *dify_invocation.InvokeM
 
 func (m *MockedDifyInvocation) InvokeTool(payload *dify_invocation.InvokeToolRequest) (*stream.Stream[tool_entities.ToolResponseChunk], error) {
 	stream := stream.NewStream[tool_entities.ToolResponseChunk](5)
-	go func() {
+	routine.Submit(func() {
 		for i := 0; i < 10; i++ {
 			stream.Write(tool_entities.ToolResponseChunk{
 				Type: tool_entities.ToolResponseChunkTypeText,
@@ -167,22 +168,22 @@ func (m *MockedDifyInvocation) InvokeTool(payload *dify_invocation.InvokeToolReq
 			time.Sleep(100 * time.Millisecond)
 		}
 		stream.Close()
-	}()
+	})
 
 	return stream, nil
 }
 
 func (m *MockedDifyInvocation) InvokeApp(payload *dify_invocation.InvokeAppRequest) (*stream.Stream[map[string]any], error) {
 	stream := stream.NewStream[map[string]any](5)
-	go func() {
+	routine.Submit(func() {
 		for i := 0; i < 10; i++ {
 			stream.Write(map[string]any{
-				"text": "hello world",
+				// TODO
 			})
 			time.Sleep(100 * time.Millisecond)
 		}
 		stream.Close()
-	}()
+	})
 	return stream, nil
 }
 

+ 35 - 18
internal/core/plugin_daemon/backwards_invocation/task_test.go

@@ -4,7 +4,10 @@ import (
 	"testing"
 
 	"github.com/langgenius/dify-plugin-daemon/internal/core/dify_invocation"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/dify_invocation/tester"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_daemon/access_types"
 	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager/positive_manager"
+	"github.com/langgenius/dify-plugin-daemon/internal/core/session_manager"
 	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
 )
 
@@ -37,6 +40,14 @@ func (r *TPluginRuntime) Wait() (<-chan bool, error) {
 	return nil, nil
 }
 
+func getTestSession() *session_manager.Session {
+	return session_manager.NewSession(
+		"", "", plugin_entities.PluginUniqueIdentifier(""), "",
+		access_types.PLUGIN_ACCESS_TYPE_ENDPOINT, access_types.PLUGIN_ACCESS_ACTION_GET_AI_MODEL_SCHEMAS, nil,
+		tester.NewMockedDifyInvocation(),
+	)
+}
+
 func TestBackwardsInvocationAllPermittedPermission(t *testing.T) {
 	all_permitted_runtime := plugin_entities.PluginDeclaration{
 		PluginDeclarationWithoutAdvancedFields: plugin_entities.PluginDeclarationWithoutAdvancedFields{
@@ -65,47 +76,53 @@ func TestBackwardsInvocationAllPermittedPermission(t *testing.T) {
 		},
 	}
 
-	invoke_llm_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_LLM, "", nil, nil, nil)
+	invoke_llm_request := NewBackwardsInvocation(
+		dify_invocation.INVOKE_TYPE_LLM,
+		"test",
+		getTestSession(),
+		nil,
+		nil,
+	)
 	if err := checkPermission(&all_permitted_runtime, invoke_llm_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
 
-	invoke_text_embedding_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TEXT_EMBEDDING, "", nil, nil, nil)
+	invoke_text_embedding_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TEXT_EMBEDDING, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_permitted_runtime, invoke_text_embedding_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
 
-	invoke_rerank_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_RERANK, "", nil, nil, nil)
+	invoke_rerank_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_RERANK, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_permitted_runtime, invoke_rerank_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
 
-	invoke_tts_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TTS, "", nil, nil, nil)
+	invoke_tts_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TTS, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_permitted_runtime, invoke_tts_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
 
-	invoke_speech2text_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_SPEECH2TEXT, "", nil, nil, nil)
+	invoke_speech2text_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_SPEECH2TEXT, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_permitted_runtime, invoke_speech2text_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
 
-	invoke_moderation_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_MODERATION, "", nil, nil, nil)
+	invoke_moderation_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_MODERATION, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_permitted_runtime, invoke_moderation_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
 
-	invoke_tool_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TOOL, "", nil, nil, nil)
+	invoke_tool_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TOOL, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_permitted_runtime, invoke_tool_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
 
-	invoke_node_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_NODE, "", nil, nil, nil)
+	invoke_node_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_NODE, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_permitted_runtime, invoke_node_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
 
-	invoke_app_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_APP, "", nil, nil, nil)
+	invoke_app_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_APP, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_permitted_runtime, invoke_app_request); err != nil {
 		t.Errorf("checkPermission failed: %s", err.Error())
 	}
@@ -118,47 +135,47 @@ func TestBackwardsInvocationAllDeniedPermission(t *testing.T) {
 		},
 	}
 
-	invoke_llm_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_LLM, "", nil, nil, nil)
+	invoke_llm_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_LLM, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_llm_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}
 
-	invoke_text_embedding_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TEXT_EMBEDDING, "", nil, nil, nil)
+	invoke_text_embedding_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TEXT_EMBEDDING, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_text_embedding_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}
 
-	invoke_rerank_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_RERANK, "", nil, nil, nil)
+	invoke_rerank_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_RERANK, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_rerank_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}
 
-	invoke_tts_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TTS, "", nil, nil, nil)
+	invoke_tts_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TTS, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_tts_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}
 
-	invoke_speech2text_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_SPEECH2TEXT, "", nil, nil, nil)
+	invoke_speech2text_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_SPEECH2TEXT, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_speech2text_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}
 
-	invoke_moderation_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_MODERATION, "", nil, nil, nil)
+	invoke_moderation_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_MODERATION, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_moderation_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}
 
-	invoke_tool_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TOOL, "", nil, nil, nil)
+	invoke_tool_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_TOOL, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_tool_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}
 
-	invoke_node_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_NODE, "", nil, nil, nil)
+	invoke_node_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_NODE, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_node_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}
 
-	invoke_app_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_APP, "", nil, nil, nil)
+	invoke_app_request := NewBackwardsInvocation(dify_invocation.INVOKE_TYPE_APP, "", getTestSession(), nil, nil)
 	if err := checkPermission(&all_denied_runtime, invoke_app_request); err == nil {
 		t.Errorf("checkPermission failed: expected error, got nil")
 	}

+ 1 - 1
internal/core/session_manager/session.go

@@ -66,7 +66,7 @@ func NewSession(
 	session_lock.Unlock()
 
 	if err := cache.Store(sessionKey(s.ID), s, time.Minute*30); err != nil {
-		log.Error("set session info to cache failed, %s", err)
+		log.SilentError("set session info to cache failed, %s", err)
 	}
 
 	return s

+ 5 - 5
internal/utils/log/log.go

@@ -228,35 +228,35 @@ func Panic(format string, v ...interface{}) {
 	main_log.Panic(format, true, v...)
 }
 
-func SlientDebug(format string, v ...interface{}) {
+func SilentDebug(format string, v ...interface{}) {
 	if main_log == nil {
 		initlog()
 	}
 	main_log.Debug(format, false, v...)
 }
 
-func SlientInfo(format string, v ...interface{}) {
+func SilentInfo(format string, v ...interface{}) {
 	if main_log == nil {
 		initlog()
 	}
 	main_log.Info(format, false, v...)
 }
 
-func SlientWarn(format string, v ...interface{}) {
+func SilentWarn(format string, v ...interface{}) {
 	if main_log == nil {
 		initlog()
 	}
 	main_log.Warn(format, false, v...)
 }
 
-func SlientError(format string, v ...interface{}) {
+func SilentError(format string, v ...interface{}) {
 	if main_log == nil {
 		initlog()
 	}
 	main_log.Error(format, false, v...)
 }
 
-func SlientPanic(format string, v ...interface{}) {
+func SilentPanic(format string, v ...interface{}) {
 	if main_log == nil {
 		initlog()
 	}