1
0

chatgpt_test.go 970 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package test
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/0xJacky/Nginx-UI/settings"
  6. "github.com/pkg/errors"
  7. "github.com/sashabaranov/go-openai"
  8. "io"
  9. "os"
  10. "testing"
  11. )
  12. func TestChatGPT(t *testing.T) {
  13. settings.Init("../../app.ini")
  14. c := openai.NewClient(settings.OpenAISettings.Token)
  15. ctx := context.Background()
  16. req := openai.ChatCompletionRequest{
  17. Model: openai.GPT3Dot5Turbo0301,
  18. Messages: []openai.ChatCompletionMessage{
  19. {
  20. Role: openai.ChatMessageRoleUser,
  21. Content: "帮我写一个 nginx 配置文件的示例",
  22. },
  23. },
  24. Stream: true,
  25. }
  26. stream, err := c.CreateChatCompletionStream(ctx, req)
  27. if err != nil {
  28. fmt.Printf("CompletionStream error: %v\n", err)
  29. return
  30. }
  31. defer stream.Close()
  32. for {
  33. response, err := stream.Recv()
  34. if errors.Is(err, io.EOF) {
  35. return
  36. }
  37. if err != nil {
  38. fmt.Printf("Stream error: %v\n", err)
  39. return
  40. }
  41. fmt.Printf("%v", response.Choices[0].Delta.Content)
  42. _ = os.Stdout.Sync()
  43. }
  44. }