LangChain ਇੱਕ ਅਤਿ-ਆਧੁਨਿਕ ਅਤੇ ਮਜ਼ਬੂਤ ਟੂਲ ਹੈ ਜੋ ਵੱਡੇ ਭਾਸ਼ਾ ਮਾਡਲਾਂ (LLMs) ਦੀ ਸ਼ਕਤੀ ਨੂੰ ਵਰਤਣ ਲਈ ਵਿਕਸਤ ਕੀਤਾ ਗਿਆ ਹੈ।
ਇਹ LLM ਕਮਾਲ ਦੀਆਂ ਯੋਗਤਾਵਾਂ ਰੱਖਦੇ ਹਨ ਅਤੇ ਕਾਰਜਾਂ ਦੀ ਇੱਕ ਵਿਸ਼ਾਲ ਸ਼੍ਰੇਣੀ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਨਜਿੱਠ ਸਕਦੇ ਹਨ। ਹਾਲਾਂਕਿ, ਇਹ ਨੋਟ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਉਹਨਾਂ ਦੀ ਤਾਕਤ ਡੂੰਘਾਈ ਨਾਲ ਡੋਮੇਨ ਮਹਾਰਤ ਦੀ ਬਜਾਏ ਉਹਨਾਂ ਦੇ ਆਮ ਸੁਭਾਅ ਵਿੱਚ ਹੈ। GPT-4 ਦੀ ਸ਼ੁਰੂਆਤ ਤੋਂ ਬਾਅਦ ਇਸਦੀ ਪ੍ਰਸਿੱਧੀ ਤੇਜ਼ੀ ਨਾਲ ਵਧੀ ਹੈ।
ਜਦੋਂ ਕਿ LLM ਵੱਖ-ਵੱਖ ਕਾਰਜਾਂ ਨੂੰ ਸੰਭਾਲਣ ਵਿੱਚ ਉੱਤਮ ਹੁੰਦੇ ਹਨ, ਉਹਨਾਂ ਨੂੰ ਸੀਮਾਵਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈ ਸਕਦਾ ਹੈ ਜਦੋਂ ਇਹ ਖਾਸ ਜਵਾਬ ਪ੍ਰਦਾਨ ਕਰਨ ਜਾਂ ਉਹਨਾਂ ਕੰਮਾਂ ਨਾਲ ਨਜਿੱਠਣ ਦੀ ਗੱਲ ਆਉਂਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਲਈ ਡੂੰਘੇ ਡੋਮੇਨ ਗਿਆਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦੇਣ ਜਾਂ ਦਵਾਈ ਜਾਂ ਕਾਨੂੰਨ ਵਰਗੇ ਵਿਸ਼ੇਸ਼ ਖੇਤਰਾਂ ਵਿੱਚ ਕਾਰਜ ਕਰਨ ਲਈ ਇੱਕ LLM ਦੀ ਵਰਤੋਂ ਕਰਨ 'ਤੇ ਵਿਚਾਰ ਕਰੋ।
ਹਾਲਾਂਕਿ LLM ਨਿਸ਼ਚਿਤ ਤੌਰ 'ਤੇ ਇਹਨਾਂ ਖੇਤਰਾਂ ਬਾਰੇ ਆਮ ਪੁੱਛਗਿੱਛਾਂ ਦਾ ਜਵਾਬ ਦੇ ਸਕਦਾ ਹੈ, ਇਹ ਵਧੇਰੇ ਵਿਸਤ੍ਰਿਤ ਜਾਂ ਸੂਖਮ ਜਵਾਬ ਪੇਸ਼ ਕਰਨ ਲਈ ਸੰਘਰਸ਼ ਕਰ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਲਈ ਵਿਸ਼ੇਸ਼ ਗਿਆਨ ਜਾਂ ਮਹਾਰਤ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ LLM ਨੂੰ ਵਿਭਿੰਨ ਸਰੋਤਾਂ ਤੋਂ ਟੈਕਸਟ ਡੇਟਾ ਦੀ ਵਿਸ਼ਾਲ ਮਾਤਰਾ 'ਤੇ ਸਿਖਲਾਈ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਉਹਨਾਂ ਨੂੰ ਪੈਟਰਨ ਸਿੱਖਣ, ਸੰਦਰਭ ਨੂੰ ਸਮਝਣ ਅਤੇ ਇਕਸਾਰ ਜਵਾਬ ਪੈਦਾ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਉਹਨਾਂ ਦੀ ਸਿਖਲਾਈ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ ਡੋਮੇਨ-ਵਿਸ਼ੇਸ਼ ਜਾਂ ਵਿਸ਼ੇਸ਼ ਗਿਆਨ ਪ੍ਰਾਪਤੀ ਨੂੰ ਉਸੇ ਹੱਦ ਤੱਕ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਉਹਨਾਂ ਖੇਤਰਾਂ ਵਿੱਚ ਮਨੁੱਖੀ ਮਾਹਰ।
ਇਸ ਲਈ, ਜਦੋਂ ਕਿ LangChain, LLMs ਦੇ ਨਾਲ, ਕਾਰਜਾਂ ਦੀ ਇੱਕ ਵਿਸ਼ਾਲ ਸ਼੍ਰੇਣੀ ਲਈ ਇੱਕ ਅਨਮੋਲ ਸਾਧਨ ਹੋ ਸਕਦਾ ਹੈ, ਇਹ ਪਛਾਣਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ ਡੂੰਘੀ ਡੋਮੇਨ ਮਹਾਰਤ ਅਜੇ ਵੀ ਜ਼ਰੂਰੀ ਹੋ ਸਕਦੀ ਹੈ। ਵਿਸ਼ੇਸ਼ ਗਿਆਨ ਵਾਲੇ ਮਨੁੱਖੀ ਮਾਹਰ ਲੋੜੀਂਦੀ ਡੂੰਘਾਈ, ਸੂਖਮ ਸਮਝ ਅਤੇ ਸੰਦਰਭ-ਵਿਸ਼ੇਸ਼ ਸੂਝ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦੇ ਹਨ ਜੋ ਇਕੱਲੇ ਐਲਐਲਐਮ ਦੀ ਸਮਰੱਥਾ ਤੋਂ ਪਰੇ ਹੋ ਸਕਦੇ ਹਨ।
ਅਸੀਂ LangChain ਦੇ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਦੇਖਣ ਦੀ ਸਲਾਹ ਦੇਵਾਂਗੇ ਜਾਂ GitHub ਇਸ ਦੇ ਆਮ ਵਰਤੋਂ ਦੇ ਮਾਮਲਿਆਂ ਦੀ ਵਧੇਰੇ ਚੰਗੀ ਤਰ੍ਹਾਂ ਸਮਝ ਲਈ ਰਿਪੋਜ਼ਟਰੀ। ਇਸ ਬੰਡਲ ਦੀ ਇੱਕ ਵੱਡੀ ਤਸਵੀਰ ਲੈਣ ਦੀ ਜ਼ੋਰਦਾਰ ਸਲਾਹ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ।
ਇਹ ਕਿਵੇਂ ਚਲਦਾ ਹੈ?
ਲੈਂਗਚੈਨ ਦੇ ਉਦੇਸ਼ ਅਤੇ ਕੰਮ ਨੂੰ ਸਮਝਣ ਲਈ, ਆਓ ਇੱਕ ਵਿਹਾਰਕ ਉਦਾਹਰਣ ਤੇ ਵਿਚਾਰ ਕਰੀਏ। ਅਸੀਂ ਜਾਣਦੇ ਹਾਂ ਕਿ GPT-4 ਦਾ ਆਮ ਗਿਆਨ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੈ ਅਤੇ ਇਹ ਸਵਾਲਾਂ ਦੀ ਇੱਕ ਵਿਸ਼ਾਲ ਸ਼੍ਰੇਣੀ ਦੇ ਭਰੋਸੇਮੰਦ ਜਵਾਬ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦਾ ਹੈ।
ਹਾਲਾਂਕਿ, ਜੇਕਰ ਅਸੀਂ ਆਪਣੇ ਖੁਦ ਦੇ ਡੇਟਾ ਤੋਂ ਖਾਸ ਜਾਣਕਾਰੀ ਚਾਹੁੰਦੇ ਹਾਂ, ਜਿਵੇਂ ਕਿ ਇੱਕ ਨਿੱਜੀ ਦਸਤਾਵੇਜ਼, ਕਿਤਾਬ, PDF ਫਾਈਲ, ਜਾਂ ਮਲਕੀਅਤ ਡੇਟਾਬੇਸ?
LangChain ਸਾਨੂੰ ਇੱਕ ਨਾਲ ਜੁੜਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਵੱਡੇ ਭਾਸ਼ਾ ਮਾਡਲ ਜਿਵੇਂ ਕਿ ਸਾਡੇ ਆਪਣੇ ਡੇਟਾ ਦੇ ਸਰੋਤਾਂ ਲਈ GPT-4। ਇਹ ਸਿਰਫ਼ ਇੱਕ ਚੈਟ ਇੰਟਰਫੇਸ ਵਿੱਚ ਟੈਕਸਟ ਦੇ ਇੱਕ ਸਨਿੱਪਟ ਨੂੰ ਪੇਸਟ ਕਰਨ ਤੋਂ ਪਰੇ ਹੈ। ਇਸ ਦੀ ਬਜਾਏ, ਅਸੀਂ ਆਪਣੇ ਖੁਦ ਦੇ ਡੇਟਾ ਨਾਲ ਭਰੇ ਇੱਕ ਪੂਰੇ ਡੇਟਾਬੇਸ ਦਾ ਹਵਾਲਾ ਦੇ ਸਕਦੇ ਹਾਂ।
ਇੱਕ ਵਾਰ ਜਦੋਂ ਅਸੀਂ ਲੋੜੀਂਦੀ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰ ਲੈਂਦੇ ਹਾਂ, ਤਾਂ LangChain ਖਾਸ ਕਾਰਵਾਈਆਂ ਕਰਨ ਵਿੱਚ ਸਾਡੀ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਅਸੀਂ ਇਸਨੂੰ ਕੁਝ ਖਾਸ ਵੇਰਵਿਆਂ ਵਾਲੀ ਈਮੇਲ ਭੇਜਣ ਲਈ ਨਿਰਦੇਸ਼ ਦੇ ਸਕਦੇ ਹਾਂ।
ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਅਸੀਂ LangChain ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਪਾਈਪਲਾਈਨ ਪਹੁੰਚ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਾਂ। ਪਹਿਲਾਂ, ਅਸੀਂ ਉਹ ਦਸਤਾਵੇਜ਼ ਲੈਂਦੇ ਹਾਂ ਜੋ ਅਸੀਂ ਚਾਹੁੰਦੇ ਹਾਂ ਭਾਸ਼ਾ ਮਾਡਲ ਹਵਾਲਾ ਦੇਣ ਅਤੇ ਇਸਨੂੰ ਛੋਟੇ ਹਿੱਸਿਆਂ ਵਿੱਚ ਵੰਡਣ ਲਈ। ਇਹ ਟੁਕੜੇ ਫਿਰ ਏਮਬੈਡਿੰਗ ਦੇ ਤੌਰ ਤੇ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਜੋ ਕਿ ਹਨ ਵੈਕਟਰ ਡੇਟਾਬੇਸ ਵਿੱਚ ਟੈਕਸਟ ਦੀ ਵੈਕਟਰ ਪ੍ਰਤੀਨਿਧਤਾਵਾਂ.
ਇਸ ਸੈਟਅਪ ਨਾਲ, ਅਸੀਂ ਭਾਸ਼ਾ ਮਾਡਲ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾ ਸਕਦੇ ਹਾਂ ਜੋ ਇੱਕ ਮਿਆਰੀ ਪਾਈਪਲਾਈਨ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ: ਇੱਕ ਉਪਭੋਗਤਾ ਇੱਕ ਸ਼ੁਰੂਆਤੀ ਸਵਾਲ ਪੁੱਛਦਾ ਹੈ, ਜੋ ਫਿਰ ਭਾਸ਼ਾ ਮਾਡਲ ਨੂੰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ। ਪ੍ਰਸ਼ਨ ਦੀ ਵੈਕਟਰ ਪ੍ਰਤੀਨਿਧਤਾ ਵੈਕਟਰ ਡੇਟਾਬੇਸ ਵਿੱਚ ਸਮਾਨਤਾ ਖੋਜ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ, ਜਾਣਕਾਰੀ ਦੇ ਸੰਬੰਧਿਤ ਹਿੱਸਿਆਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ।
ਇਹ ਭਾਗ ਫਿਰ ਭਾਸ਼ਾ ਮਾਡਲ ਨੂੰ ਵਾਪਸ ਖੁਆਏ ਜਾਂਦੇ ਹਨ, ਇਸ ਨੂੰ ਜਵਾਬ ਦੇਣ ਜਾਂ ਲੋੜੀਂਦੀ ਕਾਰਵਾਈ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦੇ ਹਨ।
LangChain ਉਹਨਾਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਵਿਕਾਸ ਦੀ ਸਹੂਲਤ ਦਿੰਦਾ ਹੈ ਜੋ ਡੇਟਾ-ਜਾਣੂ ਹਨ, ਕਿਉਂਕਿ ਅਸੀਂ ਇੱਕ ਵੈਕਟਰ ਸਟੋਰ ਵਿੱਚ ਆਪਣੇ ਖੁਦ ਦੇ ਡੇਟਾ ਦਾ ਹਵਾਲਾ ਦੇ ਸਕਦੇ ਹਾਂ, ਅਤੇ ਪ੍ਰਮਾਣਿਕ, ਕਿਉਂਕਿ ਉਹ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦੇਣ ਤੋਂ ਇਲਾਵਾ ਕਾਰਵਾਈਆਂ ਕਰ ਸਕਦੇ ਹਨ। ਟੀ
ਉਹ ਬਹੁਤ ਸਾਰੇ ਵਿਹਾਰਕ ਵਰਤੋਂ ਦੇ ਕੇਸਾਂ ਨੂੰ ਖੋਲ੍ਹਦਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਨਿੱਜੀ ਸਹਾਇਤਾ ਵਿੱਚ, ਜਿੱਥੇ ਇੱਕ ਵੱਡਾ ਭਾਸ਼ਾ ਮਾਡਲ ਫਲਾਈਟ ਬੁੱਕ ਕਰਨਾ, ਪੈਸੇ ਟ੍ਰਾਂਸਫਰ ਕਰਨ, ਜਾਂ ਟੈਕਸ-ਸਬੰਧਤ ਮਾਮਲਿਆਂ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਨ ਵਰਗੇ ਕੰਮਾਂ ਨੂੰ ਸੰਭਾਲ ਸਕਦਾ ਹੈ।
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਨਵੇਂ ਵਿਸ਼ਿਆਂ ਦਾ ਅਧਿਐਨ ਕਰਨ ਅਤੇ ਸਿੱਖਣ ਲਈ ਪ੍ਰਭਾਵ ਮਹੱਤਵਪੂਰਨ ਹਨ, ਕਿਉਂਕਿ ਇੱਕ ਭਾਸ਼ਾ ਮਾਡਲ ਇੱਕ ਪੂਰੇ ਸਿਲੇਬਸ ਦਾ ਹਵਾਲਾ ਦੇ ਸਕਦਾ ਹੈ ਅਤੇ ਸਿੱਖਣ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਤੇਜ਼ ਕਰ ਸਕਦਾ ਹੈ। ਕੋਡਿੰਗ, ਡੇਟਾ ਵਿਸ਼ਲੇਸ਼ਣ, ਅਤੇ ਡੇਟਾ ਵਿਗਿਆਨ ਵੀ ਇਹਨਾਂ ਤਰੱਕੀਆਂ ਦੁਆਰਾ ਬਹੁਤ ਪ੍ਰਭਾਵਿਤ ਹੋਣ ਦੀ ਉਮੀਦ ਹੈ।
ਸਭ ਤੋਂ ਦਿਲਚਸਪ ਸੰਭਾਵਨਾਵਾਂ ਵਿੱਚੋਂ ਇੱਕ ਵੱਡੀ ਭਾਸ਼ਾ ਦੇ ਮਾਡਲਾਂ ਨੂੰ ਮੌਜੂਦਾ ਕੰਪਨੀ ਡੇਟਾ, ਜਿਵੇਂ ਕਿ ਗਾਹਕ ਜਾਣਕਾਰੀ ਜਾਂ ਮਾਰਕੀਟਿੰਗ ਡੇਟਾ ਨਾਲ ਜੋੜਨਾ ਹੈ। Meta's API ਜਾਂ Google ਦੇ API ਵਰਗੇ ਉੱਨਤ API ਦੇ ਨਾਲ ਇਹ ਏਕੀਕਰਣ ਡੇਟਾ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਡੇਟਾ ਵਿਗਿਆਨ ਵਿੱਚ ਘਾਤਕ ਤਰੱਕੀ ਦਾ ਵਾਅਦਾ ਕਰਦਾ ਹੈ।
ਇੱਕ ਵੈਬਪੇਜ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾਵੇ (ਡੈਮੋ)
ਵਰਤਮਾਨ ਵਿੱਚ, ਲੈਂਗਚੈਨ ਪਾਈਥਨ ਅਤੇ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਪੈਕੇਜਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਉਪਲਬਧ ਹੈ।
ਅਸੀਂ LangChain ਸੰਕਲਪ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ Streamlit, LangChain, ਅਤੇ OpenAI GPT-3 ਮਾਡਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਪ੍ਰਦਰਸ਼ਨ ਵੈੱਬ ਐਪ ਬਣਾ ਸਕਦੇ ਹਾਂ।
ਪਰ ਪਹਿਲਾਂ, ਸਾਨੂੰ ਸਟ੍ਰੀਮਲਾਈਟ, ਲੈਂਗਚੈਨ, ਅਤੇ ਓਪਨਏਆਈ ਸਮੇਤ ਕੁਝ ਨਿਰਭਰਤਾਵਾਂ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
ਪੂਰਵ-ਲੋੜਾਂ
ਸਟ੍ਰੀਮਲਾਈਟ: ਡੇਟਾ ਸਾਇੰਸ ਨਾਲ ਸਬੰਧਤ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣ ਲਈ ਇੱਕ ਪ੍ਰਸਿੱਧ ਪਾਈਥਨ ਪੈਕੇਜ
OpenAI: OpenAI ਦੇ GPT-3 ਭਾਸ਼ਾ ਮਾਡਲ ਤੱਕ ਪਹੁੰਚ ਦੀ ਲੋੜ ਹੈ।
ਇਹਨਾਂ ਨਿਰਭਰਤਾਵਾਂ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਲਈ, cmd ਵਿੱਚ ਹੇਠ ਲਿਖੀਆਂ ਕਮਾਂਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ:
pip install streamlit
pip install langchain
pip install openai
ਪੈਕੇਜ ਆਯਾਤ ਕਰੋ
ਅਸੀਂ ਲੋੜੀਂਦੇ ਪੈਕੇਜਾਂ ਨੂੰ ਆਯਾਤ ਕਰਕੇ ਸ਼ੁਰੂ ਕਰਦੇ ਹਾਂ, ਜਿਵੇਂ ਕਿ OpenAI, LangChain, ਅਤੇ Streamlit। ਸਾਡੀ ਭਾਸ਼ਾ ਮਾਡਲ ਚੇਨਾਂ ਨੂੰ LangChain ਦੀਆਂ ਤਿੰਨ ਸ਼੍ਰੇਣੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਰਿਭਾਸ਼ਿਤ ਅਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ: LLMCchain, SimpleSequentialChain, ਅਤੇ PromptTemplate।
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
ਮੁੱ Setਲਾ ਸੈਟਅਪ
ਸਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦਾ ਢਾਂਚਾਗਤ ਆਧਾਰ ਫਿਰ ਸਟ੍ਰੀਮਲਿਟ ਸੰਟੈਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੱਖਿਆ ਗਿਆ ਸੀ। ਅਸੀਂ ਐਪ ਨੂੰ "What's TRUE: Useing Simple Sequential Chain" ਦਾ ਸਿਰਲੇਖ ਦਿੱਤਾ ਹੈ ਅਤੇ GitHub ਰਿਪੋਜ਼ਟਰੀ ਲਈ ਇੱਕ ਮਾਰਕਡਾਉਨ ਲਿੰਕ ਸ਼ਾਮਲ ਕੀਤਾ ਹੈ ਜੋ ਐਪ ਦੀ ਪ੍ਰੇਰਣਾ ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ।
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
ਫਰੰਟ-ਐਂਡ ਵਿਜੇਟਸ
ਅਸੀਂ ਸਧਾਰਨ Streamlit ਸੰਟੈਕਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਕੁਝ ਸੰਬੰਧਿਤ ਜਾਣਕਾਰੀ ਦੇ ਨਾਲ ਐਪ ਨੂੰ ਸੈਟ ਅਪ ਕੀਤਾ ਹੈ:
# If an API key has been provided, create an OpenAI language model instance
if API:
llm = OpenAI(temperature=0.7, openai_api_key=API)
else:
# If an API key hasn't been provided, display a warning message
st.warning("Enter your OPENAI API-KEY. Get your OpenAI API key from [here](https://platform.openai.com/account/api-keys).\n")
ਫਰੰਟ-ਐਂਡ ਵਿਜੇਟਸ ਜੋੜਨ ਲਈ
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਸਾਨੂੰ ਸਾਡੇ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਕੋਈ ਵੀ ਸਵਾਲ ਦਰਜ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ ਇੱਕ ਇਨਪੁਟ ਵਿਜੇਟ ਪ੍ਰਦਾਨ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।
# Add a text input box for the user's question
user_question = st.text_input(
"Enter Your Question : ",
placeholder = "Cyanobacteria can perform photosynthetsis , are they considered as plants?",
)
ਸਭ ਹੋ ਗਿਆ! ਜ਼ੰਜੀਰਾਂ ਚੱਲ ਰਹੀਆਂ ਹਨ!
ਅਸੀਂ ਮਿਲ ਕੇ ਆਪਰੇਸ਼ਨ ਦੀਆਂ ਵੱਖ-ਵੱਖ ਚੇਨਾਂ ਨੂੰ ਨਿਯੁਕਤ ਕਰਦੇ ਹਾਂ SimpleSequentialChain
ਉਪਭੋਗਤਾ ਦੇ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ. ਚੇਨ ਨੂੰ ਹੇਠਾਂ ਦਿੱਤੇ ਕ੍ਰਮ ਵਿੱਚ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਉਪਭੋਗਤਾ ਚੁਣਦਾ ਹੈ "Tell me about it"
ਬਟਨ:
if st.button("Tell me about it", type="primary"):
# Chain 1: Generating a rephrased version of the user's question
template = """{question}\n\n"""
prompt_template = PromptTemplate(input_variables=["question"], template=template)
question_chain = LLMChain(llm=llm, prompt=prompt_template)
# Chain 2: Generating assumptions made in the statement
template = """Here is a statement:
{statement}
Make a bullet point list of the assumptions you made when producing the above statement.\n\n"""
prompt_template = PromptTemplate(input_variables=["statement"], template=template)
assumptions_chain = LLMChain(llm=llm, prompt=prompt_template)
assumptions_chain_seq = SimpleSequentialChain(
chains=[question_chain, assumptions_chain], verbose=True
)
# Chain 3: Fact checking the assumptions
template = """Here is a bullet point list of assertions:
{assertions}
For each assertion, determine whether it is true or false. If it is false, explain why.\n\n"""
prompt_template = PromptTemplate(input_variables=["assertions"], template=template)
fact_checker_chain = LLMChain(llm=llm, prompt=prompt_template)
fact_checker_chain_seq = SimpleSequentialChain(
chains=[question_chain, assumptions_chain, fact_checker_chain], verbose=True
)
# Final Chain: Generating the final answer to the user's question based on the facts and assumptions
template = """In light of the above facts, how would you answer the question '{}'""".format(
user_question
)
template = """{facts}\n""" + template
prompt_template = PromptTemplate(input_variables=["facts"], template=template)
answer_chain = LLMChain(llm=llm, prompt=prompt_template)
overall_chain = SimpleSequentialChain(
chains=[question_chain, assumptions_chain, fact_checker_chain, answer_chain],
verbose=True,
)
# Running all the chains on the user's question and displaying the final answer
st.success(overall_chain.run(user_question))
question_chain
: ਜੋ ਕਿ ਸਾਡੀ ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਪਹਿਲਾ ਕਦਮ ਹੈ, ਉਪਭੋਗਤਾ ਦੇ ਪ੍ਰਸ਼ਨ ਨੂੰ ਇਨਪੁਟ ਅਤੇ ਆਉਟਪੁੱਟ ਦੇ ਰੂਪ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਉਪਭੋਗਤਾ ਦੀ ਪੁੱਛਗਿੱਛ ਚੇਨ ਦੇ ਟੈਮਪਲੇਟ ਵਜੋਂ ਕੰਮ ਕਰਦੀ ਹੈ।- ਸਵਾਲ ਨਾਲ ਜੁੜੇ ਇੱਕ ਬਿਆਨ ਦੇ ਆਧਾਰ 'ਤੇ,
assumptions_chain
ਤੋਂ ਆਉਟਪੁੱਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਧਾਰਨਾਵਾਂ ਦੀ ਇੱਕ ਬੁਲੇਟ-ਪੁਆਇੰਟ ਸੂਚੀ ਤਿਆਰ ਕਰਦਾ ਹੈquestion_chain
ਇੰਪੁੱਟ ਦੇ ਤੌਰ 'ਤੇ. ਦLLMChain
ਅਤੇOpenAI
LangChain ਤੋਂ ਮਾਡਲ ਸਟੇਟਮੈਂਟ ਨੂੰ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਗਿਆ ਸੀ। ਉਪਭੋਗਤਾ ਨੂੰ ਉਹਨਾਂ ਧਾਰਨਾਵਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਬਣਾਉਣ ਦਾ ਕੰਮ ਸੌਂਪਿਆ ਗਿਆ ਹੈ ਜੋ ਇਸ ਚੇਨ ਲਈ ਟੈਪਲੇਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਿਆਨ ਤਿਆਰ ਕਰਨ ਲਈ ਕੀਤੀਆਂ ਗਈਆਂ ਸਨ। - ਤੋਂ ਆਉਟਪੁੱਟ ਦੇ ਅਧਾਰ ਤੇ
question_chain
ਅਤੇassumptions_chain
,fact_checker_chain
ਬੁਲੇਟ ਪੁਆਇੰਟਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਦਾਅਵੇ ਦੀ ਇੱਕ ਸੂਚੀ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਦਾਅਵੇ ਤਿਆਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨOpenAI
ਮਾਡਲ ਅਤੇLLMChain
ਲੈਂਗਚੈਨ ਤੋਂ। ਉਪਭੋਗਤਾ ਨੂੰ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਦਾ ਕੰਮ ਸੌਂਪਿਆ ਗਿਆ ਹੈ ਕਿ ਕੀ ਹਰੇਕ ਦਾਅਵਾ ਸਹੀ ਹੈ ਜਾਂ ਗਲਤ ਹੈ ਅਤੇ ਉਹਨਾਂ ਲਈ ਉਚਿਤਤਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜੋ ਹਨ। - The
answer_chain
ਤੋਂ ਆਉਟਪੁੱਟ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈquestion_chain
,assumptions_chain
ਹੈ, ਅਤੇfact_checker_chain
ਪਿਛਲੀਆਂ ਚੇਨਾਂ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਉਪਭੋਗਤਾ ਦੇ ਪ੍ਰਸ਼ਨ ਦਾ ਜਵਾਬ ਬਣਾਉਣ ਲਈ ਇਨਪੁਟਸ ਦੇ ਰੂਪ ਵਿੱਚ। ਇਸ ਲੜੀ ਲਈ ਟੈਂਪਲੇਟ ਬੇਨਤੀ ਕਰਦਾ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਬਣਾਏ ਗਏ ਤੱਥਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਹਿਲੀ ਪੁੱਛਗਿੱਛ ਦਾ ਜਵਾਬ ਦੇਵੇ। - ਪਿਛਲੀਆਂ ਚੇਨਾਂ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੀ ਗਈ ਜਾਣਕਾਰੀ ਦੇ ਅਧਾਰ 'ਤੇ ਉਪਭੋਗਤਾ ਦੀ ਪੁੱਛਗਿੱਛ ਦਾ ਅੰਤਮ ਜਵਾਬ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ, ਅਸੀਂ ਇਹਨਾਂ ਚੇਨਾਂ ਨੂੰ ਸਮੁੱਚੀ ਲੜੀ ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕਰਦੇ ਹਾਂ। ਜ਼ੰਜੀਰਾਂ ਦੇ ਮੁਕੰਮਲ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਵਰਤਦੇ ਹਾਂ
st.success()
ਉਪਭੋਗਤਾ ਨੂੰ ਹੱਲ ਦਿਖਾਉਣ ਲਈ.
ਸਿੱਟਾ
ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਧੇਰੇ ਗੁੰਝਲਦਾਰ ਪਾਈਪਲਾਈਨਾਂ ਬਣਾਉਣ ਲਈ ਅਸੀਂ ਵੱਖ-ਵੱਖ ਭਾਸ਼ਾ ਮਾਡਲ ਕਿਰਿਆਵਾਂ ਨੂੰ ਜੋੜ ਸਕਦੇ ਹਾਂ SimpleSequentialChain
ਲੈਂਗਚੈਨ ਦਾ ਮੋਡੀਊਲ। ਚੈਟਬੋਟਸ, ਸਵਾਲ-ਜਵਾਬ ਪ੍ਰਣਾਲੀਆਂ, ਅਤੇ ਭਾਸ਼ਾ ਅਨੁਵਾਦ ਸਾਧਨਾਂ ਸਮੇਤ NLP ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਇੱਕ ਵਿਸ਼ਾਲ ਕਿਸਮ ਲਈ, ਇਹ ਕਾਫ਼ੀ ਮਦਦਗਾਰ ਹੋ ਸਕਦਾ ਹੈ।
LangChain ਦੀ ਚਮਕ ਇਸਦੀ ਐਬਸਟ੍ਰੈਕਟ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਵਿੱਚ ਪਾਈ ਜਾਂਦੀ ਹੈ, ਜੋ ਉਪਭੋਗਤਾ ਨੂੰ ਭਾਸ਼ਾ ਮਾਡਲਿੰਗ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਬਜਾਏ ਮੌਜੂਦਾ ਮੁੱਦੇ 'ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।
LangChain ਪੂਰਵ-ਸਿਖਿਅਤ ਮਾਡਲਾਂ ਅਤੇ ਟੈਂਪਲੇਟਾਂ ਦੀ ਚੋਣ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਕੇ ਵਧੀਆ ਭਾਸ਼ਾ ਮਾਡਲ ਬਣਾਉਣ ਦੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਵਧੇਰੇ ਉਪਭੋਗਤਾ-ਅਨੁਕੂਲ ਬਣਾਉਂਦਾ ਹੈ।
ਇਹ ਤੁਹਾਨੂੰ ਭਾਸ਼ਾ ਮਾਡਲਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਆਪਣੇ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਧੀਆ-ਟਿਊਨ ਕਰਨ ਦਾ ਵਿਕਲਪ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਭਾਸ਼ਾ ਮਾਡਲਾਂ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ। ਇਹ ਵਧੇਰੇ ਸਟੀਕ, ਡੋਮੇਨ-ਵਿਸ਼ੇਸ਼ ਮਾਡਲਾਂ ਦੇ ਵਿਕਾਸ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ ਜੋ, ਕਿਸੇ ਦਿੱਤੇ ਗਏ ਕੰਮ ਲਈ, ਸਿਖਲਾਈ ਪ੍ਰਾਪਤ ਮਾਡਲਾਂ ਨੂੰ ਪਛਾੜਦੇ ਹਨ।
The SimpleSequentialChain
ਮੋਡੀਊਲ ਅਤੇ LangChain ਦੀਆਂ ਹੋਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਇਸ ਨੂੰ ਆਧੁਨਿਕ NLP ਪ੍ਰਣਾਲੀਆਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਵਿਕਸਤ ਕਰਨ ਅਤੇ ਤਾਇਨਾਤ ਕਰਨ ਲਈ ਇੱਕ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸਾਧਨ ਬਣਾਉਂਦੀਆਂ ਹਨ।
ਕੋਈ ਜਵਾਬ ਛੱਡਣਾ