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>
|
||||||
|
|
||||||
|
<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>
|
<details>
|
||||||
<summary>Configuring proxy</summary>
|
<summary>Configuring proxy</summary>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user