Fix genimage action

This commit is contained in:
mudler
2025-03-01 16:02:01 +01:00
parent a57f990576
commit 3790ad3666
5 changed files with 92 additions and 6 deletions

View File

@@ -0,0 +1,13 @@
package actions_test
import (
"testing"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
func TestActions(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "Agent actions test suite")
}

View File

@@ -31,13 +31,16 @@ func (a *GenImageAction) Run(ctx context.Context, params action.ActionParams) (s
}{}
err := params.Unmarshal(&result)
if err != nil {
fmt.Printf("error: %v", err)
return "", err
}
if result.Prompt == "" {
return "", fmt.Errorf("prompt is required")
}
req := openai.ImageRequest{
Prompt: result.Prompt,
Model: a.imageModel,
}
switch result.Size {

View File

@@ -0,0 +1,70 @@
package actions_test
import (
"context"
"os"
. "github.com/mudler/LocalAgent/core/action"
. "github.com/mudler/LocalAgent/services/actions"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
)
var _ = Describe("GenImageAction", func() {
var (
ctx context.Context
action *GenImageAction
params ActionParams
config map[string]string
)
BeforeEach(func() {
ctx = context.Background()
apiKey := os.Getenv("OPENAI_API_KEY")
apiURL := os.Getenv("OPENAI_API_URL")
testModel := os.Getenv("OPENAI_MODEL")
if apiURL == "" {
Skip("OPENAI_API_URL must be set")
}
config = map[string]string{
"apiKey": apiKey,
"apiURL": apiURL,
"model": testModel,
}
action = NewGenImage(config)
})
Describe("Run", func() {
It("should generate an image with valid prompt and size", func() {
params = ActionParams{
"prompt": "test prompt",
"size": "256x256",
}
url, err := action.Run(ctx, params)
Expect(err).ToNot(HaveOccurred())
Expect(url).ToNot(BeEmpty())
})
It("should return an error if the prompt is not provided", func() {
params = ActionParams{
"size": "256x256",
}
_, err := action.Run(ctx, params)
Expect(err).To(HaveOccurred())
})
})
Describe("Definition", func() {
It("should return the correct action definition", func() {
definition := action.Definition()
Expect(definition.Name.String()).To(Equal("generate_image"))
Expect(definition.Description).To(Equal("Generate image with."))
Expect(definition.Properties).To(HaveKey("prompt"))
Expect(definition.Properties).To(HaveKey("size"))
Expect(definition.Required).To(ContainElement("prompt"))
})
})
})

View File

@@ -3,11 +3,11 @@ package actions
import (
"context"
"fmt"
"log/slog"
"strings"
"github.com/google/go-github/v61/github"
"github.com/mudler/LocalAgent/core/action"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/sashabaranov/go-openai/jsonschema"
)
@@ -53,7 +53,7 @@ func (g *GithubIssuesLabeler) Run(ctx context.Context, params action.ActionParam
labels, _, err := g.client.Issues.AddLabelsToIssue(g.context, result.Owner, result.Repository, result.IssueNumber, []string{result.Label})
//labelsNames := []string{}
for _, l := range labels {
slog.Info("Label added:", l.Name)
xlog.Info("Label added", "label", l.Name)
//labelsNames = append(labelsNames, l.GetName())
}

View File

@@ -3,10 +3,10 @@ package actions
import (
"context"
"fmt"
"log/slog"
"github.com/google/go-github/v61/github"
"github.com/mudler/LocalAgent/core/action"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/sashabaranov/go-openai/jsonschema"
)
@@ -51,7 +51,7 @@ func (g *GithubIssueSearch) Run(ctx context.Context, params action.ActionParams)
return resultString, err
}
for _, i := range issues.Issues {
slog.Info("Issue found:", i.GetTitle())
xlog.Info("Issue found", "title", i.GetTitle())
resultString += fmt.Sprintf("Issue found: %s\n", i.GetTitle())
resultString += fmt.Sprintf("URL: %s\n", i.GetHTMLURL())
// resultString += fmt.Sprintf("Body: %s\n", i.GetBody())