invoke.go 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. }
  28. func InvokeTextEmbedding(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeTextEmbedding], ctx *gin.Context) {
  29. // create session
  30. session := session_manager.NewSession(r.TenantId, r.UserId, parser.MarshalPluginIdentity(r.PluginName, r.PluginVersion))
  31. defer session.Close()
  32. baseSSEService(r, func() (*stream.StreamResponse[model_entities.TextEmbeddingResult], error) {
  33. return plugin_daemon.InvokeTextEmbedding(session, &r.Data)
  34. }, ctx)
  35. }
  36. func InvokeRerank(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeRerank], ctx *gin.Context) {
  37. // create session
  38. session := session_manager.NewSession(r.TenantId, r.UserId, parser.MarshalPluginIdentity(r.PluginName, r.PluginVersion))
  39. defer session.Close()
  40. baseSSEService(r, func() (*stream.StreamResponse[model_entities.RerankResult], error) {
  41. return plugin_daemon.InvokeRerank(session, &r.Data)
  42. }, ctx)
  43. }
  44. func InvokeTTS(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeTTS], ctx *gin.Context) {
  45. // create session
  46. session := session_manager.NewSession(r.TenantId, r.UserId, parser.MarshalPluginIdentity(r.PluginName, r.PluginVersion))
  47. defer session.Close()
  48. baseSSEService(r, func() (*stream.StreamResponse[model_entities.TTSResult], error) {
  49. return plugin_daemon.InvokeTTS(session, &r.Data)
  50. }, ctx)
  51. }
  52. func InvokeSpeech2Text(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeSpeech2Text], ctx *gin.Context) {
  53. // create session
  54. session := session_manager.NewSession(r.TenantId, r.UserId, parser.MarshalPluginIdentity(r.PluginName, r.PluginVersion))
  55. defer session.Close()
  56. baseSSEService(r, func() (*stream.StreamResponse[model_entities.Speech2TextResult], error) {
  57. return plugin_daemon.InvokeSpeech2Text(session, &r.Data)
  58. }, ctx)
  59. }
  60. func InvokeModeration(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeModeration], ctx *gin.Context) {
  61. // create session
  62. session := session_manager.NewSession(r.TenantId, r.UserId, parser.MarshalPluginIdentity(r.PluginName, r.PluginVersion))
  63. defer session.Close()
  64. baseSSEService(r, func() (*stream.StreamResponse[model_entities.ModerationResult], error) {
  65. return plugin_daemon.InvokeModeration(session, &r.Data)
  66. }, ctx)
  67. }