如何快速接入chatgpt?[引入go-gpt3]

    • 上文介绍了如安在网页运用chatgpt?
    • V1.介绍下在golang中运用chatgpt?
      • 1.查看官网引荐的chatgpt项目
      • 2.访问go-gpt3
      • 3.运用并运转在自己的项目中…(是因为例子很难理解,所以一一对应了特点做了配置)
        • 3.1安装项目
        • 3.2换上自己的代码
        • 3.3换上自己的key
      • 4.运转成果如图…
      • 5.对照网页版运转成果…
    • V2.已集成Gin/Html做成网页版别…
    • 完好代码

[Golang实战]如何快速接入chatgpt/openai?[引入go-gpt3][新手开箱可用]

上文介绍了如安在网页运用chatgpt?

ChatGPT-OpenAI注册运用保姆级教程?[开箱可用][免费运用]

V1.介绍下在golang中运用chatgpt?

1.查看官网引荐的chatgpt项目

先看官网引荐的项目

[Golang实战]如何快速接入chatgpt/openai?[引入go-gpt3][新手开箱可用]

2.访问go-gpt3

go-gpt3

[Golang实战]如何快速接入chatgpt/openai?[引入go-gpt3][新手开箱可用]

3.运用并运转在自己的项目中…(是因为例子很难理解,所以一一对应了特点做了配置)

3.1安装项目

先是go get github.com/sashabaranov/go-gpt3
参数很多,跟网页版的差异不大…

3.2换上自己的代码

package main
import (
	"context"
	"fmt"
	gogpt "github.com/sashabaranov/go-gpt3"
)
func main() {
	token := "Your Key"
	ask := "Please write a article About how to live in the china?"
	example(token, ask)
}
func example(token string, prompt string) {
	c := gogpt.NewClient(token)
	ctx := context.Background()
	req := gogpt.CompletionRequest{
		Model:            gogpt.GPT3TextDavinci001,
		Temperature:      0.4,
		MaxTokens:        1000,
		TopP:             1,
		FrequencyPenalty: 0,
		PresencePenalty:  0,
		BestOf:           1,
		Prompt:           prompt,
	}
	resp, err := c.CreateCompletion(ctx, req)
	if err != nil {
		return
	}
	fmt.Println(resp.Choices[0].Text)
}

3.3换上自己的key

[Golang实战]如何快速接入chatgpt/openai?[引入go-gpt3][新手开箱可用]

4.运转成果如图…

[Golang实战]如何快速接入chatgpt/openai?[引入go-gpt3][新手开箱可用]

5.对照网页版运转成果…

[Golang实战]如何快速接入chatgpt/openai?[引入go-gpt3][新手开箱可用]

V2.已集成Gin/Html做成网页版别…

main.go

package main
import (
	"embed"
	"github.com/gin-gonic/gin"
	"html/template"
	"io/ioutil"
	"net/http"
	"strings"
)
//go:embed static/* templates/*
var f embed.FS
func main() {
	router := gin.Default()
	// asset加载html
	templates, err := loadTemplate()
	if err != nil {
		panic(err)
	}
	// 配置模板
	router.SetHTMLTemplate(templates)
	// 配置静态文件夹途径 第一个参数是api,第二个是文件夹途径
	router.StaticFS("/static/", http.FS(f))
	rootGroup := router.Group("/")
	{
		rootGroup.GET("/", Index)
		rootGroup.GET("/index", Index)
		rootGroup.GET("/test/", Test)
		rootGroup.POST("/chatgpt", ChatGPT)
	}
	router.Run(":9090")
}
// 执行命令: go-assets-builder templates -o assets.go -p main
func loadTemplate() (*template.Template, error) {
	t := template.New("")
	for name, file := range Assets.Files {
		// 可以用.tmpl .html
		if file.IsDir() || !strings.HasSuffix(name, ".html") {
			continue
		}
		h, err := ioutil.ReadAll(file)
		if err != nil {
			return nil, err
		}
		t, err = t.New(name).Parse(string(h))
		if err != nil {
			return nil, err
		}
	}
	return t, nil
}

[Golang实战]如何快速接入chatgpt/openai?[引入go-gpt3][新手开箱可用]

完好代码

Github-chatgpt-demo