GitHub ਨੇ Java ਲਈ ਇੱਕ Copilot SDK ਲਾਂਚ ਕੀਤਾ ਹੈ—ਇੱਕ production-tested runtime ਜਿਸ ਨੂੰ ਤੁਸੀਂ Maven dependency ਵਜੋਂ ਕਿਸੇ ਵੀ Java ਐਪ ਵਿੱਚ ਵਰਤ ਸਕਦੇ ਹੋ। ਇਹ SDK Java ਟੀਮਾਂ ਨੂੰ AI agents ਬਣਾਉਣ ਲਈ ਇੱਕ ਤੀਜਾ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜੋ Spring Boot ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ Spring AI ਅਤੇ framework-agnostic ਵਿਕਾਸ ਲਈ LangChain4j ਦੇ ਨਾਲ ਮੌਜੂਦ ਹੈ।

ਇੱਕ ਨਵਾਂ ਵਿਕਲਪ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ

ਹੁਣ Java ਕੰਪਨੀਆਂ ਲਈ ਬੈਕਐਂਡ ਵਿੱਚ generative AI ਨੂੰ ਜੋੜਨਾ ਇੱਕ ਰੁਟੀਨ ਮੰਗ ਬਣ ਗਈ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਟੀਮਾਂ ਪਹਿਲਾਂ ਹੀ ਦੋ ਸਥਾਪਿਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਵਿੱਚੋਂ ਕਿਸੇ ਇੱਕ ਦੀ ਚੋਣ ਕਰਦੀਆਂ ਹਨ:

  • Spring AI – Spring Boot ਨਾਲ ਗੂੜ੍ਹਾ ਜੁੜਿਆ ਹੋਇਆ; ਇਹ configuration, observability ਅਤੇ lifecycle management ਲਈ ਪੂਰੇ Spring ecosystem ਨੂੰ ਆਪਣੇ ਨਾਲ ਲਿਆਉਂਦਾ ਹੈ।
  • LangChain4j – framework-agnostic ਹੈ ਪਰ ਫਿਰ ਵੀ memory, tool calling ਅਤੇ model access ਲਈ ਆਪਣੇ ਅਮੂਰਤ (abstractions) ਲਾਗੂ ਕਰਦਾ ਹੈ।

ਦੋਵੇਂ ਹੀ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਕਨਵੈਨਸ਼ਨਾਂ ਦੇ ਇੱਕ ਸਮੂਹ ਅਤੇ ਇੱਕ ਅਜਿਹੇ runtime ਨੂੰ ਅਪਣਾਉਣ ਲਈ ਮਜਬੂਰ ਕਰਦੇ ਹਨ ਜੋ ਸ਼ਾਇਦ ਹਰ ਆਰਕੀਟੈਕਚਰ ਦੇ ਅਨੁਕੂਲ ਨਾ ਹੋਵੇ। GitHub ਦਾ Copilot SDK ਇੱਕ ਹਲਕਾ (leaner) ਵਿਕਲਪ ਪੇਸ਼ ਕਰਦਾ ਹੈ ਜੋ Spring context ਅਤੇ LangChain4j ਦੇ ਉੱਚ-ਪੱਧਰੀ abstractions ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ।

SDK ਅਸਲ ਵਿੱਚ ਕੀ ਕਰਦਾ ਹੈ

Copilot SDK ਇੱਕ LLM API ਦੇ ਉੱਪਰ ਸਿਰਫ਼ ਇੱਕ ਪਤਲੇ wrapper ਤੋਂ ਕਿਤੇ ਵੱਧ ਹੈ। ਇਹ ਇੱਕ ਹਲਕਾ agent runtime ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜੋ host application ਦੇ ਨਾਲ ਹੀ ਉਸੇ JVM ਵਿੱਚ ਚੱਲਦਾ ਹੈ। “bring-your-own-key” (BYOK) ਮੋਡ ਵਿੱਚ, SDK ਬਿਨਾਂ Copilot subscription ਦੀ ਮੰਗ ਕੀਤੇ, ਸਿੱਧਾ OpenAI, Anthropic ਜਾਂ ਕਿਸੇ ਵੀ ਅਨੁਕੂਲ endpoint ਨਾਲ ਜੁੜ ਜਾਂਦਾ ਹੈ।

ਮੁੱਖ ਸਮਰੱਥਾਵਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ:

  • Automatic tool calling – ਤੁਸੀਂ ਇੱਕ Java method reference ਪਾਸ ਕਰਦੇ ਹੋ; SDK method signature ਤੋਂ ਲੋੜੀਂਦਾ JSON schema ਤਿਆਰ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਹੱਥ ਨਾਲ ਬਣਾਏ ਗਏ schemas ਦੀ ਲੋੜ ਖਤਮ ਹੋ ਜਾਂਦੀ ਹੈ।
  • Reactive streaming – raw Reactive Streams 'ਤੇ ਬਣਿਆ ਹੋਇਆ, ਇਹ back-pressure handling ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜੋ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਚੱਲਣ ਵਾਲੀਆਂ completions ਦੌਰਾਨ servlet containers ਨੂੰ memory bloat ਤੋਂ ਬਚਾਉਂਦਾ ਹੈ।
  • Minimal coupling – runtime ਕਿਸੇ ਵੀ servlet container ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਖਾਸ framework ਵਿੱਚ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਬੰਧਨ ਵਿੱਚ ਨਹੀਂ ਬੰਨ੍ਹਦਾ।
  • Context management – ਇਹ token usage ਅਤੇ conversation history ਨੂੰ ਆਪਣੇ ਆਪ ਟ੍ਰੈਕ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ LLM calls ਦੇ ਆਲੇ-ਦੁਆਲੇ ਹੋਣ ਵਾਲੀ bookkeeping ਆਸਾਨ ਹੋ ਜਾਂਦੀ ਹੈ।

