-
Notifications
You must be signed in to change notification settings - Fork 1
/
api_inference_test.go
111 lines (92 loc) · 2.7 KB
/
api_inference_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package kakaoapi
import (
"log"
"os"
"testing"
)
func isVerbose() bool {
verbose := os.Getenv("VERBOSE")
return verbose == "true"
}
func TestKoGPT(t *testing.T) {
_apiKey := os.Getenv("KAKAO_API_KEY")
_verbose := isVerbose()
client := NewClient(_apiKey)
client.Verbose = _verbose
if len(_apiKey) <= 0 {
t.Errorf("environment variable `KAKAO_API_KEY` is needed")
}
params := NewParamsTextGeneration("오늘 아침 하늘은 곧 비가 올 것 같아서", 120).
SetN(2)
if generated, err := client.GenerateTexts(params); err != nil {
t.Errorf("failed to generate texts: %s", err)
} else {
if len(generated.Generations) != 2 {
t.Errorf("count of generated texts is different from request: %d", len(generated.Generations))
}
if _verbose {
log.Printf("generated texts = %+v", generated)
}
}
}
func TestKarlo(t *testing.T) {
_apiKey := os.Getenv("KAKAO_API_KEY")
_verbose := isVerbose()
client := NewClient(_apiKey)
client.Verbose = _verbose
if len(_apiKey) <= 0 {
t.Errorf("environment variable `KAKAO_API_KEY` is needed")
}
// generation
paramsGeneration := NewParamsImageGeneration("A cat with white fur").
SetNegativePrompt("sleeping cat, dog, human, ugly face, cropped").
SetImageFormat(ImageFormatJPEG).
SetReturnType(ImageReturnURL).
SetNSFWChecker(true).
SetSamples(2)
if generated, err := client.GenerateImages(paramsGeneration); err != nil {
t.Errorf("failed to generate images: %s", err)
} else {
if len(generated.Images) != 2 {
t.Errorf("count of generated images is different from request: %d", len(generated.Images))
}
if _verbose {
log.Printf("generated images = %+v", generated)
}
}
imageBytes, err := os.ReadFile("./sample/image.jpg")
if err != nil {
t.Fatalf("failed to read sample image file: %s", err)
}
image := EncodeBase64(imageBytes)
// upscale
paramsUpscale := NewParamsImageUpscale([]string{image}).
SetImageFormat(ImageFormatPNG).
SetReturnType(ImageReturnURL)
if scaledUp, err := client.UpscaleImages(paramsUpscale); err != nil {
t.Errorf("failed to upscale image: %s", err)
} else {
if _verbose {
log.Printf("upscaled images = %+v", scaledUp)
}
}
// variation
paramsVariation := NewParamsImageVariation(image, "make it looking modern, futuristic, and avant-garde").
SetImageFormat(ImageFormatPNG).
SetReturnType(ImageReturnURL)
if varied, err := client.VaryImage(paramsVariation); err != nil {
t.Errorf("failed to vary image: %s", err)
} else {
if _verbose {
log.Printf("varied images = %+v", varied)
}
}
// check NSFW
if nsfw, err := client.CheckNSFW([]string{image}); err != nil {
t.Errorf("failed to check NSFW: %s", err)
} else {
if _verbose {
log.Printf("NSFW result = %+v", nsfw)
}
}
}