request.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package backwards_invocation
  2. import (
  3. "github.com/langgenius/dify-plugin-daemon/internal/core/dify_invocation"
  4. "github.com/langgenius/dify-plugin-daemon/internal/core/session_manager"
  5. "github.com/langgenius/dify-plugin-daemon/internal/utils/parser"
  6. )
  7. type BackwardsInvocationType = dify_invocation.InvokeType
  8. type BackwardsInvocation struct {
  9. typ BackwardsInvocationType
  10. id string
  11. detailed_request map[string]any
  12. session *session_manager.Session
  13. }
  14. func NewBackwardsInvocation(
  15. typ BackwardsInvocationType,
  16. id string, session *session_manager.Session, detailed_request map[string]any,
  17. ) *BackwardsInvocation {
  18. return &BackwardsInvocation{
  19. typ: typ,
  20. id: id,
  21. detailed_request: detailed_request,
  22. session: session,
  23. }
  24. }
  25. func (bi *BackwardsInvocation) GetID() string {
  26. return bi.id
  27. }
  28. func (bi *BackwardsInvocation) WriteError(err error) {
  29. bi.session.Write(parser.MarshalJsonBytes(NewErrorEvent(bi.id, err.Error())))
  30. }
  31. func (bi *BackwardsInvocation) Write(message string, data map[string]any) {
  32. bi.session.Write(parser.MarshalJsonBytes(NewResponseEvent(bi.id, message, data)))
  33. }
  34. func (bi *BackwardsInvocation) End() {
  35. bi.session.Write(parser.MarshalJsonBytes(NewEndEvent(bi.id)))
  36. }
  37. func (bi *BackwardsInvocation) Type() BackwardsInvocationType {
  38. return bi.typ
  39. }
  40. func (bi *BackwardsInvocation) RequestData() map[string]any {
  41. return bi.detailed_request
  42. }