Skip to content

Commit d529d13

Browse files
Add readme example of ChatGPT streaming completion (#177)
1 parent a6b35c3 commit d529d13

File tree

1 file changed

+56
-1
lines changed

1 file changed

+56
-1
lines changed

README.md

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,61 @@ func main() {
5858

5959
Other examples:
6060

61+
<details>
62+
<summary>ChatGPT streaming completion</summary>
63+
64+
```go
65+
package main
66+
67+
import (
68+
"context"
69+
"errors"
70+
"fmt"
71+
"io"
72+
openai "github.com/sashabaranov/go-openai"
73+
)
74+
75+
func main() {
76+
c := openai.NewClient("your token")
77+
ctx := context.Background()
78+
79+
req := openai.ChatCompletionRequest{
80+
Model: openai.GPT3Dot5Turbo,
81+
MaxTokens: 20,
82+
Messages: []openai.ChatCompletionMessage{
83+
{
84+
Role: openai.ChatMessageRoleUser,
85+
Content: "Lorem ipsum",
86+
},
87+
},
88+
Stream: true,
89+
}
90+
stream, err := c.CreateChatCompletionStream(ctx, req)
91+
if err != nil {
92+
fmt.Printf("ChatCompletionStream error: %v\n", err)
93+
return
94+
}
95+
defer stream.Close()
96+
97+
fmt.Printf("Stream response: ")
98+
for {
99+
response, err := stream.Recv()
100+
if errors.Is(err, io.EOF) {
101+
fmt.Println("\nStream finished")
102+
return
103+
}
104+
105+
if err != nil {
106+
fmt.Printf("\nStream error: %v\n", err)
107+
return
108+
}
109+
110+
fmt.Printf(response.Choices[0].Delta.Content)
111+
}
112+
}
113+
```
114+
</details>
115+
61116
<details>
62117
<summary>GPT-3 completion</summary>
63118

@@ -327,4 +382,4 @@ func main() {
327382
}
328383
}
329384
```
330-
</details>
385+
</details>

0 commit comments

Comments
 (0)