123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package service
- import (
- "github.com/gin-gonic/gin"
- "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_daemon"
- "github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager"
- "github.com/langgenius/dify-plugin-daemon/internal/core/session_manager"
- "github.com/langgenius/dify-plugin-daemon/internal/types/entities/model_entities"
- "github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities"
- "github.com/langgenius/dify-plugin-daemon/internal/types/entities/requests"
- "github.com/langgenius/dify-plugin-daemon/internal/utils/parser"
- "github.com/langgenius/dify-plugin-daemon/internal/utils/stream"
- )
- func createSession[T any](r *plugin_entities.InvokePluginRequest[T]) *session_manager.Session {
- session := session_manager.NewSession(r.TenantId, r.UserId, parser.MarshalPluginIdentity(r.PluginName, r.PluginVersion))
- runtime := plugin_manager.GetGlobalPluginManager().Get(session.PluginIdentity())
- session.BindRuntime(runtime)
- return session
- }
- func InvokeLLM(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeLLM], ctx *gin.Context) {
- // create session
- session := createSession(r)
- defer session.Close()
- baseSSEService(r, func() (*stream.StreamResponse[model_entities.LLMResultChunk], error) {
- return plugin_daemon.InvokeLLM(session, &r.Data)
- }, ctx)
- }
- func InvokeTextEmbedding(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeTextEmbedding], ctx *gin.Context) {
- // create session
- session := createSession(r)
- defer session.Close()
- baseSSEService(r, func() (*stream.StreamResponse[model_entities.TextEmbeddingResult], error) {
- return plugin_daemon.InvokeTextEmbedding(session, &r.Data)
- }, ctx)
- }
- func InvokeRerank(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeRerank], ctx *gin.Context) {
- // create session
- session := createSession(r)
- defer session.Close()
- baseSSEService(r, func() (*stream.StreamResponse[model_entities.RerankResult], error) {
- return plugin_daemon.InvokeRerank(session, &r.Data)
- }, ctx)
- }
- func InvokeTTS(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeTTS], ctx *gin.Context) {
- // create session
- session := createSession(r)
- defer session.Close()
- baseSSEService(r, func() (*stream.StreamResponse[model_entities.TTSResult], error) {
- return plugin_daemon.InvokeTTS(session, &r.Data)
- }, ctx)
- }
- func InvokeSpeech2Text(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeSpeech2Text], ctx *gin.Context) {
- // create session
- session := createSession(r)
- defer session.Close()
- baseSSEService(r, func() (*stream.StreamResponse[model_entities.Speech2TextResult], error) {
- return plugin_daemon.InvokeSpeech2Text(session, &r.Data)
- }, ctx)
- }
- func InvokeModeration(r *plugin_entities.InvokePluginRequest[requests.RequestInvokeModeration], ctx *gin.Context) {
- // create session
- session := createSession(r)
- defer session.Close()
- baseSSEService(r, func() (*stream.StreamResponse[model_entities.ModerationResult], error) {
- return plugin_daemon.InvokeModeration(session, &r.Data)
- }, ctx)
- }
- func ValidateProviderCredentials(r *plugin_entities.InvokePluginRequest[requests.RequestValidateProviderCredentials], ctx *gin.Context) {
- // create session
- session := createSession(r)
- defer session.Close()
- baseSSEService(r, func() (*stream.StreamResponse[model_entities.ValidateCredentialsResult], error) {
- return plugin_daemon.ValidateProviderCredentials(session, &r.Data)
- }, ctx)
- }
- func ValidateModelCredentials(r *plugin_entities.InvokePluginRequest[requests.RequestValidateModelCredentials], ctx *gin.Context) {
- // create session
- session := createSession(r)
- defer session.Close()
- baseSSEService(r, func() (*stream.StreamResponse[model_entities.ValidateCredentialsResult], error) {
- return plugin_daemon.ValidateModelCredentials(session, &r.Data)
- }, ctx)
- }
|