feat/inter-agent-communication #10
@ -178,6 +178,7 @@ func NewEventAgent(log *log.Logger, eventsModel models.EventModel, locationAgent
|
|||||||
|
|
||||||
agentClient.ToolHandler.AddTool("getEventLocationId", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) {
|
agentClient.ToolHandler.AddTool("getEventLocationId", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) {
|
||||||
query := "Can you get me the ID of the location present in this image?"
|
query := "Can you get me the ID of the location present in this image?"
|
||||||
|
locationAgent.Log = log.With("Locations 📍", true)
|
||||||
locationAgent.RunAgent(locationPrompt, locationTools, "finish", &query, info.UserId, info.ImageId, info.ImageName, *info.Image)
|
locationAgent.RunAgent(locationPrompt, locationTools, "finish", &query, info.UserId, info.ImageId, info.ImageName, *info.Image)
|
||||||
|
|
||||||
return locationAgent.Reply, nil
|
return locationAgent.Reply, nil
|
||||||
|
@ -144,7 +144,7 @@ func NewOrchestratorAgent(log *log.Logger, noteAgent NoteAgent, contactAgent cli
|
|||||||
})
|
})
|
||||||
|
|
||||||
agent.ToolHandler.AddTool("eventAgent", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) {
|
agent.ToolHandler.AddTool("eventAgent", func(info client.ToolHandlerInfo, args string, call client.ToolCall) (any, error) {
|
||||||
go agent.RunAgent(eventPrompt, eventTools, "finish", nil, info.UserId, info.ImageId, imageName, imageData)
|
go eventAgent.RunAgent(eventPrompt, eventTools, "finish", nil, info.UserId, info.ImageId, imageName, imageData)
|
||||||
|
|
||||||
return Status{
|
return Status{
|
||||||
Ok: true,
|
Ok: true,
|
||||||
|
@ -3,7 +3,6 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
"screenmark/screenmark/agents"
|
"screenmark/screenmark/agents"
|
||||||
"screenmark/screenmark/models"
|
"screenmark/screenmark/models"
|
||||||
@ -37,6 +36,7 @@ func ListenNewImageEvents(db *sql.DB, eventManager *EventManager) {
|
|||||||
contactModel := models.NewContactModel(db)
|
contactModel := models.NewContactModel(db)
|
||||||
|
|
||||||
databaseEventLog := createLogger("Database Events 🤖")
|
databaseEventLog := createLogger("Database Events 🤖")
|
||||||
|
databaseEventLog.SetLevel(log.DebugLevel)
|
||||||
|
|
||||||
err := listener.Listen("new_image")
|
err := listener.Listen("new_image")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -76,12 +76,12 @@ func ListenNewImageEvents(db *sql.DB, eventManager *EventManager) {
|
|||||||
|
|
||||||
image, err := imageModel.GetToProcessWithData(ctx, imageId)
|
image, err := imageModel.GetToProcessWithData(ctx, imageId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Failed to GetToProcessWithData", "error", err)
|
databaseEventLog.Error("Failed to GetToProcessWithData", "error", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := imageModel.StartProcessing(ctx, image.ID); err != nil {
|
if err := imageModel.StartProcessing(ctx, image.ID); err != nil {
|
||||||
log.Error("Failed to FinishProcessing", "error", err)
|
databaseEventLog.Error("Failed to FinishProcessing", "error", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,13 +92,13 @@ func ListenNewImageEvents(db *sql.DB, eventManager *EventManager) {
|
|||||||
|
|
||||||
err = orchestrator.RunAgent(agents.OrchestratorPrompt, agents.OrchestratorTools, "noAction", nil, image.UserID, image.ImageID, image.Image.ImageName, image.Image.Image)
|
err = orchestrator.RunAgent(agents.OrchestratorPrompt, agents.OrchestratorTools, "noAction", nil, image.UserID, image.ImageID, image.Image.ImageName, image.Image.Image)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Orchestrator failed", "error", "err")
|
databaseEventLog.Error("Orchestrator failed", "error", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = imageModel.FinishProcessing(ctx, image.ID)
|
_, err = imageModel.FinishProcessing(ctx, image.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Failed to finish processing", "ImageID", imageId)
|
databaseEventLog.Error("Failed to finish processing", "ImageID", imageId)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,9 +137,6 @@ func ListenProcessingImageStatus(db *sql.DB, eventManager *EventManager) {
|
|||||||
stringUuid := data.Extra[0:36]
|
stringUuid := data.Extra[0:36]
|
||||||
status := data.Extra[36:]
|
status := data.Extra[36:]
|
||||||
|
|
||||||
fmt.Printf("UUID: %s\n", stringUuid)
|
|
||||||
fmt.Printf("Receiving :s\n", data.Extra)
|
|
||||||
|
|
||||||
imageListener, exists := eventManager.listeners[stringUuid]
|
imageListener, exists := eventManager.listeners[stringUuid]
|
||||||
if !exists {
|
if !exists {
|
||||||
continue
|
continue
|
||||||
|
Reference in New Issue
Block a user