Repository Organization#

Understanding the organizational structure of your Artificial Repository

Every Artificial Customer has one or more GitHub repositories that contain the code for their Adapters and Workflows. Artificial creates these repositories, and Artificial Customers are given access to these repositories using GitHub IDs that are tied to their work email address.

Top Level#

Note

This structure is an example of a potential structure and may change. This will be reviewed during your Workflows Training sessions.

There are 4 top-level items within a Repository that are important to understand:

/adapter

The top-level folder for hosting the Adapter python files

/workflow

The top-level folder for hosting the Workflow files

/configs

The top level folder containing configuration for the adapter and connecting to artificial.

README.md

The top level README for orienting new developers to the Adapter and Workflow. This content will show up when browsing the Repository on GitHub, so it should be kept up to date and provide an overview of the Adapter and associated Workflows.

Pipfile

Contains information for the dependencies of the project

There are also a number of other files at the root of the Repository that exist for Git, VSCode, the Dev Container, Docker, and various Python tooling. These can be safely ignored to start with.

/workflow Contents#

The contents of this folder are completely at the discretion of the SDK author. However, this will detail the most commonly found patterns used.

stubs_actions.py

Defines the Python methods that invoke Actions in the Adapter and their associated Input and Output Parameters.

stubs_assistants.py

Defines the Python methods that invoke Assistants and their associated Input and Output Parameters

<workflow_name>.py

This file defines the Workflow itself. It is written in Orchestration Python. This file is provided a name that is specific to the Workflow.

/config Contents#

Config must follow the pattern specified by Artificial.

context.yaml

File to specify which config is currently loaded

<ContextFolder>

Folder to hold a configuration context

<ContextFolder>/config.yaml

File specifying adapter configuration settings

<ContextFolder>/secrets.yaml

File for configuration that should remain outside of source code control, like tokens, passwords, etc.