{"id":29292750,"url":"https://github.com/bootcamptoprod/spring-ai-evaluator-optimizer-workflow","last_synced_at":"2025-08-23T18:14:39.777Z","repository":{"id":300559611,"uuid":"1005146122","full_name":"BootcampToProd/spring-ai-evaluator-optimizer-workflow","owner":"BootcampToProd","description":"A simple spring boot app demonstrating how to implement Evaluator Optimizer Workflow pattern using Spring AI","archived":false,"fork":false,"pushed_at":"2025-06-22T11:04:16.000Z","size":8,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T12:19:24.944Z","etag":null,"topics":["agentic-pattern","agentic-patterns","ai-agentic-patterns","ai-workflows","ai-workflows-pattern","evaluator-optimizer-pattern","evaluator-optimizer-workflow","evaluator-optimizer-workflow-pattern","spring-ai","spring-ai-evaluator-optimizer-pattern","spring-ai-evaluator-optimizer-workflow","spring-ai-evaluator-optimizer-workflow-pattern"],"latest_commit_sha":null,"homepage":"https://bootcamptoprod.com/spring-ai-evaluator-optimizer-pattern-guide/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BootcampToProd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-19T18:40:37.000Z","updated_at":"2025-06-22T11:04:19.000Z","dependencies_parsed_at":"2025-06-22T12:19:26.559Z","dependency_job_id":"8189e7c6-384f-4a15-a031-607719c470e7","html_url":"https://github.com/BootcampToProd/spring-ai-evaluator-optimizer-workflow","commit_stats":null,"previous_names":["bootcamptoprod/spring-ai-evaluator-optimizer-workflow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BootcampToProd/spring-ai-evaluator-optimizer-workflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootcampToProd%2Fspring-ai-evaluator-optimizer-workflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootcampToProd%2Fspring-ai-evaluator-optimizer-workflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootcampToProd%2Fspring-ai-evaluator-optimizer-workflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootcampToProd%2Fspring-ai-evaluator-optimizer-workflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BootcampToProd","download_url":"https://codeload.github.com/BootcampToProd/spring-ai-evaluator-optimizer-workflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BootcampToProd%2Fspring-ai-evaluator-optimizer-workflow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263882293,"owners_count":23524463,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-pattern","agentic-patterns","ai-agentic-patterns","ai-workflows","ai-workflows-pattern","evaluator-optimizer-pattern","evaluator-optimizer-workflow","evaluator-optimizer-workflow-pattern","spring-ai","spring-ai-evaluator-optimizer-pattern","spring-ai-evaluator-optimizer-workflow","spring-ai-evaluator-optimizer-workflow-pattern"],"created_at":"2025-07-06T10:08:49.885Z","updated_at":"2025-07-06T10:08:51.702Z","avatar_url":"https://github.com/BootcampToProd.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring AI - Evaluator Optimizer Workflow Pattern\n\nThis repository demonstrates the **Spring AI Evaluator Optimizer Workflow Pattern**, a powerful self-improving AI system that creates high-quality output through iterative refinement. The pattern uses two specialized LLM roles - a \"Generator\" (Writer) to create initial content and an \"Evaluator\" (Editor) to critique and guide improvements until the output meets predefined quality standards.\n\n📖 **Dive Deeper**: For a complete walkthrough, detailed explanations of the Evaluator Optimizer Workflow pattern, and step-by-step instructions for building the example application, read our comprehensive blog post.\u003cbr\u003e\n👉 [Spring AI Evaluator Optimizer Pattern: Building Smarter AI That Gets Better With Each Try](https://bootcamptoprod.com/spring-ai-evaluator-optimizer-pattern-guide/)\n\n🎥 **Visual Learning**: Prefer video tutorials? Watch our step-by-step implementation guide on YouTube.\u003cbr\u003e\n👉 [Spring AI Evaluator Optimizer Pattern: Building Smarter AI That Gets Better With Each Try](https://youtu.be/ztwDbOQXlTA)\n\n---\n\n## 📦 Environment Variables\n\nMake sure to provide these Java environment variables when running the application:\n\n- `GEMINI_API_KEY`: Your Google Gemini API key.\n\n---\n\n## About This Project\n\nThis project implements a **Smart Email Generator** as a real-world example of the Spring AI Evaluator Optimizer Workflow. It showcases how to:\n\n*   Set up a Spring Boot application with Spring AI and Google Gemini integration.\n*   Implement the `EmailEvaluatorOptimizer` workflow with recursive improvement loops.\n*   Create specialized AI personas through carefully crafted system prompts for Writer and Editor roles.\n*   Build a complete REST API for professional email generation with quality assurance.\n*   Handle iterative refinement with safety limits and comprehensive error handling.\n\nThe application generates professional emails (job follow-ups, raise requests, etc.) that are automatically refined through multiple rounds of AI-powered editing until they meet strict quality criteria, including a 80-word limit for conciseness.\n\n---\n\n**Learn More**: This is part of our Spring AI Agentic Workflow series. Check out our other workflow patterns:\n- [Chain Workflow Pattern](https://bootcamptoprod.com/spring-ai-chain-workflow-guide/)\n- [Parallelization Workflow Pattern](https://bootcamptoprod.com/spring-ai-parallelization-workflow-guide/)\n- [Routing Workflow Pattern](https://bootcamptoprod.com/spring-ai-routing-workflow-guide/)\n- [Orchestrator-Workers Workflow Pattern](https://bootcamptoprod.com/spring-ai-orchestrator-workers-workflow-guide/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootcamptoprod%2Fspring-ai-evaluator-optimizer-workflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbootcamptoprod%2Fspring-ai-evaluator-optimizer-workflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootcamptoprod%2Fspring-ai-evaluator-optimizer-workflow/lists"}