第49节 在 Sealos 上开发一款 AI 自动云原生化项目自动上线工具
❤️💕💕记录sealos开源项目的学习过程。k8s,docker和云原生的学习。Myblog:http://nsddd.top
[TOC]
介绍
技术领域:
熟悉 golang、Docker、kubernetes 等技术,了解 chatGPT、autoGPT 等AI技术的使用
开源协议:
- apache-2
项目简述:
项目背景:
不论懂不懂云原生,写 Dockerfile 以及 yaml 文件都是一件非常痛苦的事,如果 AI 能自动帮我们解决这个问题将会价值巨大。
项目描述:
输入一个任意的 github 仓库地址,通过 AI 能力自动为其生成 Dockerfile 和 kubernetes 编排配置文件,并自动在 sealos 上运行。
AI 生成的不一定第一次就能生成非常准确的配置,首先需要可以把自动构建的错误信息返回给 AI 并让 AI 自动修复,也需要人给 AI 一些反馈信息把没有期望发生的现象反馈给 AI 让 AI 来调整。
最终把生成的内容 PR 回仓库,后续就可以实现完全自动化上线了。
产出要求
- 源代码,技术文档,线上服务以及测试报告
- 提供能力的源码与文档并合并到主仓库
- 功能可以正常在 sealos 上线并运行
- 提供测试报告
什么是 Auto-GPT
go-gpt3
go-gpt3 是一个 OpenAI GPT-3 API 客户端,使 Go/Golang
程序能够与 gpt3 API
进行交互。
支持使用带或不带流式处理的完成 API。
user
调用主 gpt-3 API 的简单用法,完成:
client := gpt3.NewClient(apiKey)
resp, err := client.Completion(ctx, gpt3.CompletionRequest{
Prompt: []string{"2, 3, 5, 7, 11,"},
})
fmt.Print(resp.Choices[0].Text)
// prints " 13, 17, 19, 23, 29, 31", etc
Documentation
尝试这些示例中的任何一种,将内容放入 main.go
并运行 go run main.go
。我建议使用 go 模块,在这种情况下,您还需要在测试存储库中运行 go mod init
。或者,您可以克隆此存储库并使用 go run cmd/test/main.go
运行测试脚本。
但是我们知道,我们如果希望运行 chatgpt ,我们期望有一个 API
这是和 AutoGPT 一样的:
如下所示的 .env
文件才能使用这些示例:
API_KEY=<openAI API Key>
💡简单的一个案例如下:
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/PullRequestInc/go-gpt3"
"github.com/joho/godotenv"
)
func main() {
godotenv.Load()
apiKey := os.Getenv("API_KEY")
if apiKey == "" {
log.Fatalln("Missing API KEY")
}
ctx := context.Background()
client := gpt3.NewClient(apiKey)
resp, err := client.Completion(ctx, gpt3.CompletionRequest{
Prompt: []string{"The first thing you should know about javascript is"},
MaxTokens: gpt3.IntPtr(30),
Stop: []string{"."},
Echo: true,
})
if err != nil {
log.Fatalln(err)
}
fmt.Println(resp.Choices[0].Text)
}
通过 os.Getenv
获取到环境变量的值,其中的环境变量使用的是 API_KEY
来进行设置
export API_KEY="**********************************"
I want Auto-GPT to: 根据https://github.com/go-gitea/gitea的GitHub仓库地址,生成可以供 Kubernetes 使用的 yaml 文件或者是 dockerfile 使用的 dockerfile 文件,生成yaml文件保存本地后退出
GitOpsGPT has been created with the following details:
Name: GitOpsGPT
Role: an AI agent that automates the process of generating Kubernetes yaml files or Dockerfiles from a given GitHub repository URL, and saves the generated files locally.
Goals:
- Analyze the repository and identify the appropriate language and framework used to generate the Dockerfile or Kubernetes yaml files.
- Generate the Dockerfile or Kubernetes yaml files based on the identified language and framework, and ensure that they are compatible with the latest version of Kubernetes.
- Optimize the generated files for performance, security, and scalability, and ensure that they adhere to best practices and industry standards.
- Save the generated files to a specified location on the local machine and provide a confirmation message upon completion.
- Continuously monitor the repository for any changes and update the generated files accordingly to ensure that they remain up-to-date and compatible with the latest version of Kubernetes.
链接
END 链接
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©