# keshikasharma2007-pixel/spring-ai-workshop architecture

> Architecture diagram of the GitHub repository keshikasharma2007-pixel/spring-ai-workshop, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/keshikasharma2007-pixel/spring-ai-workshop
- Repository: https://github.com/keshikasharma2007-pixel/spring-ai-workshop

## Overview

This is a Spring AI workshop application organized around examples for chat, retrieval-augmented generation, tools, prompts, model comparison, multimodal input, evaluation, memory, and structured output. The tree identifies these capabilities, but no README or source excerpts were provided, so the principal request-to-result flow and component relationships cannot be verified. The graph preserves the identifiable runtime modules and data; edges are omitted rather than inferred from names.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Application Core"]
  node_application["Spring Application"]
  node_runtime_config["Runtime Configuration"]
end

subgraph group_conversation["Conversation and Prompts"]
  node_chat_controller["Chat Controller"]
  node_memory_controller["Memory Controller"]
  node_bank_prompt["Bank Prompt"]
  node_article_prompt["Article Prompt"]
end

subgraph group_rag["Retrieval and Models"]
  node_rag_config["RAG Configuration"]
  node_models_controller["Models Controller"]
  node_model["Model Record<br/>[Model.java]"]
  node_models["Model Collection<br/>[Models.java]"]
  node_model_data["Model Data<br/>[models.json]"]
  node_vector_data[("Vector Store Data<br/>[vectorstore.json]")]
end

subgraph group_tools["Tool Integrations"]
  node_task_controller["Task Controller"]
  node_task_tools["Task Tools"]
  node_datetime_controller["Date Time Controller"]
  node_datetime_tools["Date Time Tools<br/>[DateTimeTools.java]"]
  node_weather_controller["Weather Controller"]
  node_weather_tools["Weather Tools<br/>[WeatherTools.java]"]
end

subgraph group_capabilities["AI Capabilities"]
  node_model_comparison["Model Comparison"]
  node_image_detection["Image Detection"]
  node_review_service["Review Service<br/>[ReviewService.java]"]
  node_sentiment["Sentiment<br/>[Sentiment.java]"]
  node_activity["Activity Output<br/>[Activity.java]"]
  node_itinerary["Itinerary Output<br/>[Itinerary.java]"]
  node_vacation_plan["Vacation Plan Output<br/>[VacationPlan.java]"]
end

