Added an example of image generation using DALL-E (#168)
* add "name" property for ChatCompletionMessage * added a comment to the "Name" property * Added an example of image generation using DALL-E --------- Co-authored-by: Contantine A <avdeev@embria.com>
This commit is contained in:
80
README.md
80
README.md
@@ -170,6 +170,86 @@ func main() {
|
||||
```
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>DALL-E 2 image generation</summary>
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
openai "github.com/sashabaranov/go-openai"
|
||||
"image/png"
|
||||
"os"
|
||||
)
|
||||
|
||||
func main() {
|
||||
c := openai.NewClient("your token")
|
||||
ctx := context.Background()
|
||||
|
||||
// Sample image by link
|
||||
reqUrl := openai.ImageRequest{
|
||||
Prompt: "Parrot on a skateboard performs a trick, cartoon style, natural light, high detail",
|
||||
Size: openai.CreateImageSize256x256,
|
||||
ResponseFormat: openai.CreateImageResponseFormatURL,
|
||||
N: 1,
|
||||
}
|
||||
|
||||
respUrl, err := c.CreateImage(ctx, reqUrl)
|
||||
if err != nil {
|
||||
fmt.Printf("Image creation error: %v\n", err)
|
||||
return
|
||||
}
|
||||
fmt.Println(respUrl.Data[0].URL)
|
||||
|
||||
// Example image as base64
|
||||
reqBase64 := openai.ImageRequest{
|
||||
Prompt: "Portrait of a humanoid parrot in a classic costume, high detail, realistic light, unreal engine",
|
||||
Size: openai.CreateImageSize256x256,
|
||||
ResponseFormat: openai.CreateImageResponseFormatB64JSON,
|
||||
N: 1,
|
||||
}
|
||||
|
||||
respBase64, err := c.CreateImage(ctx, reqBase64)
|
||||
if err != nil {
|
||||
fmt.Printf("Image creation error: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
imgBytes, err := base64.StdEncoding.DecodeString(respBase64.Data[0].B64JSON)
|
||||
if err != nil {
|
||||
fmt.Printf("Base64 decode error: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
r := bytes.NewReader(imgBytes)
|
||||
imgData, err := png.Decode(r)
|
||||
if err != nil {
|
||||
fmt.Printf("PNG decode error: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
file, err := os.Create("image.png")
|
||||
if err != nil {
|
||||
fmt.Printf("File creation error: %v\n", err)
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
if err := png.Encode(file, imgData); err != nil {
|
||||
fmt.Printf("PNG encode error: %v\n", err)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("The image was saved as example.png")
|
||||
}
|
||||
|
||||
```
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Configuring proxy</summary>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user