{"id":28580358,"url":"https://github.com/axafrance/spring-ai-workshop","last_synced_at":"2026-03-10T16:32:56.653Z","repository":{"id":267975042,"uuid":"863368883","full_name":"AxaFrance/spring-ai-workshop","owner":"AxaFrance","description":"Exploring interactions with LLMs : Practical insights with Spring AI","archived":false,"fork":false,"pushed_at":"2025-06-18T14:25:58.000Z","size":466,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-01-19T11:44:36.406Z","etag":null,"topics":["ai","artificial-intelligence","axa","java","learn","raise-the-bar","spring","spring-ai","spring-ai-ollama","workshop"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AxaFrance.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-26T07:16:26.000Z","updated_at":"2025-09-30T07:34:05.000Z","dependencies_parsed_at":"2024-12-13T17:16:13.613Z","dependency_job_id":"6114575d-a9d7-4d76-bc45-aaa3067a76b0","html_url":"https://github.com/AxaFrance/spring-ai-workshop","commit_stats":null,"previous_names":["axafrance/spring-ai-workshop"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AxaFrance/spring-ai-workshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxaFrance%2Fspring-ai-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxaFrance%2Fspring-ai-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxaFrance%2Fspring-ai-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxaFrance%2Fspring-ai-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AxaFrance","download_url":"https://codeload.github.com/AxaFrance/spring-ai-workshop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AxaFrance%2Fspring-ai-workshop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30342182,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T15:55:29.454Z","status":"ssl_error","status_checked_at":"2026-03-10T15:54:58.440Z","response_time":106,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ai","artificial-intelligence","axa","java","learn","raise-the-bar","spring","spring-ai","spring-ai-ollama","workshop"],"created_at":"2025-06-11T03:40:09.239Z","updated_at":"2026-03-10T16:32:56.635Z","avatar_url":"https://github.com/AxaFrance.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![cover picture](workshop/images/cover.avif)\n\n# Exploring interactions with LLMs : Practical insights with Spring AI\n\nLLM (Large Language Model) concept is widely used to build chatbots, question-answering systems, and other conversational applications.\n\nIn this workshop, we will discover how to interact with a LLM as we craft a conversational agent step-by-step.\nThroughout this journey, we will understand the capabilities and limitations of LLMs, and explore prompt engineering techniques to elevate their standard behavior.\n\nFor the practical part, we will learn about Spring AI's chat completion features to interact with LLMs. Spring AI serves as an abstraction layer able to interact with several LLM providers.\nFor the workshop's purposes, we will use Ollama, a solution for running LLMs locally.\n\n## :sparkles: Quick start\n\nIf you don't want to save your work, you can start the workshop directly in a cloud environment.\n\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true\u0026ref=main\u0026repo=863368883\u0026machine=standardLinux32gb\u0026devcontainer_path=.devcontainer%2Fdevcontainer.json\u0026location=WestEurope)\n\n[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io?autostart=true\u0026editor=code\u0026workspaceClass=g1-large#https://github.com/AxaFrance/spring-ai-workshop)\n\n## :wrench: Environment setup\n\n- [GitHub Codespaces](workshop/setup/codespaces.md) (5min)\n- [GitPod](workshop/setup/gitpod.md) (5min)\n- [Local Hosting](workshop/setup/local.md) (15min)\n\n## :crystal_ball: Install Mistral 7B model\n\nExecute this command only once to pull the model.\n\n```shell\ndocker exec -it ollama sh -c \"ollama pull mistral:7b\"\n```\n\n## :building_construction: Build the project\n\nExecute this command after code update.\n\n```shell\nmvn clean install\n```\n\n## :running_woman: Run the application\n\n```shell\nmvn spring-boot:run\n```\n\n## :rocket: Hands-on\n\n1. [Zero-shot prompting](workshop/exercise-1.md) (15min)\n2. [Conversational memory](workshop/exercise-2.md) (15min)\n3. [Information extraction](workshop/exercise-3.md) (20min)\n4. [Retrieval Augmented Generation (RAG)](workshop/exercise-4.md) (30min)\n5. [Conclusion](workshop/conclusion.md)\n\n## :gift: Bonus / Best Practices\n\n1. [Conversational memory with Advisor](workshop/bonus/bonus-1.md) (10min)\n2. [RAG with Advisor (QuestionAnswerAdvisor)](workshop/bonus/bonus-2.md) (10min)\n3. [RAG and safe gard implementation with Advisor (SafeGuardAdvisor)](workshop/bonus/bonus-3.md) (10min)\n\n## :star: Contributors\n\nThis workshop is proposed by AXA France's Development Guild.\n\nMaintainers:\n\n- Clément GIGUEL [:octocat:](https://github.com/clementgig)\n- Lamine DIAKHABY [:octocat:](https://github.com/DIAKHABY20)\n- Benoît CACCINOLO [:octocat:](https://github.com/bc-axa)\n- Oussama HMANI [:octocat:](https://github.com/OussamaHMANI)\n- Samir KERROUMI [:octocat:](https://github.com/samkerr4coding)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxafrance%2Fspring-ai-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxafrance%2Fspring-ai-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxafrance%2Fspring-ai-workshop/lists"}