AI ਦੇ ਨਾਲ ਆਧੁਨਿਕ Java: ਐਂਟਰਪ੍ਰਾਈਜ਼ ਲਈ ਤਿਆਰ
Java ਉਤਪਾਦਨ (production) ਲਈ AI ਨੂੰ ਰਸਮੀ ਰੂਪ ਦੇ ਰਿਹਾ ਹੈ। ਹੁਣ ਤੁਹਾਨੂੰ ਇਹ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ ਕਿ ਕੀ ਤੁਹਾਨੂੰ Java ਵਿੱਚ AI ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਤੁਹਾਨੂੰ ਇਹ ਜਾਣਨ ਦੀ ਲੋੜ ਹੈ ਕਿ ਸਥਿਰ ਕੰਟਰੈਕਟਾਂ (stable contracts) 'ਤੇ ਨਿਰਮਾਣ ਕਿਵੇਂ ਕਰਨਾ ਹੈ।
Java ਈਕੋਸਿਸਟਮ ਪ੍ਰੋਟੋਟਾਈਪ ਤੋਂ ਸਥਿਰ ਮਿਆਰਾਂ ਵੱਲ ਵਧ ਰਿਹਾ ਹੈ। ਤੁਸੀਂ ਅੱਜ ਤਿੰਨ ਮੁੱਖ ਥੰਮ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ:
- LLM orchestration ਲਈ LangChain4j।
- ਸੰਦਰਭ (context) ਲਈ RAG (Retrieval-Augmented Generation)।
- ਟੂਲਜ਼ ਅਤੇ ਡੇਟਾ ਲਈ MCP (Model Context Protocol)।
1. LangChain4j ਅਤੇ Quarkus
LangChain4j, LangChain ਈਕੋਸਿਸਟਮ ਦਾ Java ਵਰਜ਼ਨ ਹੈ। ਇਹ ਡਿਕਲੇਰੇਟਿਵ ਐਨੋਟੇਸ਼ਨਾਂ (declarative annotations) ਵਰਗੇ ਅਸਲੀ Java ਪੈਟਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।
ਤੁਸੀਂ ਆਪਣੇ ਲੌਜਿਕ ਨੂੰ ਐਬਸਟਰੈਕਟ ਕਰਨ ਲਈ AI Service ਪੈਟਰਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ ਇੱਕ ਸਧਾਰਨ Java ਇੰਟਰਫੇਸ ਲਿਖਦੇ ਹੋ, ਅਤੇ ਫਰੇਮਵਰਕ ਪ੍ਰੋਂਪਟ (prompts) ਅਤੇ ਮਾਡਲ ਕਾਲਾਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ।
Quarkus ਦੇ ਨਾਲ, ਤੁਸੀਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਰਾਹੀਂ OpenAI ਜਾਂ Ollama ਵਰਗੇ LLM ਪ੍ਰੋਵਾਈਡਰਾਂ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹੋ। ਤੁਹਾਡਾ ਬਿਜ਼ਨਸ ਲੌਜਿਕ ਉਹੀ ਰਹਿੰਦਾ ਹੈ। ਇਹ ਆਇਸੋਲੇਸ਼ਨ (isolation) ਐਂਟਰਪ੍ਰਾਈਜ਼ ਆਰਕੀਟੈਕਚਰ ਲਈ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਹੈ।
2. ਨਿੱਜੀ ਡੇਟਾ ਲਈ RAG
LLMs ਤੁਹਾਡੇ ਨਿੱਜੀ ਡੇਟਾ ਬਾਰੇ ਨਹੀਂ ਜਾਣਦੇ। RAG ਇਸਦਾ ਹੱਲ ਕਰਦਾ ਹੈ। ਮਹਿੰਗੇ ਫਾਈਨ-ਟਿਊਨਿੰਗ (fine-tuning) ਦੀ ਬਜਾਏ, ਤੁਸੀਂ ਕੁਐਰੀ (query) ਦੇ ਸਮੇਂ ਢੁਕਵੇਂ ਡੇਟਾ ਫਰੈਗਮੈਂਟਸ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ।
ਪ੍ਰਕਿਰਿਆ ਤਿੰਨ ਪੜਾਵਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦੀ ਹੈ:
- Ingestion: ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਪਾਰਸ (parsing) ਕਰਨਾ ਅਤੇ ਵੰਡਣਾ।
- Indexing: ਐਮਬੈਡਿੰਗਜ਼ (embeddings) ਬਣਾਉਣਾ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਵੈਕਟਰ ਸਟੋਰ ਵਿੱਚ ਸਟੋਰ ਕਰਨਾ।
- Retrieval: ਕੁਐਰੀ ਦੌਰਾਨ ਮੈਚ ਲੱਭਣਾ।
ਤੁਸੀਂ Oracle ਜਾਂ pgvector ਦੇ ਨਾਲ PostgreSQL ਵਰਗੇ ਮੌਜੂਦਾ ਇਨਫਰਾਸਟ੍ਰਕਚਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਜੇਕਰ ਤੁਸੀਂ ਆਪਣਾ ਡੇਟਾਬੇਸ ਬਦਲਦੇ ਹੋ, ਤਾਂ ਵੀ ਪਾਈਪਲਾਈਨ ਸਥਿਰ ਰਹਿੰਦੀ ਹੈ।
3. ਐਕਸ਼ਨ ਲਈ MCP
ਜੇਕਰ RAG ਗਿਆਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਤਾਂ MCP ਐਕਸ਼ਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। Model Context Protocol ਮਾਡਲਾਂ ਨੂੰ ਟੂਲਜ਼ ਅਤੇ ਡੇਟਾ ਸਰੋਤਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
Quarkus MCP ਐਕਸਟੈਂਸ਼ਨ ਦੇ ਨਾਲ, ਤੁਸੀਂ ਇੱਕ ਸਿੰਗਲ ਐਨੋਟੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ Java beans ਨੂੰ ਟੂਲਜ਼ ਵਜੋਂ ਐਕਸਪੋਜ਼ ਕਰ ਸਕਦੇ ਹੋ। ਇੱਕ ਬਾਹਰੀ ਏਜੰਟ ਇੱਕ ਮਿਆਰੀ ਪ੍ਰੋਟੋਕੋਲ ਰਾਹੀਂ ਇਹਨਾਂ ਟੂਲਜ਼ ਨੂੰ ਲੱਭ ਸਕਦਾ ਹੈ ਅਤੇ ਕਾਲ ਕਰ ਸਕਦਾ ਹੈ।
ਪੂਰੀ ਪ੍ਰਕਿਰਿਆ ਇਸ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੀ ਹੈ:
- ਯੂਜ਼ਰ ਇੱਕ ਸੁਨੇਹਾ ਭੇਜਦਾ ਹੈ।
- LLM ਫੈਸਲਾ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜੇ ਟੂਲਜ਼ ਨੂੰ ਕਾਲ ਕਰਨਾ ਹੈ।
- Quarkus Java ਕੋਡ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ।
- ਨਤੀਜੇ ਸੰਦਰਭ (context) ਵਜੋਂ LLM ਨੂੰ ਵਾਪਸ ਮਿਲਦੇ ਹਨ।
- LLM ਇੱਕ ਸਹੀ (grounded) ਜਵਾਬ ਤਿਆਰ ਕਰਦਾ ਹੈ।
ਜੋ ਸਥਿਰ ਹੈ ਉਸ 'ਤੇ ਨਿਰਮਾਣ ਕਰੋ:
- ਡਿਕਲੇਰੇਟਿਵ AI ਸੇਵਾਵਾਂ ਲਈ LangChain4j ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਆਪਣੇ ਮੌਜੂਦਾ ਵੈਕਟਰ ਸਟੋਰਾਂ ਦੇ ਨਾਲ RAG ਪਾਈਪਲਾਈਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਮੌਜੂਦਾ CDI beans ਨੂੰ ਟੂਲਜ਼ ਵਜੋਂ ਐਕਸਪੋਜ਼ ਕਰਨ ਲਈ MCP ਦੀ ਵਰਤੋਂ ਕਰੋ।
- AI-ਜਨਰੇਟਡ ਕੋਡ ਲਈ ਸਪੱਸ਼ਟ ਗਵਰਨੈਂਸ (governance) ਸਥਾਪਤ ਕਰੋ।
ਜਦੋਂ ਦੂਜੇ ਇਸ ਬਾਰੇ ਬਹਿਸ ਕਰ ਰਹੇ ਹਨ ਕਿ ਕਿਹੜਾ ਫਰੇਮਵਰਕ ਵਰਤਣਾ ਹੈ, ਤੁਸੀਂ ਮਜ਼ਬੂਤ ਨੀਂਹ ਬਣਾਉਣ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰੋ।
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi
