Laravel ਵਿੱਚ AI ਨੂੰ ਜੋੜਨਾ

ਜ਼ਿਆਦਾਤਰ AI ਟਿਊਟੋਰਿਅਲ ਇਹ ਮੰਨ ਕੇ ਚੱਲਦੇ ਹਨ ਕਿ ਤੁਸੀਂ Python ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ।

12 ਸਾਲਾਂ ਤੱਕ PHP ਐਪਸ ਬਣਾਉਣ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਹਾਲ ਹੀ ਵਿੱਚ ਇੱਕ ਪ੍ਰੋਡਕਸ਼ਨ Laravel ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ AI ਫੀਚਰ ਜੋੜੇ ਹਨ। ਮੈਂ ਇਸਦੀ ਵਰਤੋਂ ਕੱਚੇ ਡੇਟਾ (raw data) ਨੂੰ ਮਨੁੱਖੀ ਰਿਪੋਰਟਾਂ ਵਿੱਚ ਬਦਲਣ ਲਈ ਕੀਤੀ।

ਮੁਸ਼ਕਲ ਹਿੱਸਾ ਕੋਡ ਨਹੀਂ ਸੀ। ਮੁਸ਼ਕਲ ਹਿੱਸਾ ਇਸ ਵਿਸ਼ੇ 'ਤੇ ਵਧੀਆ PHP ਕੰਟੈਂਟ ਲੱਭਣਾ ਸੀ।

ਇੱਥੇ ਦੱਸਿਆ ਗਿਆ ਹੈ ਕਿ ਤੁਸੀਂ Laravel ਵਿੱਚ ਇੱਕ ਸਾਫ਼ ਅਤੇ ਪ੍ਰੋਡਕਸ਼ਨ-ਤਿਆਰ AI ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਕਿਵੇਂ ਬਣਾ ਸਕਦੇ ਹੋ।

ਆਰਕੀਟੈਕਚਰ (The Architecture)

ਆਪਣੇ ਕੰਟਰੋਲਰਾਂ (controllers) ਦੇ ਅੰਦਰ API ਕਾਲਾਂ ਨੂੰ ਖਿਲਾਰੋ ਨਾ। ਇਸਦੀ ਬਜਾਏ, ਡਰਾਈਵਰ ਪੈਟਰਨ (driver pattern) ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਤੁਹਾਨੂੰ ਆਪਣੀ .env ਫਾਈਲ ਵਿੱਚ ਇੱਕ ਬਦਲਾਅ ਨਾਲ Claude ਅਤੇ OpenAI ਵਿਚਕਾਰ ਬਦਲਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।

  1. ਇੱਕ ਕੰਟਰੈਕਟ (contract) ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ ਇੱਕ AiClientInterface ਬਣਾਓ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ Claude ਅਤੇ OpenAI ਦੋਵੇਂ ਇੱਕੋ ਨਿਯਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰਨ।

  2. ਆਪਣੇ ਡਰਾਈਵਰ ਬਣਾਓ ਇੱਕ ClaudeClient ਅਤੇ ਇੱਕ OpenAiClient ਬਣਾਓ। ਰਿਕਵੈਸਟਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ Laravel ਦੇ HTTP client ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਟਾਈਮਆਊਟ (timeouts) ਅਤੇ ਰੀਟ੍ਰਾਈਜ਼ (retries) ਨੂੰ ਸੰਭਾਲਣਾ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ।

  3. ਸਰਵਿਸ ਕੰਟੇਨਰ (Service Container) ਦੀ ਵਰਤੋਂ ਕਰੋ ਆਪਣੇ AppServiceProvider ਵਿੱਚ ਆਪਣੇ ਇੰਟਰਫੇਸ ਨੂੰ ਇੱਕ ਖਾਸ ਕਲਾਇੰਟ ਨਾਲ ਬਾਈਂਡ (bind) ਕਰੋ। ਆਪਣੀ ਕੌਂਫਿਗ ਦੇ ਅਧਾਰ 'ਤੇ ਪ੍ਰੋਵਾਈਡਰ ਚੁਣਨ ਲਈ match ਸਟੇਟਮੈਂਟ ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਅੰਤਰ (The Differences)

