ChatGPT agent¶
This guide provides an overview of how to set up the ChatGPT agent in your Flyte deployment. Please note that you have to set up the OpenAI API key in the agent server to to run ChatGPT tasks.
Specify agent configuration¶
Edit the relevant YAML file to specify the agent.
kubectl edit configmap flyte-sandbox-config -n flyte
tasks:
task-plugins:
enabled-plugins:
- container
- sidecar
- k8s-array
- agent-service
default-for-task-types:
- container: container
- container_array: k8s-array
- chatgpt: agent-service
plugins:
agent-service:
supportedTaskTypes:
- chatgpt
# Configuring the timeout is optional.
# Tasks like using ChatGPT with a large model might require a longer time,
# so we have the option to adjust the timeout setting here.
defaultAgent:
timeouts:
ExecuteTaskSync: 10s
Create a file named values-override.yaml
and add the following configuration to it:
configmap:
enabled_plugins:
# -- Tasks specific configuration [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#GetConfig)
tasks:
# -- Plugins configuration, [structure](https://pkg.go.dev/github.com/flyteorg/flytepropeller/pkg/controller/nodes/task/config#TaskPluginConfig)
task-plugins:
# -- [Enabled Plugins](https://pkg.go.dev/github.com/flyteorg/flyteplugins/go/tasks/config#Config). Enable sagemaker*, athena if you install the backend
enabled-plugins:
- container
- sidecar
- k8s-array
- agent-service
default-for-task-types:
container: container
sidecar: sidecar
container_array: k8s-array
chatgpt: agent-service
plugins:
agent-service:
supportedTaskTypes:
- chatgpt
# Configuring the timeout is optional.
# Tasks like using ChatGPT with a large model might require a longer time,
# so we have the option to adjust the timeout setting here.
defaultAgent:
timeouts:
ExecuteTaskSync: 10s
Add the OpenAI API token¶
Install flyteagent pod using helm:
helm repo add flyteorg https://flyteorg.github.io/flyte
helm install flyteagent flyteorg/flyteagent --namespace flyte
Get the base64 value of your OpenAI API token:
echo -n "<OPENAI_API_TOKEN>" | base64
Edit the flyteagent secret:
kubectl edit secret flyteagent -n flyte
apiVersion: v1 data: flyte_openai_api_key: <BASE64_ENCODED_OPENAI_API_TOKEN> kind: Secret metadata: annotations: meta.helm.sh/release-name: flyteagent meta.helm.sh/release-namespace: flyte creationTimestamp: "2023-10-04T04:09:03Z" labels: app.kubernetes.io/managed-by: Helm name: flyteagent namespace: flyte resourceVersion: "753" uid: 5ac1e1b6-2a4c-4e26-9001-d4ba72c39e54 type: Opaque
Upgrade the Flyte Helm release¶
helm upgrade <RELEASE_NAME> flyteorg/flyte-binary -n <YOUR_NAMESPACE> --values <YOUR_YAML_FILE>
Replace <RELEASE_NAME>
with the name of your release (e.g., flyte-backend
),
<YOUR_NAMESPACE>
with the name of your namespace (e.g., flyte
),
and <YOUR_YAML_FILE>
with the name of your YAML file.
helm upgrade <RELEASE_NAME> flyte/flyte-core -n <YOUR_NAMESPACE> --values values-override.yaml
Replace <RELEASE_NAME>
with the name of your release (e.g., flyte
)
and <YOUR_NAMESPACE>
with the name of your namespace (e.g., flyte
).
For ChatGPT agent on the Flyte cluster, see ChatGPT agent.