Spring AI, Java ಡೆವಲಪರ್‌ಗಳಿಗೆ ಪರಿಚಿತ Spring ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಮಾಡೆಲ್ ಅನ್ನು ಬಿಡದೆಯೇ, ಲಾರ್ಜ್-ಲ್ಯಾಂಗ್ವೇಜ್ ಮಾಡೆಲ್‌ಗಳು (LLMs), ಎಂಬೆಡ್ಡಿಂಗ್‌ಗಳು ಮತ್ತು ವೆಕ್ಟರ್ ಸ್ಟೋರ್‌ಗಳನ್ನು Spring Boot ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅಳವಡಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದು Spring MVC, Data ಮತ್ತು Cloud ಜೊತೆಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಅಬ್‌ಸ್ಟ್ರಾಕ್ಷನ್‌ಗಳ (abstractions) ಗುಂಪನ್ನು ಸೇರಿಸುತ್ತದೆ, ಇದರಿಂದ ತಂಡಗಳು ತಮಗೆ ಈಗಾಗಲೇ ತಿಳಿದಿರುವ dependency-injection ಮತ್ತು configuration ಪ್ಯಾಟರ್ನ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು generative-AI ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸೇರಿಸಬಹುದು.

ಪ್ರತ್ಯೇಕ Spring ಮಾಡ್ಯೂಲ್ ಏಕೆ ಮುಖ್ಯ

Java ತಂಡಗಳು ದೀರ್ಘಕಾಲದಿಂದ Spring Boot ಬಳಸಿ ಮೈಕ್ರೋಸರ್ವಿಸಸ್, ಬ್ಯಾಚ್ ಜಾಬ್‌ಗಳು ಮತ್ತು ವೆಬ್ UIಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತಿವೆ, ಆದರೆ LLM ಅನ್ನು ಸಂಯೋಜಿಸುವುದು ಎಂದರೆ ಸಾಮಾನ್ಯವಾಗಿ ವೆಂಡರ್-ನಿರ್ದಿಷ್ಟ SDK ಅನ್ನು ಬಳಸುವುದು, HTTP ಕರೆಗಳನ್ನು ಹಾರ್ಡ್-ಕೋಡ್ ಮಾಡುವುದು ಮತ್ತು ಟೋಕನ್-ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಲಾಜಿಕ್ ಅನ್ನು ಕೋಡ್‌ಬೇಸ್‌ನಾದ್ಯಂತ ಹರಡುವುದು ಎಂದರ್ಥವಾಗಿತ್ತು. ಈ ವಿಧಾನವು ವೆಂಡರ್ ಲಾಕ್-ಇನ್ ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ಡೆವಲಪರ್‌ಗಳು ಎರಡು ವಿಭಿನ್ನ ಪ್ಯಾರಾಡೈಮ್‌ಗಳನ್ನು ನಿಭಾಯಿಸುವಂತೆ ಮಾಡುತ್ತದೆ: ಒಂದು ಕಡೆ ಕ್ಲಾಸಿಕ್ Spring beans ಮತ್ತು ಇನ್ನೊಂದು ಕಡೆ ಅಡ್-ಹೋಕ್ (ad-hoc) AI ಕ್ಲೈಂಟ್ ಕೋಡ್. Spring AI ಈ ಅಡ್-ಹೋಕ್ ಪದರವನ್ನು ChatModel, EmbeddingModel, VectorStore ನಂತಹ ಇಂಟರ್‌ಫೇಸ್‌ಗಳಿಂದ ಬದಲಾಯಿಸುತ್ತದೆ—ಇವು Spring beans ಮೂಲಕ ಪ್ರೊವೈಡರ್ ವಿವರಗಳನ್ನು ಮರೆಮಾಚುತ್ತವೆ. ಇದರ ಪರಿಣಾಮವಾಗಿ, ಕೇವಲ ಒಂದು ಕಾನ್ಫಿಗರೇಶನ್ ಪ್ರಾಪರ್ಟಿಯನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ ಒಂದು ಕ್ಲೌಡ್ AI ಸೇವೆಯಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಬದಲಾಗಬಲ್ಲ ಪೋರ್ಟಬಲ್ ಕೋಡ್ ಲಭ್ಯವಾಗುತ್ತದೆ.

