invoke.go 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. package service
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_daemon"
  5. "github.com/langgenius/dify-plugin-daemon/internal/core/session_manager"
  6. "github.com/langgenius/dify-plugin-daemon/internal/types/entities/model_entities"
  7. "github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
  8. "github.com/langgenius/dify-plugin-daemon/internal/types/entities/requests"
  9. "github.com/langgenius/dify-plugin-daemon/internal/utils/parser"
  10. "github.com/langgenius/dify-plugin-daemon/internal/utils/stream"
  11. )
  12. func InvokeTool(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeTool], ctx *gin.Context) {
  13. // create session
  14. session := session_manager.NewSession(r.TenantId, r.UserId, parser.MarshalPluginIdentity(r.PluginName, r.PluginVersion))
  15. defer session.Close()
  16. baseSSEService(r, func() (*stream.StreamResponse[plugin_entities.ToolResponseChunk], error) {
  17. return plugin_daemon.InvokeTool(session, &r.Data)
  18. }, ctx)
  19. }
  20. func InvokeLLM(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeLLM], ctx *gin.Context) {
  21. // create session
  22. session := session_manager.NewSession(r.TenantId, r.UserId, parser.MarshalPluginIdentity(r.PluginName, r.PluginVersion))
  23. defer session.Close()
  24. baseSSEService(r, func() (*stream.StreamResponse[model_entities.LLMResultChunk], error) {
  25. return plugin_daemon.InvokeLLM(session, &r.Data)
  26. }, ctx)
  27. }