28 lines
954 B
Go
28 lines
954 B
Go
package workflowbridge
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"data-terminal-cloud/internal/extraction"
|
||
|
|
"data-terminal-cloud/internal/memoir"
|
||
|
|
"time"
|
||
|
|
)
|
||
|
|
|
||
|
|
func NewArkService(secret, base, key string) (*Service, error) {
|
||
|
|
extractor, err := extraction.NewArkJSONGenerator(base, key, DefaultTextModel, 90*time.Second, 8192)
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
editor, err := extraction.NewArkJSONGenerator(base, key, DefaultBookModel, 480*time.Second, 65536)
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
s := New(secret, extractor, editor, memoir.NewIllustrator(base, key, DefaultImageModel))
|
||
|
|
s.EditorForModel = func(step, model string) (Editor, error) {
|
||
|
|
if step == "write-book" {
|
||
|
|
return extraction.NewArkJSONGenerator(base, key, model, 480*time.Second, 65536)
|
||
|
|
}
|
||
|
|
return extraction.NewArkJSONGenerator(base, key, model, 90*time.Second, 8192)
|
||
|
|
}
|
||
|
|
s.ImageForModel = func(model string) (ImageGenerator, error) { return memoir.NewIllustrator(base, key, model), nil }
|
||
|
|
return s, nil
|
||
|
|
}
|