model_service.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package plugin_daemon
  2. import (
  3. "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_daemon/access_types"
  4. "github.com/langgenius/dify-plugin-daemon/internal/core/session_manager"
  5. "github.com/langgenius/dify-plugin-daemon/internal/types/entities/model_entities"
  6. "github.com/langgenius/dify-plugin-daemon/internal/types/entities/requests"
  7. "github.com/langgenius/dify-plugin-daemon/internal/utils/stream"
  8. )
  9. func InvokeLLM(
  10. session *session_manager.Session,
  11. request *requests.RequestInvokeLLM,
  12. ) (
  13. *stream.StreamResponse[model_entities.LLMResultChunk], error,
  14. ) {
  15. return genericInvokePlugin[requests.RequestInvokeLLM, model_entities.LLMResultChunk](
  16. session,
  17. request,
  18. 512,
  19. access_types.PLUGIN_ACCESS_TYPE_MODEL,
  20. access_types.PLUGIN_ACCESS_ACTION_INVOKE_LLM,
  21. )
  22. }
  23. func InvokeTextEmbedding(
  24. session *session_manager.Session,
  25. request *requests.RequestInvokeTextEmbedding,
  26. ) (
  27. *stream.StreamResponse[model_entities.TextEmbeddingResult], error,
  28. ) {
  29. return genericInvokePlugin[requests.RequestInvokeTextEmbedding, model_entities.TextEmbeddingResult](
  30. session,
  31. request,
  32. 1,
  33. access_types.PLUGIN_ACCESS_TYPE_MODEL,
  34. access_types.PLUGIN_ACCESS_ACTION_INVOKE_TEXT_EMBEDDING,
  35. )
  36. }
  37. func InvokeRerank(
  38. session *session_manager.Session,
  39. request *requests.RequestInvokeRerank,
  40. ) (
  41. *stream.StreamResponse[model_entities.RerankResult], error,
  42. ) {
  43. return genericInvokePlugin[requests.RequestInvokeRerank, model_entities.RerankResult](
  44. session,
  45. request,
  46. 1,
  47. access_types.PLUGIN_ACCESS_TYPE_MODEL,
  48. access_types.PLUGIN_ACCESS_ACTION_INVOKE_RERANK,
  49. )
  50. }
  51. func InvokeTTS(
  52. session *session_manager.Session,
  53. request *requests.RequestInvokeTTS,
  54. ) (
  55. *stream.StreamResponse[model_entities.TTSResult], error,
  56. ) {
  57. return genericInvokePlugin[requests.RequestInvokeTTS, model_entities.TTSResult](
  58. session,
  59. request,
  60. 1,
  61. access_types.PLUGIN_ACCESS_TYPE_MODEL,
  62. access_types.PLUGIN_ACCESS_ACTION_INVOKE_TTS,
  63. )
  64. }
  65. func InvokeSpeech2Text(
  66. session *session_manager.Session,
  67. request *requests.RequestInvokeSpeech2Text,
  68. ) (
  69. *stream.StreamResponse[model_entities.Speech2TextResult], error,
  70. ) {
  71. return genericInvokePlugin[requests.RequestInvokeSpeech2Text, model_entities.Speech2TextResult](
  72. session,
  73. request,
  74. 1,
  75. access_types.PLUGIN_ACCESS_TYPE_MODEL,
  76. access_types.PLUGIN_ACCESS_ACTION_INVOKE_SPEECH2TEXT,
  77. )
  78. }
  79. func InvokeModeration(
  80. session *session_manager.Session,
  81. request *requests.RequestInvokeModeration,
  82. ) (
  83. *stream.StreamResponse[model_entities.ModerationResult], error,
  84. ) {
  85. return genericInvokePlugin[requests.RequestInvokeModeration, model_entities.ModerationResult](
  86. session,
  87. request,
  88. 1,
  89. access_types.PLUGIN_ACCESS_TYPE_MODEL,
  90. access_types.PLUGIN_ACCESS_ACTION_INVOKE_MODERATION,
  91. )
  92. }
  93. func ValidateProviderCredentials(
  94. session *session_manager.Session,
  95. request *requests.RequestValidateProviderCredentials,
  96. ) (
  97. *stream.StreamResponse[model_entities.ValidateCredentialsResult], error,
  98. ) {
  99. return genericInvokePlugin[requests.RequestValidateProviderCredentials, model_entities.ValidateCredentialsResult](
  100. session,
  101. request,
  102. 1,
  103. access_types.PLUGIN_ACCESS_TYPE_MODEL,
  104. access_types.PLUGIN_ACCESS_ACTION_VALIDATE_PROVIDER_CREDENTIALS,
  105. )
  106. }
  107. func ValidateModelCredentials(
  108. session *session_manager.Session,
  109. request *requests.RequestValidateModelCredentials,
  110. ) (
  111. *stream.StreamResponse[model_entities.ValidateCredentialsResult], error,
  112. ) {
  113. return genericInvokePlugin[requests.RequestValidateModelCredentials, model_entities.ValidateCredentialsResult](
  114. session,
  115. request,
  116. 1,
  117. access_types.PLUGIN_ACCESS_TYPE_MODEL,
  118. access_types.PLUGIN_ACCESS_ACTION_VALIDATE_MODEL_CREDENTIALS,
  119. )
  120. }