Core building blocks

  • Chat Models – ಒಂದು ಫ್ಲೂಯೆಂಟ್ ChatClient API ನಿಮಗೆ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ಕಳುಹಿಸಲು ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಪಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಇದು Spring ನ RestTemplate ಅಥವಾ WebClient ಹೇಗೆ HTTP ಕರೆಗಳನ್ನು ಅಬ್‌ಸ್ಟ್ರಾಕ್ಟ್ ಮಾಡುತ್ತದೆಯೋ ಹಾಗೆಯೇ ಇರುತ್ತದೆ.
  • Embeddings – ಪಠ್ಯವು ಡೆನ್ಸ್ ವೆಕ್ಟರ್‌ಗಳಾಗಿ (dense vectors) ಬದಲಾಗುತ್ತದೆ, ಇದು Spring ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಿಡದೆಯೇ ಸೆಮ್ಯಾಂಟಿಕ್ ಸಿಮಿಲಾರಿಟಿ ಸರ್ಚ್‌ಗಳನ್ನು (semantic similarity searches) ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
  • Vector Stores – Spring AI ಜನಪ್ರಿಯ ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್‌ಗಳಿಗಾಗಿ ಅಡಾಪ್ಟರ್‌ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ನಿಖರವಾದ ಕೀವರ್ಡ್‌ಗಳಿಗಿಂತ ಹೆಚ್ಚಾಗಿ ಅರ್ಥದ ಆಧಾರದ ಮೇಲೆ ವೆಕ್ಟರ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಮತ್ತು ಮರಳಿ ಪಡೆಯಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
  • Retrieval-Augmented Generation (RAG) – ಇದು ವೆಕ್ಟರ್ ಸ್ಟೋರ್ ಅನ್ನು ಚಾಟ್ ಮಾಡೆಲ್‌ನೊಂದಿಗೆ ಜೋಡಿಸುತ್ತದೆ, ಇದರಿಂದ AI ತನ್ನ ಖಾಸಗಿ ಕಾರ್ಪೊರೇಟ್ ಡೇಟಾವನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸಬಹುದು, ಮತ್ತು ಸೂಕ್ಷ್ಮ ಮಾಹಿತಿಯನ್ನು ಸಾರ್ವಜನಿಕ LLM ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗಳಿಂದ ದೂರವಿಡಬಹುದು.
  • Tool Calling – ಮಾಡೆಲ್ ನೋಂದಾಯಿತ Spring beans (ಉದಾಹರಣೆಗೆ, order-lookup ಸೇವೆಗಳು) ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಕರೆಯಬಹುದು, ಇದು AI ಅನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಬಿಸಿನೆಸ್ ಲಾಜಿಕ್‌ನ ಫ್ರಂಟ್-ಎಂಡ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ.
  • Advisors – ಸಂಭಾಷಣೆಯ ಮೆಮೊರಿ (conversation memory) ಅಥವಾ ರಿಕ್ವೆಸ್ಟ್ ಲಾಗಿಂಗ್‌ನಂತಹ ಕ್ರಾಸ್-ಕಟಿಂಗ್ ಕಾನ್ಸರ್ನ್‌ಗಳನ್ನು Spring AOP-ಶೈಲಿಯ Advisors ಆಗಿ ಅಳವಡಿಸಬಹುದು, ಇದು ಬಿಸಿನೆಸ್ ಕೋಡ್ ಅನ್ನು ಸ್ವಚ್ಛವಾಗಿಡುತ್ತದೆ.

ಎಂಟರ್‌ಪ್ರೈಸ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ನಲ್ಲಿ ಇದು ಹೇಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ

ಸಾಮಾನ್ಯ ಮೈಕ್ರೋಸರ್ವಿಸಸ್ ಪರಿಸರದಲ್ಲಿ, Spring AI ಒಂದು ಸ್ವತಂತ್ರ "AI service" ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದನ್ನು ಇತರ ಸೇವೆಗಳು REST ಅಥವಾ Kafka ಮೂಲಕ ಕರೆಯುತ್ತವೆ. AI ಸೇವೆಯು ತನಗೆ ಯಾವ ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ಡೇಟಾ ಬೇಕು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ, ಆದರೆ ಸುತ್ತಮುತ್ತಲಿನ ಅಪ್ಲಿಕೇಶನ್ ಅನುಮತಿಸಲಾದ ಕಾರ್ಯಾಚರಣೆಗಳ ಮೇಲೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣವನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಈ ಪ್ರತ್ಯೇಕತೆಯು ಭದ್ರತಾ ಗಡಿಗಳನ್ನು ಕಾಪಾಡುತ್ತದೆ ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಗವರ್ನೆನ್ಸ್ ಪಾಲಿಸಿಗಳು—rate limiting, audit logging, role-based access—ಸ್ಥಿರವಾಗಿರಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ನೀವು ನಿರ್ಲಕ್ಷಿಸಲು ಸಾಧ್ಯವಿಲ್ಲದ ಪ್ರೊಡಕ್ಷನ್ ಕಾಳಜಿಗಳು

