Open christad92 opened 9 months ago
This probably needs to wait until https://github.com/OpenFn/gen/issues/42 is ready before we can take contributions.
Then this project needs:
Hey !
I'm interested in contributing to this project to solve the generation of workflows.yaml
file.
@josephjclark I would love to talk and get more specific details on it and contribute
Hey !
I'm interested in contributing to this project to solve the generation of
workflows.yaml
file.@josephjclark I would love to talk and get more specific details on it and contribute
Hi @hiteshbandhu thanks for the interest. Please can you send an email to ayodele[at]openfn[dot]org and we will be able to decide on possible next steps.
Hey @christad92 i am interested in working on this project should i mail w=you regarding the next steps?
@christad92 hi, I am learning coding... Pls let me know whether I can join this project. Regards Vikas
Hi @utnim2 I have responded to your email with next steps. We'd love to get you started, please use the link in the email to book a 30 mins call to discuss this issue.
Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.
Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.
@christad92 i would like to work on this issue can u pls assign me this so that i can start working
Greetings @christad92, I've sent you my proposal via email. Could you please take a moment to review it and provide any feedback or suggestions for improvement. Once finalized, I'll be ready to submit it on the website.
Hey @christad92 and @josephjclark I'm Shivansh, and I've been selected to work on this issue for DMP 2024. I've been developing a Python module to generate YAML files from workflow steps using NLP, rule-based parsing and NER. You can check the initial AI pipeline I am following.
You can find my initial YAML generator implementation in this Google Colab : RB+NER_Yaml.ipynb
This probably needs to wait until OpenFn/apollo#42 is ready before we can take contributions.
Then this project needs:
- An AI module plugging into the AI server that can generate workflows (in python or JavaScript)
- A CLI integration which allows the module to be called from the CLI and outputs workflow.yaml to disk
- A UI in Lightning, which is probably a separate ticket in the lightning repo
I've also reviewed @josephjclark's comment on the issue thread and wanted to confirm if my primary task is developing the Python module for this issue. Additionally, I noticed the initial framework for Apollo service calls in the CLI and wanted to know if I should also contribute to the UI ticket on the lightning repository.
- A CLI integration which allows the module to be called from the CLI and outputs workflow.yaml to disk
On inspection of apollo repository I noticed that you have set up the initial framework for making calls to Apollo services through the CLI. So need a clarification regarding the integration/plugging of this issue in Apollo repository and CLI calls.
I hope it aligns with the project goals, I would greatly appreciate your feedback and guidance on any potential improvements or clarifications on my responsibilities.
Best Regards
P.S : I think this issue should be in OpenFn/apollo.
Hi @Pin4sf!
Sorry for the late reply - and congrats on getting the ticket!
You are not expected to contribute to lightning as part of this project - the focus is on the backend, likely python.
A lot has changed since we created this issue and we're doing a little bit of planning to accommodate that. Unfortunately I'm super busy this week so we need a few days to prepare.
We're going to set up a kick-off call late next week to go through this. We'll be in touch soon to get that arranged, then we can let you loose!
You can access the contribution dashboard here C4GT DMP 24
gen_project
.project.yaml
or workflow.json
file).Dmp/619
).gen_project.py
to the repository.gen_project
services for optimized output.json
for lightning importproject.yaml
creation and linting the output.json.
Overview
We are looking to integrate an AI agent that is able to generate a workflow for a user, based on an instructions specifying the required steps and adaptors.
This feature will enable new users of OpenFn (Lightning) to get started faster after registration by entering the steps they need.
The agent will automatically build a workflow can run without error and ready for editing.
Deliverables
gen_project
To be clear, this work does NOT include any integration on the Lightning side.
Extensions to this work include:
Sample Inputs
Below are examples of prompts and their corresponding workflow.yaml for reference and testing. Prompt 1
Make a comment on Asana
Prompt 2:
Demo script
To validate the work, we would like a demo script which lets us easily test various inputs and see them visualised in Lightning.
The demo should be executable from a terminal. It could be a python or bash script. It should not be integrated with the the OpenFn CLI.
The demo should do the following:
Suggested API
We recommend the following API for the service
JSON input:
JSON output:
The resulting structure and the
files
key makes for easy integration with the apollo server.Background
OpenFn is an open source platform for data integration and workflow automation which can be used via a CLI or a web UI.
Projects on OpenFn can be encoded in a yaml file containing workflows, steps, jobs, triggers and edges.
Key terms
Workflows contains one trigger and one or more steps connected by edges.
Workflows are at the base of users activities and steps related to a objective are built and saved in a workflow.
A step is a task or instruction that users write mostly in Javascript. The output of a step can be anything from sending a text message, transform data, make an API call, send data to an external systems or fetch data from an external system. These jobs are performed with the help of adaptors.
Triggers are useful for nudging workflows to run based on an event or at a scheduled time. Edges connects two steps and determines the order and conditions for the steps in a workflow.
See more details at https://docs.openfn.org/documentation/get-started/terminology
Sample Project.yaml
Below is an example of a yaml file for a project
openhie-project
which has one workflowOpenHIE-Workflow
and 4 steps[ "FHIR-standard-Data-with-change", "Send-to-OpenHIM-to-route-to-SHR", "Send-to-OpenHIM-to-route-to-SHR", "Notify-CHW-upload-successful"]
. The trigger is a Webhook event and there are also 4 edges withsource_job
,target_job
andcondition
variables that guide how the workflow should be executed.Here's what a list of steps might look like (also pictured in the image below):
When this feature is integrated with Lighnting, here is how a user would use it to generate a workflow.
Building this UI/X is NOT part of this project but the image below is helpful for contributors to understand the mission.
Documentation and relevant links