coai/adapter/midjourney/api.go

60 lines
1.3 KiB
Go

package midjourney
import (
"chat/utils"
"fmt"
)
func (c *ChatInstance) GetImagineEndpoint() string {
return fmt.Sprintf("%s/mj/submit/imagine", c.GetEndpoint())
}
func (c *ChatInstance) GetChangeEndpoint() string {
return fmt.Sprintf("%s/mj/submit/change", c.GetEndpoint())
}
func (c *ChatInstance) GetImagineRequest(prompt string) *ImagineRequest {
return &ImagineRequest{
NotifyHook: c.GetNotifyEndpoint(),
Prompt: prompt,
}
}
func (c *ChatInstance) GetChangeRequest(action string, task string, index *int) *ChangeRequest {
return &ChangeRequest{
NotifyHook: c.GetNotifyEndpoint(),
Action: action,
Index: index,
TaskId: task,
}
}
func (c *ChatInstance) CreateImagineRequest(prompt string) (*CommonResponse, error) {
res, err := utils.Post(
c.GetImagineEndpoint(),
c.GetMidjourneyHeaders(),
c.GetImagineRequest(prompt),
)
if err != nil {
return nil, err
}
return utils.MapToStruct[CommonResponse](res), nil
}
func (c *ChatInstance) CreateChangeRequest(action string, task string, index *int) (*CommonResponse, error) {
res, err := utils.Post(
c.GetChangeEndpoint(),
c.GetMidjourneyHeaders(),
c.GetChangeRequest(action, task, index),
)
if err != nil {
return nil, err
}
fmt.Println(res)
return utils.MapToStruct[CommonResponse](res), nil
}