ಕ್ಷೇತ್ರ ಗಮನಿಸಬೇಕಾದ ಅಂಶ ಪ್ರಾಯೋಗಿಕ ಸಲಹೆ
Security API ಕೀಗಳು ಮತ್ತು ಮಾಡೆಲ್ ಕ್ರೆಡೆನ್ಶಿಯಲ್‌ಗಳು ಎಂದಿಗೂ ಕ್ಲೈಂಟ್-ಸೈಡ್ ಕೋಡ್‌ನಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳಬಾರದು. ರಹಸ್ಯಗಳನ್ನು (secrets) ಒಂದು ವಾಲ್ಟ್ ಅಥವಾ ಕ್ಲೌಡ್ ಸೀಕ್ರೆಟ್ ಮ್ಯಾನೇಜರ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿ ಮತ್ತು ಅವುಗಳನ್ನು ರನ್‌ಟೈಮ್‌ನಲ್ಲಿ Spring bean ಗೆ ಇಂಜೆಕ್ಟ್ ಮಾಡಿ.
Prompt safety ದುರುದ್ದೇಶಪೂರಿತ ಬಳಕೆದಾರರು ಮಾಡೆಲ್ ಅನ್ನು ಅನುಮತಿಸದ ಕ್ರಮಗಳಿಗೆ ಪ್ರೇರೇಪಿಸಲು ಪ್ರಯತ್ನಿಸಬಹುದು. ಪ್ರಾಂಪ್ಟ್‌ಗಳು ಮಾಡೆಲ್‌ಗೆ ತಲುಪುವ ಮೊದಲು ಅವುಗಳನ್ನು ವ್ಯಾಲಿಡೇಟ್ ಮತ್ತು ಸ್ಯಾನಿಟೈಸ್ ಮಾಡಿ; ಅನುಮತಿಸಲಾದ ಕಮಾಂಡ್‌ಗಳ ವೈಟ್‌ಲಿಸ್ಟ್ ಬಳಸಿ.
Cost ಪ್ರತಿಯೊಂದು ಪ್ರೊಸೆಸ್ ಮಾಡಲಾದ ಟೋಕನ್‌ಗೆ ಶುಲ್ಕ ವಿಧಿಸಲಾಗುತ್ತದೆ; ನಿಯಂತ್ರಣವಿಲ್ಲದ ಲೂಪ್‌ಗಳು ಬಿಲ್‌ಗಳನ್ನು ಹೆಚ್ಚಿಸಬಹುದು. ಪ್ರತಿ ರಿಕ್ವೆಸ್‌ನ ಟೋಕನ್ ಬಳಕೆಯನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ ಮತ್ತು ಮಿತಿಗಳನ್ನು ಮೀರಿದಾಗ ಅಲರ್ಟ್‌ಗಳನ್ನು ಹೊಂದಿಸಿ.
Latency ಸಿಂಕ್ರೋನಸ್ ಕರೆಗಳು ರೌಂಡ್-ಟ್ರಿಪ್ ಸಮಯವನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ, ಇದು UI ರೆಸ್ಪಾನ್ಸಿವ್‌ನೆಸ್‌ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು. ಸ್ಟ್ರೀಮಿಂಗ್ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಬಳಸಿ ಅಥವಾ UI ಅನ್ನು ಹಂತ ಹಂತವಾಗಿ ಅಪ್‌ಡೇಟ್ ಮಾಡಬಹುದಾದ ಅಸಿಂಕ್ರೋನಸ್ ಕರೆಗಳನ್ನು ಬಳಸಿ.

ಜಾವಾ ಡೆವಲಪರ್‌ಗೆ ಈಗ ಬೇಕಾಗುವ ಕೌಶಲ್ಯಗಳು

ಕೋರ್ Java ಮತ್ತು Spring Boot ಪರಿಣತಿಯು ಅತ್ಯಗತ್ಯವಾಗಿಯೇ ಉಳಿಯುತ್ತದೆ, ಆದರೆ ತಂಡಗಳು ಒಮ್ಮೆ ಡೇಟಾ-ಸೈನ್ಸ್ ಪ್ರಯೋಗಾಲಯಗಳಲ್ಲಿ ಮಾತ್ರ ಇದ್ದ ಪರಿಕಲ್ಪನೆಗಳೊಂದಿಗೆ ಸಹ ಪರಿಚಿತರಾಗಬೇಕು:

  • ಮಾಡೆಲ್ ಅನ್ನು ಉಪಯುಕ್ತ ಉತ್ತರಗಳತ್ತ ನಡೆಸುವ ಪರಿಣಾಮಕಾರಿ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವುದು.

Spring AI ಒಂದು ಸೇತುವೆಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು ಸಂಪೂರ್ಣ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಮರುಬರೆಯುವ ಅಗತ್ಯವಿಲ್ಲದೆ ಡೆವಲಪರ್‌ಗಳು ಈ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಮುಖ್ಯ ಅಂಶ: Spring AI, Java ತಂಡಗಳು ಅತಿ ಕಡಿಮೆ ತೊಂದರೆಯೊಂದಿಗೆ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ Spring Boot ಸೇವೆಗಳಿಗೆ LLM-ಚಾಲಿತ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಅಳವಡಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಆದರೆ ಯಶಸ್ಸು AI ಅನ್ನು ಒಂದು ಪ್ರಥಮ ದರ್ಜೆಯ ಘಟಕವಾಗಿ (first-class component)—ಸುರಕ್ಷಿತವಾಗಿ ನಿರ್ವಹಿಸುವುದು, ವೆಚ್ಚದ ಬಗ್ಗೆ ಜಾಗರೂಕತೆ ಮತ್ತು ಕಟ್ಟುನಿಟ್ಟಾದ ಪರೀಕ್ಷೆಯೊಂದಿಗೆ ಪರಿಗಣಿಸುವುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ.