Kubectl OpenAI 插件 ✨
原文链接: https://typonotes.com/posts/2023/03/23/kubectl-ai-plugin/
该我的项目是一个 kubectl
插件,应用 OpenAI GPT 生成和利用 Kubernetes 清单。
我的次要动机是防止在开发 / 测试时找到和收集随机清单。
下载地址
官网首页: https://github.com/sozercan/kubectl-ai
用法
先决条件
kubectl-ai
须要 OpenAI API 密钥或 Azure OpenAI 服务 API 密钥和端点以及无效的 Kubernetes 配置。
对于 OpenAI 和 Azure OpenAI,您能够应用以下环境变量:
export OPENAI_API_KEY=<your OpenAI key>
export OPENAI_DEPLOYMENT_NAME=<your OpenAI deployment/model name. defaults to "gpt-3.5-turbo">
反对以下模型:
code-davinci-002
text-davinci-003
gpt-3.5-turbo-0301
(Azure 的部署必须命名为gpt-35-turbo-0301
)gpt-3.5-turbo
gpt-35-turbo-0301
对于 Azure OpenAI 服务,您能够应用以下环境变量:
export AZURE_OPENAI_ENDPOINT=<your Azure OpenAI endpoint, like "<https://my-aoi-endpoint.openai.azure.com>">
如果设置了 AZURE_OPENAI_ENDPOINT
变量,则将应用 Azure OpenAI 服务。否则,它将应用 OpenAI API。
装置
- 从 GitHub releases 下载二进制文件。
- 如果您想将其用作
[kubectl
插件](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/),则将kubectl-ai
二进制文件复制到您的PATH
。如果不是,则也能够独自应用二进制文件。
标记和环境变量
- 能够设置
-require-confirmation
标记或REQUIRE_CONFIRMATION
环境变量,以在利用清单之前提醒用户进行确认。默认为 true。 - 能够将
-temperature
标记或TEMPERATURE
环境变量设置在 0 到 1 之间。较高的温度将导致更具创意的实现。较低的温度将导致更确定性的实现。默认为 0。
示例
创立具备特定值的对象:
$ kubectl ai "create an nginx deployment with 3 replicas"
✨ 尝试利用以下清单:apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
EOF
应用箭头键导航:↓ ↑ → ←
? 是否要利用此内容?[利用 / 不利用]:▸ 利用
不利用
$ kubectl ai "scale nginx-deployment to 5 replicas"
✨ 尝试利用以下清单:apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 5
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
EOF
应用箭头键导航:↓ ↑ → ←
? 是否要利用此内容?[利用 / 不利用]:▸ 利用
不利用
请留神,插件不晓得集群的以后状态(尚未?),因而它将始终生成残缺的清单。
可选的 --require-confirmation
标记:
$ kubectl ai "create a service with type LoadBalancer with selector as'app:nginx'" --require-confirmation=false
✨ 尝试利用以下清单:apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- port: 80
targetPort: 80
type: LoadBalancer
多个对象:
$ kubectl ai "create a foo namespace then create nginx pod in that namespace"
✨ 尝试利用以下清单:apiVersion: v1
kind: Namespace
metadata:
name: foo
---
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: foo
spec:
containers:
- name: nginx
image: nginx:latest
EOF
应用箭头键导航:↓ ↑ → ←
? 是否要利用此内容?[利用 / 不利用]:▸ 利用
不利用
致谢和鸣谢
感激 @simongottschlag
在 https://github.com/simongottschlag/azure-openai-gpt-slack-bot 上对 Azure OpenAI 分支的工作,该分支基于 https://github.com/PullRequestInc/go-gpt3
相互吹捧,共同进步
欢送和我一起学习提高,如果有什么问题,能够给我私信留言。或者
- 加我好友 线下探讨。
- 关注我的 公众号 – 老麦胖熊猫 或者 B 站账户 – 老麦胖熊猫 订阅最新文章和更多精彩内容