当前位置:   article > 正文

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

go chatgpt项目

在这里插入图片描述

上文介绍了如何在网页使用chatgpt?

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

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

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

先看官网推荐的项目
在这里插入图片描述

2.访问go-gpt3

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)
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
3.3换上自己的key

在这里插入图片描述

4.运行结果如图…

在这里插入图片描述

5.对照网页版运行结果…

在这里插入图片描述

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
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

在这里插入图片描述

完整代码

Github-chatgpt-demo

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/680834
推荐阅读
相关标签
  

闽ICP备14008679号