Skip to content

Latest commit

 

History

History
94 lines (77 loc) · 3.13 KB

README.md

File metadata and controls

94 lines (77 loc) · 3.13 KB

Python SDK for Eden AI workflows

Build and update your Eden AI workflows straight from your python code, without needing a UI!
This way you can easily commit changes to your workflow, as all you need to do is putting this code into a git repo 🚀

This package is in alpha and the API can still change

Installation

pip install edenai_sdk

Example

You can use client.create_or_update(name="my_unique_name", data=data) to create a workflow. If a workflow with this name already exists it will update the workflow. You can always view the workflow you've build in the UI in the Eden AI App

To see which parameters are availabe for each feature, you can check our api docs

from edenai_sdk.workflow import workflow_client

def main():
    client = workflow_client(
        api_key=os.environ.get("API_KEY")
    )

    data = {
        "nodes": [
            {
                "type": "input",
                "name": "Input_Node",
                "data": [
                    {"type": "string", "label": "text", "defaultValue": "Hello, world!"}
                ],
            },
            {
                "type": "text/chat",
                "name": "some_chat",
                "data": [
                    {"name": "provider", "value": "openai/gpt-4o"},
                    {"name": "text", "value": "explain me: {{Input_Node.text}}"},
                ],
            },
            {
                "type": "translation/automatic_translation",
                "name": "Translation",
                "data": [
                    {"name": "provider", "value": "google"},
                    {"name": "text", "value": "{{some_chat.generated_text}}"},
                    {"name": "source_language", "value": "en"},
                    {"name": "target_language", "value": "fr"},
                ],
            },
            {
                "type": "text/keyword_extraction",
                "name": "Keywords",
                "data": [
                    {"name": "provider", "value": "openai"},
                    {"name": "text", "value": "{{Translation.text}}"},
                ],
            },
            {
                "type": "code",
                "name": "some_code",
                "data": [
                    {
                        "name": "code",
                        "value": "const valueFromInput = {{ Input_Node.text }};\n  const valueFromNode = {{ some_chat.generated_text }};  \nfunction greet(msg) {\n  return `welcome ${msg}!`;\n};\n\nreturn {\n input: greet(valueFromInput),\n node: greet(valueFromNode),\n};",
                    }
                ],
            },
            {
                "type": "output",
                "name": "Output_Node",
                "data": [{"name": "french_keywords", "value": "{{Keywords.items[*].keyword}}"}],
            },
        ]
    }

    response = client.create_or_update(name="code_test", data=data)
    execution = client.execute(name="code_test", data={"text": "Tell me a story about Eden AI"})
    print(execution["output"])



if __name__ == "__main__":
    main()