ਗਲਤੀਆਂ ਤੋਂ ਬਚਣ ਲਈ ਤੁਹਾਨੂੰ ਇਹਨਾਂ ਪੰਜ ਵੇਰਵਿਆਂ ਬਾਰੇ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ:

• Claude ਹੈਡਰ ਵਿੱਚ x-api-key ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। OpenAI Authorization: Bearer ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। • Claude ਲਈ anthropic-version ਹੈਡਰ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। • Claude ਲਈ max_tokens ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। OpenAI ਇਸਨੂੰ ਵਿਕਲਪਿਕ (optional) ਬਣਾਉਂਦਾ ਹੈ। • Claude ਇੱਕ top-level system ਫੀਲਡ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। OpenAI role: system ਵਾਲੇ ਮੈਸੇਜ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। • JSON ਰਿਸਪਾਂਸ ਪਾਥ ਵੱਖਰੇ ਹੁੰਦੇ ਹਨ। Claude content[0].text ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। OpenAI choices[0].message.content ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।

ਪ੍ਰੋਡਕਸ਼ਨ ਟਿਪਸ (Production Tips)

ਕੈਸ਼ਿੰਗ (Caching) ਦੀ ਵਰਤੋਂ ਕਰੋ: AI ਕਾਲਾਂ ਹੌਲੀ ਹੁੰਦੀਆਂ ਹਨ ਅਤੇ ਖਰਚਾ ਕਰਦੀਆਂ ਹਨ। ਜੇਕਰ ਡੇਟਾ ਉਹੀ ਹੈ, ਤਾਂ ਨਤੀਜਾ ਆਪਣੇ ਕੈਸ਼ (cache) ਤੋਂ ਪ੍ਰਦਾਨ ਕਰੋ। ਇਹ ਲਾਗਤ ਨੂੰ 70% ਤੱਕ ਘਟਾ ਸਕਦਾ ਹੈ। • ਕਿਊਜ਼ (Queues) ਦੀ ਵਰਤੋਂ ਕਰੋ: ਕਿਸੇ ਵੀ ਯੂਜ਼ਰ ਨੂੰ API ਰਿਸਪਾਂਸ ਲਈ 10 ਸੈਕਿੰਡ ਤੱਕ ਕਦੇ ਵੀ ਉਡੀਕ ਨਾ ਕਰਵਾਓ। ਇੱਕ ਬੈਕਗ੍ਰਾਊਂਡ ਜੌਬ (background job) ਡਿਸਪੈਚ ਕਰੋ ਅਤੇ ਜਦੋਂ ਇਹ ਤਿਆਰ ਹੋ ਜਾਵੇ ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਸੂਚਿਤ ਕਰੋ। • ਅਸਫਲਤਾਵਾਂ ਨੂੰ ਸੰਭਾਲੋ (Handle Failures): API ਅਸਫਲ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਆਪਣੀਆਂ ਕਾਲਾਂ ਨੂੰ try-catch ਬਲਾਕਾਂ ਵਿੱਚ ਰੱਖੋ। ਜੇਕਰ AI ਅਸਫਲ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਟੁੱਟੀ ਹੋਈ ਪੇਜ ਦੀ ਬਜਾਏ ਕੱਚਾ ਡੇਟਾ ਦਿਖਾਓ। • ਸੀਮਾਵਾਂ ਸੈੱਟ ਕਰੋ: ਆਪਣੇ ਖਰਚੇ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਹਮੇਸ਼ਾ max_tokens ਸੈੱਟ ਕਰੋ। ਸਾਰਾਂਸ਼ (summaries) ਵਰਗੇ ਸਧਾਰਨ ਕੰਮਾਂ ਲਈ ਛੋਟੇ, ਸਸਤੇ ਮਾਡਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।

AI ਫੀਚਰ ਬਣਾਉਣ ਲਈ ਤੁਹਾਨੂੰ Python ਸਿੱਖਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਤੁਹਾਡੀਆਂ PHP ਹੁਨਰ ਇੱਥੇ ਬਿਲਕੁਲ ਸਹੀ ਕੰਮ ਕਰਦੇ ਹਨ।

ਸਰੋਤ: https://dev.to/sunakshi_thakur_84a5f59fd/integrating-claudeopenai-api-into-a-laravel-app-a-practical-guide-1hig