{"adoption": {"forks": 2855, "observed_at": "2026-08-28T04:10:30.819325+00:00", "stars": 9358}, "canonical_url": "https://ross.abutalabs.com/products/spring-ai", "card": {"archived": false, "artifact_type": "framework", "description": "An Application Framework for AI Engineering", "domain": ["artificial-intelligence", "large-language-models", "machine-learning", "backend", "developer-tools"], "enriched": true, "function": ["agent-framework", "rag", "llm-inference", "llm-training", "machine-learning", "etl", "sdk", "middleware"], "health_score": 99, "homepage": "https://spring.io/projects/spring-ai ", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["spring-projects/spring-ai"], "name": "spring-projects/spring-ai", "platform": ["jvm", "cross-platform"], "pushed_at": "2026-08-21T05:28:11+00:00", "repo": "spring-projects/spring-ai", "stars": 9358, "tags": ["spring", "java", "chat-completion", "embeddings", "vector-stores", "function-calling", "structured-outputs", "observability", "generative-ai", "retrieval-augmented-generation", "ai-agents", "spring-boot"], "topics": ["artificial-intelligence", "java", "spring-ai"], "urls": [], "use_cases": ["build a chatbot in Java with Spring Boot", "switch between OpenAI, Anthropic, and Ollama with minimal code changes", "map LLM responses to Java POJOs with structured outputs", "implement RAG with vector databases like PGVector, Milvus, or Pinecone", "add function calling so a model can invoke Java methods", "build an ETL pipeline for document ingestion and embedding", "add observability to AI operations in enterprise apps"], "what_it_is": "Spring AI is an application framework for AI engineering that provides Spring-friendly, portable abstractions for integrating AI models into Java applications. It offers unified APIs for chat completion, embeddings, text-to-image, vector stores, function calling, and structured output mapping across all major AI providers.", "when_to_avoid": ["you are a Python developer who prefers LangChain or LlamaIndex", "you need a lightweight, framework-free client for a single AI provider", "your project does not use the JVM or Spring ecosystem", "you need cutting-edge agent features that only exist in Python AI tooling first"], "when_to_choose": ["you are building AI features in a Java/Spring Boot application", "you want portable abstractions to avoid vendor lock-in across AI model providers", "you need typed, POJO-based APIs instead of raw HTTP calls to AI services", "you want Spring ecosystem integration for dependency injection, configuration, and observability"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/spring-ai", "repo": "spring-projects/spring-ai", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:30.819325+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:22:26.141732+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6be9e9424708746fc66dc08c4b587472073e5c47bd23e1c377c7dd89981bdd3d", "fetched_at": "2026-08-28T04:10:30.819325+00:00", "kind": "readme", "missing": false, "url": "https://github.com/spring-projects/spring-ai"}, {"content_hash": "7ab62caa152dd9bd52ac7c23d1e17a20633c6ea68ca260ca75ece46224335815", "fetched_at": "2026-08-29T08:22:25.085515+00:00", "kind": "homepage", "missing": false, "url": "https://spring.io/projects/spring-ai "}, {"content_hash": "fc64dd950363a4f7d15398407bbba748c61041f08a9468a0b9922bb957997ce1", "fetched_at": "2026-08-29T08:22:25.096887+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/quickstart"}, {"content_hash": "1e2a101b77d3dc53488e4859171d8820d9cb2d07dfc1cac2f60f7007c84e227d", "fetched_at": "2026-08-29T08:22:25.100550+00:00", "kind": "site_page", "missing": false, "url": "https://spring.io/projects/spring-restdocs"}, {"content_hash": "8ca24d2bcb6d3faf48d76f6dfeabccfaf175b35452bba3d90a08448c20518a71", "fetched_at": "2026-08-29T08:22:25.102303+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/api/chatmodel.html"}, {"content_hash": "0d7ff2946095c6d33d659decb0ebd03d12d76fbf0c04c262eed7fe94500166e9", "fetched_at": "2026-08-29T08:22:25.104895+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/index.html"}, {"content_hash": "05d07c256097e0ea793d4413c4949588253d27cf80d8ba931b99fb6ea1a58e3c", "fetched_at": "2026-08-29T08:22:25.107800+00:00", "kind": "site_page", "missing": false, "url": "https://docs.spring.io/spring-ai/reference/getting-started.html"}, {"content_hash": "85ac7d6d51142e18decf96fb4e963203e50ac822f8bcaddb6371f7c81f2e55b6", "fetched_at": "2026-08-29T08:22:25.094930+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io"}, {"content_hash": "3251cc8760b62399f4b0f57b7b1f16c5cddaee78a88466eb8096cbf4a50122ef", "fetched_at": "2026-08-29T08:22:25.098751+00:00", "kind": "site_page", "missing": false, "url": "https://enterprise.spring.io/lts-releases"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 83, "rhythm": 98}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1163, "days_push": 12, "days_rel": 12, "gap_med": 11, "n_releases_24m": 20}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}