Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a pipe processor for arbitrary execution of input and output #5312

Open
dlvenable opened this issue Jan 7, 2025 · 0 comments
Open
Assignees
Labels
enhancement New feature or request

Comments

@dlvenable
Copy link
Member

Is your feature request related to a problem? Please describe.

Some use-cases, such as GenAI, could be solved through running external programs. For example, to run data from Data Prepper into a Python program running LangChain, we could send events in and then enrich those events with the output from the program.

Describe the solution you'd like

Create a pipe processor. This processor will call an external command with arguments to modify events.

It operates similar to a Linux pipe (really two pipes). It would put each event on a newline as JSON into the program's stdin. Then it would read from stdout to get changes to the event to merge in.

Conceptually it is similar to data-prepper | command | data-prepper

processor:
  - pipe:
       command: python3
       arguments:
         - /path/to/my/script

Describe alternatives you've considered (Optional)

The AWS Lambda processor is quite similar. However, this requires the use of AWS Lambda and does not work for fully open-source use-cases.

I also considered creating both a Python processor and a LangChain processor. But, a general pipe processor would be more generic. And creating processors for these specific tools would not have much value if they don't already include the dependencies, but then we may get into some dependency issues.

Additional context

N/A

@dlvenable dlvenable self-assigned this Jan 7, 2025
@sb2k16 sb2k16 removed the untriaged label Jan 7, 2025
dlvenable added a commit to dlvenable/data-prepper that referenced this issue Jan 8, 2025
…the fields from another Event into the current event. Contributes toward opensearch-project#5312.

Signed-off-by: David Venable <[email protected]>
@dlvenable dlvenable added the enhancement New feature or request label Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

No branches or pull requests

2 participants