do not re-generate avatar if already existing

Signed-off-by: mudler <mudler@localai.io>
This commit is contained in:
mudler
2025-03-24 19:46:56 +01:00
parent c8abc5f28f
commit b199c10ab7

View File

@@ -180,6 +180,13 @@ func createAgentAvatar(APIURL, APIKey, model, imageModel, avatarDir string, agen
return fmt.Errorf("default model not set") return fmt.Errorf("default model not set")
} }
imagePath := filepath.Join(avatarDir, "avatars", fmt.Sprintf("%s.png", agent.Name))
if _, err := os.Stat(imagePath); err == nil {
// Image already exists
xlog.Debug("Avatar already exists", "path", imagePath)
return nil
}
var results struct { var results struct {
ImagePrompt string `json:"image_prompt"` ImagePrompt string `json:"image_prompt"`
} }
@@ -232,7 +239,6 @@ func createAgentAvatar(APIURL, APIKey, model, imageModel, avatarDir string, agen
os.MkdirAll(filepath.Join(avatarDir, "avatars"), 0755) os.MkdirAll(filepath.Join(avatarDir, "avatars"), 0755)
// Save the image to the agent directory // Save the image to the agent directory
imagePath := filepath.Join(avatarDir, "avatars", fmt.Sprintf("%s.png", agent.Name))
imageData, err := base64.StdEncoding.DecodeString(imageJson) imageData, err := base64.StdEncoding.DecodeString(imageJson)
if err != nil { if err != nil {
return err return err
@@ -244,7 +250,7 @@ func createAgentAvatar(APIURL, APIKey, model, imageModel, avatarDir string, agen
func (a *AgentPool) List() []string { func (a *AgentPool) List() []string {
a.Lock() a.Lock()
defer a.Unlock() defer a.Unlock()
var agents []string var agents []string
for agent := range a.pool { for agent := range a.pool {
agents = append(agents, agent) agents = append(agents, agent)