ਚੈਟ ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰਾਂ ਅਤੇ ਮਾਡਲ ਵਿਚਕਾਰ ਸਭ ਕੁਝ ਹੈ। respond ਫ਼ੰਕਸ਼ਨ ਨਾਲ NuiChatSession ਬਣਾਓ, ਅਤੇ ਬਾਕੀ <nui-chat> ਕਰਦਾ ਹੈ: ਇਹ ਜਵਾਬ ਨੂੰ Markdown ਵਜੋਂ ਸਟ੍ਰੀਮ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਤੱਕ ਵਰਤੋਂਕਾਰ ਉੱਪਰ ਸਕ੍ਰੋਲ ਨਾ ਕਰੇ, ਉਸ ਦੇ ਨਾਲ ਹੇਠਾਂ ਸਕ੍ਰੋਲ ਕਰਦਾ ਹੈ, ਅਤੇ ਜਵਾਬ ਆਉਂਦੇ ਸਮੇਂ ਭੇਜਣ ਵਾਲੇ ਬਟਨ ਨੂੰ ਰੋਕਣ ਵਾਲਾ ਬਟਨ ਬਣਾ ਦਿੰਦਾ ਹੈ।

respond ਟੈਕਸਟ, ਪ੍ਰੌਮਿਸ, async function* ਜਾਂ Observable ਵਾਪਸ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਕੋਈ ਵੀ API ਫ਼ਿੱਟ ਬੈਠਦਾ ਹੈ। ਟੈਕਸਟ ਤੋਂ ਇਲਾਵਾ, ਜਵਾਬ ਵਿੱਚ ਮਾਡਲ ਦੀ ਰੀਜ਼ਨਿੰਗ, ਉਸ ਦੀਆਂ ਟੂਲ ਕਾਲਾਂ (ਤੁਹਾਡੇ ਟੈਂਪਲੇਟਾਂ ਨਾਲ ਬਣੀਆਂ) ਅਤੇ ਉਸ ਦੇ ਵਰਤੇ ਸਰੋਤ ਵੀ ਹੋ ਸਕਦੇ ਹਨ। nuiEventStream ਉਹ ਸਰਵਰ-ਸੈਂਟ ਇਵੈਂਟ ਪੜ੍ਹਦਾ ਹੈ, ਜੋ ਜ਼ਿਆਦਾਤਰ ਮਾਡਲ API ਸਟ੍ਰੀਮ ਕਰਦੇ ਹਨ।

ਕੁਝ ਵੀ ਗੁਆਚਦਾ ਨਹੀਂ: ਦੁਬਾਰਾ ਮੰਗਿਆ ਜਵਾਬ ਜਾਂ ਐਡਿਟ ਕੀਤਾ ਸਵਾਲ ਪੁਰਾਣੇ ਦੇ ਨਾਲ ਇੱਕ ਨਵਾਂ ਵਰਜ਼ਨ ਬਣ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਗੱਲਬਾਤ ਹਰ ਸ਼ਾਖਾ ਸੰਭਾਲ ਕੇ ਰੱਖਦੀ ਹੈ। ਸਕ੍ਰੀਨ ਰੀਡਰ ਹਰ ਜਵਾਬ ਪੂਰਾ ਹੋਣ ’ਤੇ ਹੀ ਸੁਣਾਉਂਦੇ ਹਨ, ਸ਼ਬਦ-ਦਰ-ਸ਼ਬਦ ਨਹੀਂ।

ਇੱਕ ਅਸਿਸਟੈਂਟ

ਸੁਝਾਅ ਗੱਲਬਾਤ ਸ਼ੁਰੂ ਕਰਦੇ ਹਨ। ਜਵਾਬ Markdown ਵਜੋਂ ਸਟ੍ਰੀਮ ਹੁੰਦੇ ਹਨ; ਉਨ੍ਹਾਂ ਨੂੰ ਰੋਕੋ, ਦੁਬਾਰਾ ਮੰਗੋ, ਰੇਟ ਕਰੋ, ਜਾਂ ਆਪਣਾ ਸਵਾਲ ਐਡਿਟ ਕਰੋ। attach ਚੁਣੀਆਂ, ਪੇਸਟ ਕੀਤੀਆਂ ਜਾਂ ਡ੍ਰੌਪ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ ਲੈਂਦਾ ਹੈ।

ਰੀਜ਼ਨਿੰਗ, ਟੂਲ ਅਤੇ ਸਰੋਤ

ਡੈਲਟਾ ਜਵਾਬ ਵਿੱਚ ਮਾਡਲ ਦੀ ਰੀਜ਼ਨਿੰਗ, ਟੂਲ ਕਾਲਾਂ ਅਤੇ ਸਰੋਤ ਜੋੜਦੇ ਹਨ। nuiChatTool ਮੌਸਮ ਵਾਲੇ ਟੂਲ ਨੂੰ ਕਾਰਡ ਵਜੋਂ ਬਣਾਉਂਦਾ ਹੈ; ਬਾਕੀ ਟੂਲ ਆਪਣੇ ਇਨਪੁੱਟ ਅਤੇ ਆਊਟਪੁੱਟ ਸਮੇਤ ਸਿਮਟੇ ਰਹਿੰਦੇ ਹਨ।

ਸਰਵਰ ਤੋਂ ਸਟ੍ਰੀਮਿੰਗ

nuiEventStream OpenAI ਵਰਗੀ ਇਵੈਂਟ ਸਟ੍ਰੀਮ ਪੜ੍ਹਦਾ ਹੈ, ਅਤੇ NuiChatError ਆਪਣਾ ਸੁਨੇਹਾ ਦਿਖਾਉਂਦਾ ਹੈ। all() ਸਾਰੇ ਵਰਜ਼ਨਾਂ ਸਮੇਤ ਗੱਲਬਾਤ ਸੰਭਾਲਦਾ ਹੈ।