12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package test
- import (
- "context"
- "fmt"
- "github.com/0xJacky/Nginx-UI/settings"
- "errors"
- "github.com/sashabaranov/go-openai"
- "github.com/uozi-tech/cosy/sandbox"
- "io"
- "os"
- "testing"
- )
- func TestChatGPT(t *testing.T) {
- sandbox.NewInstance("../../app.ini", "sqlite").
- Run(func(instance *sandbox.Instance) {
- c := openai.NewClient(settings.OpenAISettings.Token)
- ctx := context.Background()
- req := openai.ChatCompletionRequest{
- Model: openai.GPT3Dot5Turbo0301,
- Messages: []openai.ChatCompletionMessage{
- {
- Role: openai.ChatMessageRoleUser,
- Content: "帮我写一个 nginx 配置文件的示例",
- },
- },
- Stream: true,
- }
- stream, err := c.CreateChatCompletionStream(ctx, req)
- if err != nil {
- fmt.Printf("CompletionStream error: %v\n", err)
- return
- }
- defer stream.Close()
- for {
- response, err := stream.Recv()
- if errors.Is(err, io.EOF) {
- return
- }
- if err != nil {
- fmt.Printf("Stream error: %v\n", err)
- return
- }
- fmt.Printf("%v", response.Choices[0].Delta.Content)
- _ = os.Stdout.Sync()
- }
- })
- }
|