click node_application "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/SpringAiWorkshopApplication.java"
click node_runtime_config "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/resources/application.properties"
click node_chat_controller "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/chat/ChatController.java"
click node_memory_controller "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/memory/MemoryController.java"
click node_bank_prompt "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/prompt/AcmeBankController.java"
click node_article_prompt "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/prompt/ArticleController.java"
click node_rag_config "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/rag/RagConfiguration.java"
click node_models_controller "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/rag/ModelsController.java"
click node_model "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/rag/Model.java"
click node_models "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/rag/Models.java"
click node_model_data "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/resources/data/models.json"
click node_vector_data "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/resources/data/vectorstore.json"
click node_task_controller "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/action/TaskManagementController.java"
click node_task_tools "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/action/TaskManagementTools.java"
click node_datetime_controller "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/datetime/DateTimeController.java"
click node_datetime_tools "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/datetime/DateTimeTools.java"
click node_weather_controller "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/weather/WeatherController.java"
click node_weather_tools "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/weather/WeatherTools.java"
click node_model_comparison "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/byod/ModelComparison.java"
click node_image_detection "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/multimodal/ImageDetection.java"
click node_review_service "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/evals/ReviewService.java"
click node_sentiment "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/evals/Sentiment.java"
click node_activity "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/output/Activity.java"
click node_itinerary "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/output/Itinerary.java"
click node_vacation_plan "https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/output/VacationPlan.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_application,node_runtime_config toneBlue
class node_chat_controller,node_memory_controller,node_bank_prompt,node_article_prompt toneAmber
class node_rag_config,node_models_controller,node_model,node_models,node_model_data,node_vector_data toneMint
class node_task_controller,node_task_tools,node_datetime_controller,node_datetime_tools,node_weather_controller,node_weather_tools toneRose
class node_model_comparison,node_image_detection,node_review_service,node_sentiment,node_activity,node_itinerary,node_vacation_plan toneIndigo
```

## Components

### Application Core

- [Spring Application](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/SpringAiWorkshopApplication.java): `src/main/java/com/example/spring_ai_workshop/SpringAiWorkshopApplication.java`
- [Runtime Configuration](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/resources/application.properties): `src/main/resources/application.properties`

### Conversation and Prompts

- [Chat Controller](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/chat/ChatController.java): `src/main/java/com/example/spring_ai_workshop/chat/ChatController.java`
- [Memory Controller](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/memory/MemoryController.java): `src/main/java/com/example/spring_ai_workshop/memory/MemoryController.java`
- [Bank Prompt](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/prompt/AcmeBankController.java): `src/main/java/com/example/spring_ai_workshop/prompt/AcmeBankController.java`
- [Article Prompt](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/prompt/ArticleController.java): `src/main/java/com/example/spring_ai_workshop/prompt/ArticleController.java`

### Retrieval and Models

- [RAG Configuration](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/rag/RagConfiguration.java): `src/main/java/com/example/spring_ai_workshop/rag/RagConfiguration.java`
- [Models Controller](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/rag/ModelsController.java): `src/main/java/com/example/spring_ai_workshop/rag/ModelsController.java`
- [Model Record](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/rag/Model.java): `src/main/java/com/example/spring_ai_workshop/rag/Model.java`
- [Model Collection](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/rag/Models.java): `src/main/java/com/example/spring_ai_workshop/rag/Models.java`
- [Model Data](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/resources/data/models.json): `src/main/resources/data/models.json`
- [Vector Store Data](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/resources/data/vectorstore.json): `src/main/resources/data/vectorstore.json`

### Tool Integrations

- [Task Controller](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/action/TaskManagementController.java): `src/main/java/com/example/spring_ai_workshop/tools/action/TaskManagementController.java`
- [Task Tools](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/action/TaskManagementTools.java): `src/main/java/com/example/spring_ai_workshop/tools/action/TaskManagementTools.java`
- [Date Time Controller](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/datetime/DateTimeController.java): `src/main/java/com/example/spring_ai_workshop/tools/datetime/DateTimeController.java`
- [Date Time Tools](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/datetime/DateTimeTools.java): `src/main/java/com/example/spring_ai_workshop/tools/datetime/DateTimeTools.java`
- [Weather Controller](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/weather/WeatherController.java): `src/main/java/com/example/spring_ai_workshop/tools/weather/WeatherController.java`
- [Weather Tools](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/tools/weather/WeatherTools.java): `src/main/java/com/example/spring_ai_workshop/tools/weather/WeatherTools.java`

### AI Capabilities

- [Model Comparison](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/byod/ModelComparison.java): `src/main/java/com/example/spring_ai_workshop/byod/ModelComparison.java`
- [Image Detection](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/multimodal/ImageDetection.java): `src/main/java/com/example/spring_ai_workshop/multimodal/ImageDetection.java`
- [Review Service](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/evals/ReviewService.java): `src/main/java/com/example/spring_ai_workshop/evals/ReviewService.java`
- [Sentiment](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/evals/Sentiment.java): `src/main/java/com/example/spring_ai_workshop/evals/Sentiment.java`
- [Activity Output](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/output/Activity.java): `src/main/java/com/example/spring_ai_workshop/output/Activity.java`
- [Itinerary Output](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/output/Itinerary.java): `src/main/java/com/example/spring_ai_workshop/output/Itinerary.java`
- [Vacation Plan Output](https://github.com/keshikasharma2007-pixel/spring-ai-workshop/blob/main/src/main/java/com/example/spring_ai_workshop/output/VacationPlan.java): `src/main/java/com/example/spring_ai_workshop/output/VacationPlan.java`
