Commit Graph

  • 68da642f9a Add chat-ui-htmx module: streaming chat page on Spring AI 2.0.2 with htmx and its SSE extension (vendored), MessageChatMemoryAdvisor keyed by the HTTP session, a Stop button, and the traps measured: EventSource strips one leading space per data line, model text must be HTML-escaped, a cancelled stream left the upstream connection open in 7 of 8 runs until an OkHttp interceptor calls Call.cancel (8 of 8 closed after), and the SDK push source ignores back-pressure (limitRate changes only the demand; a bounded buffer works). The model is a stub OpenAI-compatible SSE server written for the module; no real provider was run. main asmhatreandClaude Sonnet 5.5 2026-10-31 04:02:56 +00:00
  • c97bcf9adf Add docker-model-runner module: Spring AI OpenAI starter against Docker Model Runner and Ollama with a benchmark runner (time to first token, decode tokens/second, container memory, tool-call success); real docker/model-runner v1.2.9 CPU image and Ollama 0.40.13 on a shared 2-vCPU sandbox, no GPU asmhatreandClaude Sonnet 5.5 2026-10-29 06:23:50 +00:00
  • 6d792f00e0 Add batch-llm module: 100,000 synthetic tickets classified by a ChatClient in a Spring Batch 6 chunk step with Resilience4j rate limiting and retry, skip-and-record for malformed JSON, restart after kill -9 in a second JVM, and a per-chunk cost ledger. The model is a deterministic simulated ChatModel; prices are configurable placeholders. No provider called. asmhatreandClaude Sonnet 5.5 2026-10-29 06:10:22 +00:00
  • aa8b1604ed Add image-gen module: Spring AI ImageModel options on the wire, a moderation gate, and safe storage of generated images in MinIO (sniffed content type, byte and pixel caps, server-chosen keys, capped URL fetcher); per-provider cost table dated 2026-10-28. ImageModel and ModerationModel are hand-written fakes; MinIO is real via Testcontainers; no image provider called. asmhatreandClaude Sonnet 5.5 2026-10-28 18:36:40 +00:00
  • 108fc44542 Add graphrag-neo4j module: structured-output entity and relation extraction into a typed Neo4j graph with a vector index, multi-hop retrieval by span linking and variable-length Cypher paths, compared with plain vector RAG over the same 35 chunks and 9 questions (complete evidence 7/9 vs 5/9 at k=8); Testcontainers on neo4j:2026.10.1 and 5.26. The extraction step is a rule-based stand-in, not a language model. asmhatreandClaude Sonnet 5.5 2026-10-26 02:03:28 +00:00
  • 279be7eb9f Add audio module: meeting minutes with Spring AI speech-to-text, structured output and text-to-speech asmhatreandClaude Sonnet 5.5 2026-10-26 02:00:28 +00:00
  • ff58ff0189 rerank: use an example where the cross-encoder fixes the order in 02, correct the download size Claude 2026-10-24 18:03:45 +00:00
  • a429aa40f6 Add rerank module: bi-encoder retrieval plus an ONNX Runtime cross-encoder reranker behind a Spring AI DocumentPostProcessor; hit@k and MRR by pool size and question kind, latency by candidates, batch size, threads and int8, and five reproduced traps. Local MiniLM models, no database or API key. Claude 2026-10-24 18:00:05 +00:00
  • 2ccf1d8d19 Add hybrid-search module: vector, tsvector and BM25 fused with Reciprocal Rank Fusion in Java and SQL over one PostgreSQL table; quality by query type, held-out k check, plans and latency at 50k rows Claude 2026-10-22 18:04:49 +00:00
  • d7e68a14af Add rag-ingestion module: PDF, Word and HTML readers and chunking strategies compared by retrieval hit rate; metadata in the embedding, content-hash idempotent ingestion, re-embedding cost of an edit Claude 2026-10-22 18:04:49 +00:00
  • c13195295d Add agent-skills module: SKILL.md folders loaded by the Skill tool asmhatreandClaude Sonnet 5.5 2026-10-13 02:48:07 +00:00
  • e79b75a105 Add langchain4j-interop: Spring AI 2.0 and LangChain4j 1.22 side by side Claude 2026-10-11 10:05:09 +00:00
  • d51ef56468 Add semantic-cache module: CallAdvisor over a Redis Stack vector index with a real in-process embedding model; threshold sweep (hit rate against wrong answers), 600-request replay with an illustrative cost model, tenant filter, expiry, look-alike and embedding-model-change traps; optional real local model asmhatreandClaude Sonnet 5.5 2026-10-11 09:46:19 +00:00
  • cdee85d3f4 Add llm-gateway module: routing, failover below the tool-calling advisor, per-provider circuit breakers, dollar caps and token limits, tenant-keyed cache; real OpenAI and Anthropic models against a local fake Claude 2026-10-09 10:24:57 +00:00
  • 80cd21f89b Add providers module: one app on the real OpenAI, Anthropic and Gemini Spring AI models against a local server in three wire formats; options, prompt caching, cost from price sheets, failover with retry layers measured Claude 2026-10-09 07:58:02 +00:00
  • 85a3359186 Add text-to-sql module: schema prompt through a restricted role, JSqlParser guard, read-only role with column grants and timeout, row cap, execution-based evaluation on a real PostgreSQL Claude 2026-10-09 07:21:17 +00:00
  • d67ac0630b Add multimodal module: receipt images to Java records on the real OpenAI, Anthropic and Ollama models against an OCR-backed local server, validation, repair retry, accuracy by photo condition Claude 2026-10-09 07:07:45 +00:00
  • b0bba995e6 Add guardrails module: prompt injection defences (document filter, tool policy, output validation) measured against an always-obeying stub model Claude 2026-10-09 06:50:23 +00:00
  • cc2a1b8bcb Add observability module: Spring AI built-in meters and spans, cost per endpoint from token usage, Prometheus and Grafana dashboard Claude 2026-10-09 06:39:21 +00:00
  • 65f580c5bc Add evaluation module: RelevancyEvaluator and FactCheckingEvaluator, golden dataset with a pass-rate gate, deterministic CI judge and simulated judge noise Claude 2026-10-09 06:15:41 +00:00
  • 80db4eb8ac Add vector-stores module: one dataset through VectorStore on pgvector, Redis, Qdrant and Elasticsearch asmhatreandClaude Sonnet 5.5 2026-10-09 05:50:01 +00:00
  • 527f4ba7ff Add advisors module: custom logging, PII redaction and token-budget advisors Claude 2026-09-24 16:19:12 +00:00
  • 823f6fac5b Add chat-memory module: MessageWindowChatMemory, JDBC and Redis repositories, per-user conversation IDs Claude 2026-09-24 15:40:22 +00:00
  • c1e36c6c09 Fix ollama-local: correct a wrong claim about ChatClient.options() and keepAlive Claude 2026-09-23 17:54:43 +00:00
  • faacda7079 Add ollama-local module: chat and embeddings against a real local Ollama server Claude 2026-09-23 17:48:00 +00:00
  • 7fff4ddb99 Add structured-output module: entity() mapping to records/lists/maps, StructuredOutputValidationAdvisor retries Claude 2026-09-23 17:18:32 +00:00
  • fff9f52116 Add tool-calling module: @Tool, ToolCallingAdvisor, returnDirect, ToolContext, and Tool Search Advisor Claude 2026-09-23 17:03:41 +00:00
  • d73620e305 Add mcp-secure module: OAuth2 resource server, per-tool scopes, and MDC audit logging for an MCP server Claude 2026-09-23 15:09:20 +00:00
  • 60849f4319 Add mcp-client module: ChatClient calling tools from real external MCP servers over stdio Claude 2026-09-23 14:44:10 +00:00
  • 9919da58a7 Add mcp-server module: order-lookup service exposed via @McpTool/@McpResource/@McpPrompt over Streamable HTTP Claude 2026-09-23 11:56:37 +00:00
  • c1fc41e0de Add getting-started module: ChatClient fluent API, system/user prompts, streaming, and provider switching via spring.ai.model.chat asmhatre 2026-09-23 03:58:29 +00:00
  • 1d4625a1c2 Add rag module: Spring AI 2.0 RAG with pgvector, chunking, reranking and a faithfulness check Claude 2026-09-21 18:52:48 +00:00