ਤੁਹਾਨੂੰ ਅਜੇ ਵੀ ਕੀ ਬਣਾਉਣਾ ਪਵੇਗਾ

SDK ਦੀ minimal ਦਿੱਖ ਕਾਰਨ ਕਈ ਜ਼ਿੰਮੇਵਾਰੀਆਂ ਐਪਲੀਕੇਸ਼ਨ 'ਤੇ ਛੱਡ ਦਿੱਤੀਆਂ ਗਈਆਂ ਹਨ:

  • Memory management – runtime ਕਦੇ ਵੀ conversation history ਨੂੰ ਕੱਟਦਾ (truncate) ਨਹੀਂ ਹੈ। ਮਾਡਲ token limits ਦੇ ਅੰਦਰ ਰਹਿਣ ਲਈ ਤੁਹਾਨੂੰ sliding-window ਜਾਂ ਕੋਈ ਹੋਰ ਰਣਨੀਤੀ ਲਾਗੂ ਕਰਨੀ ਪਵੇਗੀ।
  • Retry logic – rate-limit ਜਾਂ transient errors ਲਈ ਕੋਈ built-in retry policy ਨਹੀਂ ਹੈ। ਇਸ ਉਦੇਸ਼ ਲਈ Resilience4j ਵਰਗੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • Observability – SDK ਆਮ ਤੌਰ 'ਤੇ (out of the box) metrics ਜਾਂ traces ਜਾਰੀ ਨਹੀਂ ਕਰਦਾ। ਉਦਾਹਰਨ ਲਈ, OpenTelemetry ਨਾਲ ਕਾਲਾਂ ਨੂੰ ਮੈਨੂਅਲੀ instrument ਕਰੋ।

ਇਹ ਕਮੀਆਂ ਜਾਣਬੁੱਝ ਕੇ ਰੱਖੀਆਂ ਗਈਆਂ ਹਨ; SDK ਇੱਕ full-stack solution ਲਾਗੂ ਕਰਨ ਦੀ ਬਜਾਏ ਰਸਤੇ ਤੋਂ ਹਟ ਕੇ ਰਹਿਣਾ ਪਸੰਦ ਕਰਦਾ ਹੈ।

ਇਹ ਵਿਕਲਪਾਂ ਦੇ ਮੁਕਾਬਲੇ ਕਿਵੇਂ ਖੜ੍ਹਾ ਹੈ

ਵਿਸ਼ੇਸ਼ਤਾ (Feature) Copilot SDK Spring AI LangChain4j
Framework 'ਤੇ ਨਿਰਭਰਤਾ ਕੋਈ ਨਹੀਂ – ਕਿਸੇ ਵੀ servlet container ਵਿੱਚ ਕੰਮ ਕਰਦਾ ਹੈ Spring Boot ਦੀ ਲੋੜ ਹੈ ਕੋਈ ਨਹੀਂ, ਪਰ ਆਪਣੇ ਅਮੂਰਤ (abstractions) ਜੋੜਦਾ ਹੈ
Built-in observability ਨਹੀਂ Spring observability ਨਾਲ integrated ਹੈ ਨਹੀਂ
Memory handling ਮੈਨੂਅਲ (Manual) ਅੰਸ਼ਕ (Partial)
Tool-calling support method refs ਤੋਂ automatic schema generation ਮੈਨੂਅਲ (Manual)
Reactive streaming Native Reactive Streams

ਉਹ ਡਿਵੈਲਪਰ ਜੋ ਪੂਰੇ ਕੰਟਰੋਲ ਨੂੰ ਮਹੱਤਵ ਦਿੰਦੇ ਹਨ ਅਤੇ ਜਿਨ੍ਹਾਂ ਕੋਲ ਪਹਿਲਾਂ ਹੀ ਇੱਕ monitoring stack ਮੌਜੂਦ ਹੈ, ਉਹ Copilot SDK ਦੇ “bare bones” ਪਹੁੰਚ ਨੂੰ ਪਸੰਦ ਕਰ ਸਕਦੇ ਹਨ। ਉਹ ਟੀਮਾਂ ਜੋ out-of-the-box observability, configuration management ਜਾਂ Spring ਦੇ dependency injection ਨਾਲ ਬਿਹਤਰ ਇੱਕਾਗਰਤਾ ਚਾਹੁੰਦੀਆਂ ਹਨ, ਉਹ ਸ਼ਾਇਦ Spring AI ਨਾਲ ਹੀ ਰਹਿਣਗੀਆਂ। LangChain4j ਇੱਕ ਵਿਚਕਾਰਲਾ ਰਸਤਾ ਲੱਭਦਾ ਹੈ, ਜੋ Spring context ਨੂੰ ਲਾਗੂ ਕੀਤੇ ਬਿਨਾਂ ਕੁਝ ਉੱਚ-ਪੱਧਰੀ utilities ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।