Administrator
发布于 2023-02-15 / 413 阅读 / 0 评论 / 0 点赞

chatGPT的使用体验和代码demo

需要完成的工作

  • 你要有一个不被屏蔽IP的梯子
  • 找一个短信代收
  • 注册openai账号
  • 登录openai获取token

以下是相关连接

chatgpt注册登录
短信代收平台
chatGPT文档
go的chatGPT包

ps:代收平台短信没有收到可以退单

以下是代码demo

package main

import (
	"context"
	"errors"
	"fmt"
	"io"

	gogpt "github.com/sashabaranov/go-gpt3"
)

func main() {
	c := gogpt.NewClient("你的token")
	ctx := context.Background()

	req := gogpt.CompletionRequest{
		Model:     gogpt.GPT3TextDavinci003,
		MaxTokens: 500,
		Prompt:    "你的问题",
		Stream:    true,
	}
	stream, err := c.CreateCompletionStream(ctx, req)
	if err != nil {
		return
	}
	defer stream.Close()

	var (
		lineIndex = 0
		lineLen   = 80
	)

	for {
		response, err := stream.Recv()
		if errors.Is(err, io.EOF) {
			fmt.Println("Stream finished")
			return
		}

		if err != nil {
			fmt.Printf("Stream error: %v\n", err)
			return
		}

		if len(response.Choices) > 0 {
			fmt.Printf("%v", response.Choices[0].Text)
			if lineIndex == lineLen {
				fmt.Printf("\n")
				lineIndex = 0
			}

			lineIndex++
		}
	}
}

示例:
image-1676440891768