$lang['tuto'] = "ಟ್ಯುಟೋರಿಯಲ್"; ?> Ollama LLM ಮತ್ತು ಕಸ್ಟಮ್

Ollama LLM ಮತ್ತು ಕಸ್ಟಮ್ ಟೂಲ್‌ನೊಂದಿಗೆ Langchain.js ನ ToolCallingAgentOutputParser ದೋಷವನ್ನು ಸರಿಪಡಿಸಲಾಗುತ್ತಿದೆ

Temp mail SuperHeros
Ollama LLM ಮತ್ತು ಕಸ್ಟಮ್ ಟೂಲ್‌ನೊಂದಿಗೆ Langchain.js ನ ToolCallingAgentOutputParser ದೋಷವನ್ನು ಸರಿಪಡಿಸಲಾಗುತ್ತಿದೆ
Ollama LLM ಮತ್ತು ಕಸ್ಟಮ್ ಟೂಲ್‌ನೊಂದಿಗೆ Langchain.js ನ ToolCallingAgentOutputParser ದೋಷವನ್ನು ಸರಿಪಡಿಸಲಾಗುತ್ತಿದೆ

Langchain.js ನಲ್ಲಿ ToolCallingAgentOutputParser ದೋಷಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಸರಿಪಡಿಸುವುದು

Langchain.js v2 ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಡೆವಲಪರ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಒಲ್ಲಮಾದಂತಹ ಕಸ್ಟಮ್ ಪರಿಕರಗಳು ಮತ್ತು ಭಾಷಾ ಮಾದರಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಮರ್ಥ ಏಜೆಂಟ್‌ಗಳನ್ನು ರಚಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿರುತ್ತಾರೆ. ಆದಾಗ್ಯೂ, ಈ ಘಟಕಗಳನ್ನು ಏಕೀಕರಿಸುವುದು ಕೆಲವೊಮ್ಮೆ ದೋಷಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು ಅದು ಡೀಬಗ್ ಮಾಡಲು ಕಷ್ಟಕರವಾಗಿರುತ್ತದೆ.

ಅಂತಹ ಒಂದು ದೋಷವೆಂದರೆ "ToolCallingAgentOutputParser ನಲ್ಲಿನ ಪಾರ್ಸ್ ಫಲಿತಾಂಶವು ChatGeneration ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ," ಇದು ಏಜೆಂಟ್ ಚೌಕಟ್ಟಿನೊಳಗೆ ಕಸ್ಟಮ್ ಟೂಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವಾಗ ಸಂಭವಿಸಬಹುದು. ಏಜೆಂಟ್ ಮತ್ತು ಟೂಲ್ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಈ ಸಮಸ್ಯೆಯ ಮೂಲ ಕಾರಣವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ.

ಈ ಲೇಖನವು Langchain ನ createToolCallingAgent ಮತ್ತು Ollama ಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಖ್ಯೆಯ ಇನ್‌ಪುಟ್‌ಗೆ 2 ಅನ್ನು ಸೇರಿಸುವ ಕಸ್ಟಮ್ ಟೂಲ್‌ನ ಸರಳ ಅನುಷ್ಠಾನವನ್ನು ಪರಿಶೋಧಿಸುತ್ತದೆ. ದೋಷ ಮತ್ತು ಅದರ ಸಂದರ್ಭವನ್ನು ವಿಶ್ಲೇಷಿಸುವ ಮೂಲಕ, ಅದನ್ನು ಹೇಗೆ ನಿವಾರಿಸುವುದು ಎಂಬುದನ್ನು ನಾವು ಉತ್ತಮವಾಗಿ ಗ್ರಹಿಸಬಹುದು.

ಕೆಳಗಿನ ವಿಭಾಗಗಳು ಕೋಡ್ ಮೂಲಕ ನಿಮಗೆ ಮಾರ್ಗದರ್ಶನ ನೀಡುತ್ತವೆ, ದೋಷವನ್ನು ವಿವರಿಸುತ್ತವೆ ಮತ್ತು ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಪರಿಹಾರಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ. ನೀವು Langchain.js ಗೆ ಹೊಸಬರಾಗಿರಲಿ ಅಥವಾ ಅನುಭವಿಯಾಗಿರಲಿ, ಈ ಸಮಸ್ಯೆಯನ್ನು ಸಮರ್ಥವಾಗಿ ನಿಭಾಯಿಸಲು ಈ ಮಾರ್ಗದರ್ಶಿ ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ಆಜ್ಞೆ ಬಳಕೆಯ ಉದಾಹರಣೆ
tool() Langchain.js ನಿಂದ ಈ ಕಾರ್ಯವು ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ವಹಿಸುವ ಕಸ್ಟಮ್ ಉಪಕರಣವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಈ ಲೇಖನದಲ್ಲಿ, ಸುಲಭವಾಗಿ ಕರೆಯಬಹುದಾದ ರಚನೆಯಲ್ಲಿ ತರ್ಕವನ್ನು ಸುತ್ತುವ, ಇನ್‌ಪುಟ್ ಸಂಖ್ಯೆಗೆ 2 ಅನ್ನು ಸೇರಿಸುವ ಸಾಧನವನ್ನು ರಚಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
z.object() ಜೋಡ್ ಲೈಬ್ರರಿಯ ಒಂದು ಭಾಗ, ಲ್ಯಾಂಗ್‌ಚೈನ್‌ನಲ್ಲಿ ಸ್ಕೀಮಾ ಮೌಲ್ಯೀಕರಣಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಇದು ಕಸ್ಟಮ್ ಟೂಲ್‌ಗೆ ಇನ್‌ಪುಟ್ ಸಂಖ್ಯೆಯಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯದಲ್ಲಿ ದೋಷಗಳನ್ನು ತಡೆಯಲು ಬಲವಾದ ಇನ್‌ಪುಟ್ ಮೌಲ್ಯೀಕರಣವನ್ನು ಒದಗಿಸುತ್ತದೆ.
createToolCallingAgent() ಈ ಆಜ್ಞೆಯು ಬಳಕೆದಾರರ ಪ್ರಶ್ನೆಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಪರಿಕರಗಳನ್ನು ಕರೆಯಬಹುದಾದ ಏಜೆಂಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ. ಒಲ್ಲಮಾದಂತಹ ಭಾಷಾ ಮಾದರಿಗಳೊಂದಿಗೆ ಪರಿಕರಗಳನ್ನು ಸಂಯೋಜಿಸಲು ಇದು ಪ್ರಮುಖವಾಗಿದೆ, ಇದು ಸಂಭಾಷಣೆಯ ಸಮಯದಲ್ಲಿ ಪರಿಕರಗಳನ್ನು ಆಹ್ವಾನಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ.
ChatPromptTemplate.fromMessages() ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್‌ಗಳೊಂದಿಗೆ ಚಾಟ್ ಪ್ರಾಂಪ್ಟ್ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ರಚಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಟೆಂಪ್ಲೇಟ್ ಏಜೆಂಟ್ ಬಳಸಲು ವಿವಿಧ ರೀತಿಯ ಸಂದೇಶಗಳನ್ನು (ಸಿಸ್ಟಮ್, ಮಾನವ, ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್‌ಗಳು) ಆಯೋಜಿಸುತ್ತದೆ, ಅದರ ಸಂಭಾಷಣೆಯ ಹರಿವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
MessagesPlaceholder ಚಾಟ್ ಇತಿಹಾಸ ಅಥವಾ ಏಜೆಂಟ್ ಸ್ಕ್ರ್ಯಾಚ್‌ಪ್ಯಾಡ್‌ನಂತಹ ಡೈನಾಮಿಕ್ ವಿಷಯಕ್ಕಾಗಿ ಪ್ರಾಂಪ್ಟ್ ಟೆಂಪ್ಲೇಟ್‌ನಲ್ಲಿ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ಸಂಭಾಷಣೆಯ ಸಂದರ್ಭವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯದಲ್ಲಿ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಚುಚ್ಚಲು ಅನುಮತಿಸುತ್ತದೆ.
AgentExecutor() ಈ ವರ್ಗವು ಏಜೆಂಟ್‌ಗಳು ಮತ್ತು ಪರಿಕರಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಉದಾಹರಣೆಯಲ್ಲಿ, ಏಜೆಂಟ್ ಮೂಲಕ ಪ್ರಶ್ನೆಯನ್ನು ಚಲಾಯಿಸಲು ಮತ್ತು ಉಪಕರಣದ ಔಟ್‌ಪುಟ್‌ನಿಂದ ಫಲಿತಾಂಶವನ್ನು ಸಂಗ್ರಹಿಸಲು ಇದು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
await agentExecutor.invoke() ಏಜೆಂಟ್ ಮೂಲಕ ಪ್ರಶ್ನೆಯನ್ನು ಚಲಾಯಿಸಲು ಮತ್ತು ಅಸಮಕಾಲಿಕವಾಗಿ ಫಲಿತಾಂಶಕ್ಕಾಗಿ ಕಾಯಲು ಬಳಸಲಾಗುತ್ತದೆ. ಭಾಷಾ ಮಾದರಿಗಳು ಮತ್ತು ಪರಿಕರಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ಇದು ನಿರ್ಣಾಯಕವಾಗಿದೆ, ಏಕೆಂದರೆ ಇದು ಮುಂದುವರೆಯುವ ಮೊದಲು ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಕೋಡ್ ಕಾಯುತ್ತಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
try-catch ಅಮಾನ್ಯವಾದ ಇನ್‌ಪುಟ್ ಪ್ರಕಾರಗಳನ್ನು ಹಿಡಿಯಲು ಈ ದೋಷ-ನಿರ್ವಹಣೆಯ ರಚನೆಯನ್ನು ಕಸ್ಟಮ್ ಪರಿಕರದಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ. ವಿನಾಯಿತಿಗಳನ್ನು ಹಿಡಿಯುವ ಮೂಲಕ, ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಹರಿವನ್ನು ಮುರಿಯದೆ ಸಿಸ್ಟಮ್ ಸಹಾಯಕ ದೋಷ ಸಂದೇಶಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
expect() ಚಾಯ್ ಸಮರ್ಥನೆ ಲೈಬ್ರರಿಯಿಂದ, ಕಸ್ಟಮ್ ಟೂಲ್‌ನ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಯೂನಿಟ್ ಪರೀಕ್ಷೆಯಲ್ಲಿ ನಿರೀಕ್ಷೆ() ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಉಪಕರಣವು ನಿರೀಕ್ಷೆಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆಯೇ ಎಂದು ಪರೀಕ್ಷಿಸಲು ಇದು ಅತ್ಯಗತ್ಯ.

Langchain.js ನಲ್ಲಿ ಕಸ್ಟಮ್ ಟೂಲ್ ಮತ್ತು ಏಜೆಂಟ್ ದೋಷ ನಿರ್ವಹಣೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು

ಒದಗಿಸಿದ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾವು Langchain.js v2 ನೊಂದಿಗೆ ಸಂಯೋಜಿಸುವ ಕಸ್ಟಮ್ ಪರಿಕರವನ್ನು ರಚಿಸಲು ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದೇವೆ ಒಲ್ಲಮ ಭಾಷಾ ಮಾದರಿ. ಸರಳವಾದ ಗಣಿತದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ವಹಿಸುವುದು ಉಪಕರಣದ ಮುಖ್ಯ ಉದ್ದೇಶವಾಗಿದೆ: ಇನ್ಪುಟ್ ಮೌಲ್ಯಕ್ಕೆ 2 ಅನ್ನು ಸೇರಿಸುವುದು. ಉಪಕರಣವನ್ನು ಲ್ಯಾಂಗ್‌ಚೈನ್ ಬಳಸಿ ನಿರ್ಮಿಸಲಾಗಿದೆ ಉಪಕರಣ ಫಂಕ್ಷನ್, ಇದು ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕಾರ್ಯಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ, ಅದನ್ನು ಏಜೆಂಟ್ ಮೂಲಕ ಆಹ್ವಾನಿಸಬಹುದು. ಉಪಕರಣವು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಇನ್‌ಪುಟ್ ಸ್ಕೀಮಾವನ್ನು Zod ಲೈಬ್ರರಿಯೊಂದಿಗೆ ಮೌಲ್ಯೀಕರಿಸಲಾಗುತ್ತದೆ, ಇನ್‌ಪುಟ್ ಮಾನ್ಯ ಸಂಖ್ಯೆ ಎಂದು ಖಾತರಿಪಡಿಸುತ್ತದೆ. ಇದು ಸರಿಯಾದ ದೋಷ ನಿರ್ವಹಣೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ ಮತ್ತು ಅಮಾನ್ಯವಾದ ಇನ್‌ಪುಟ್‌ಗಳ ಕಾರಣದಿಂದ ಉಪಕರಣವು ವಿಫಲಗೊಳ್ಳುವುದನ್ನು ತಡೆಯುತ್ತದೆ.

ಕಸ್ಟಮ್ ಟೂಲ್ ಅನ್ನು ನಂತರ ಬಳಸಿಕೊಂಡು ಏಜೆಂಟ್ ಆಗಿ ಸಂಯೋಜಿಸಲಾಗುತ್ತದೆ CreateToolCallingAgent ಕಾರ್ಯ. ಈ ಆಜ್ಞೆಯು ಅಗತ್ಯವಿದ್ದಾಗ ಉಪಕರಣವನ್ನು ಕರೆ ಮಾಡಲು ಏಜೆಂಟ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಮತ್ತು ಏಜೆಂಟ್ ಒಲಮಾ ಮಾದರಿಯಿಂದ ಚಾಲಿತವಾಗಿದೆ, ಇದು ಪ್ರತಿಕ್ರಿಯೆಗಳ ಸೃಜನಶೀಲತೆಯನ್ನು ನಿಯಂತ್ರಿಸಲು ತಾಪಮಾನದಂತಹ ನಿರ್ದಿಷ್ಟ ನಿಯತಾಂಕಗಳೊಂದಿಗೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಲ್ಪಟ್ಟಿದೆ. ಏಜೆಂಟ್ ಮತ್ತು ಟೂಲ್ ನಡುವಿನ ಸುಗಮ ಸಂವಹನವನ್ನು ಸುಲಭಗೊಳಿಸಲು, ಚಾಟ್ ಪ್ರಾಂಪ್ಟ್ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಸಿಸ್ಟಮ್ ಸಂದೇಶಗಳು, ಮಾನವ ಇನ್‌ಪುಟ್ ಮತ್ತು ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್‌ಗಳಂತಹ ವಿವಿಧ ರೀತಿಯ ಸಂದೇಶಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಮೂಲಕ ಈ ಟೆಂಪ್ಲೇಟ್ ಸಂಭಾಷಣೆಯನ್ನು ಆಯೋಜಿಸುತ್ತದೆ. ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್‌ಗಳು, ಉದಾಹರಣೆಗೆ ಸಂದೇಶಗಳು ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್, ಚಾಟ್ ಇತಿಹಾಸದಂತಹ ಅಂಶಗಳೊಂದಿಗೆ ಸಂಭಾಷಣೆಯನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿರಲು ಅನುಮತಿಸಿ.

ಈ ಉದಾಹರಣೆಯಲ್ಲಿ ತಿಳಿಸಲಾದ ಪ್ರಮುಖ ಸಮಸ್ಯೆಗಳೆಂದರೆ ಲ್ಯಾಂಗ್‌ಚೈನ್ ಏಜೆಂಟ್‌ನ ಔಟ್‌ಪುಟ್ ಪಾರ್ಸಿಂಗ್‌ನಲ್ಲಿ ದೋಷ ನಿರ್ವಹಣೆಯಾಗಿದೆ. "ParseResult on ToolCallingAgentOutputParser ChatGeneration ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ" ಎಂಬ ದೋಷ ಸಂದೇಶವು ಪಾರ್ಸರ್‌ನಿಂದ ನಿರೀಕ್ಷಿಸಲಾದ ಔಟ್‌ಪುಟ್ ಮತ್ತು ಉತ್ಪತ್ತಿಯಾಗುವ ನಿಜವಾದ ಔಟ್‌ಪುಟ್‌ನ ನಡುವಿನ ಹೊಂದಾಣಿಕೆಯಿಲ್ಲ. ಈ ದೋಷವನ್ನು ನಿರ್ವಹಿಸಲು, ಕಸ್ಟಮ್ ಟೂಲ್ ಅನ್ನು ದೃಢವಾದ ತರ್ಕದಲ್ಲಿ ಸುತ್ತಿಡಲಾಗುತ್ತದೆ, ಎಲ್ಲಾ ಇನ್‌ಪುಟ್‌ಗಳು ಮತ್ತು ಔಟ್‌ಪುಟ್‌ಗಳು ನಿರೀಕ್ಷಿತ ಸ್ವರೂಪಗಳಿಗೆ ಅನುಗುಣವಾಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಇದನ್ನು ಮತ್ತಷ್ಟು ನಿರ್ವಹಿಸುತ್ತದೆ ಏಜೆಂಟ್ ಎಕ್ಸಿಕ್ಯೂಟರ್ ವರ್ಗ, ಇದು ಏಜೆಂಟ್ ಮತ್ತು ಟೂಲ್‌ಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಸಂಘಟಿಸುತ್ತದೆ, ಪ್ರಶ್ನೆ ಮತ್ತು ಟೂಲ್ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಸರಿಯಾಗಿ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.

ಅಂತಿಮವಾಗಿ, ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಅಸಮಕಾಲಿಕ ಮರಣದಂಡನೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತವೆ ನಿರೀಕ್ಷಿಸಿ, ಇತರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸದೆ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸಿಸ್ಟಮ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಪ್ರತಿಕ್ರಿಯೆಯು ನಿಖರ ಮತ್ತು ಸಮಯೋಚಿತವಾಗಿದೆ ಎಂದು ಖಾತ್ರಿಪಡಿಸಿಕೊಳ್ಳುವ ಮೊದಲು ಏಜೆಂಟ್ ತನ್ನ ಫಲಿತಾಂಶವನ್ನು ಹಿಂದಿರುಗಿಸಲು ಸಾಧನಕ್ಕಾಗಿ ಕಾಯುತ್ತಾನೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಉಪಕರಣದ ಕಾರ್ಯವನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು ಘಟಕ ಪರೀಕ್ಷೆಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಸರಿಯಾದ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಸ್ಥಿರವಾಗಿ ಉತ್ಪಾದಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಈ ಪರೀಕ್ಷೆಗಳು ಉಪಕರಣದ ಗಣಿತದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ದೃಢೀಕರಿಸುವುದು ಮಾತ್ರವಲ್ಲದೆ ಅದು ಅಮಾನ್ಯವಾದ ಇನ್‌ಪುಟ್ ಅನ್ನು ಎಷ್ಟು ಚೆನ್ನಾಗಿ ನಿಭಾಯಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಪರಿಹಾರದ ಒಟ್ಟಾರೆ ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ಈ ಮಾಡ್ಯುಲರ್ ಮತ್ತು ದೋಷ-ನಿರೋಧಕ ವಿನ್ಯಾಸವು ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಮರುಬಳಕೆ ಮಾಡುವಂತೆ ಮಾಡುತ್ತದೆ ಮತ್ತು Langchain.js ನಲ್ಲಿನ ವಿವಿಧ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಪರಿಣಾಮಕಾರಿಯಾಗಿರುತ್ತದೆ.

ಮಾಡ್ಯುಲರ್ ಅಪ್ರೋಚ್‌ನೊಂದಿಗೆ Langchain.js ದೋಷವನ್ನು ಸರಿಪಡಿಸಲಾಗುತ್ತಿದೆ

ಪರಿಹಾರ 1: ಮಾಡ್ಯುಲರ್ ವಿಧಾನದೊಂದಿಗೆ JavaScript ಮತ್ತು Langchain.js ಮತ್ತು Ollama LLM ಬಳಸಿಕೊಂಡು ದೋಷ ನಿರ್ವಹಣೆ

import { tool } from "@langchain/core/tools";
import { z } from "zod";
import { Ollama } from "@langchain/ollama";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { createToolCallingAgent } from "langchain/agents";
import { AgentExecutor } from "langchain/agents";
// Initialize LLM with Ollama
const llm = new Ollama({
    model: "llama3",
    temperature: 0.7,
});
// Custom tool to add 2 to the input number
const magicTool = tool(
    async (input) => {
        return input + 2;
    },
    {
        name: "magic_function",
        description: "Applies a magic function to an input",
        schema: z.object({ input: z.number() }),
    };
);
const tools = [magicTool];
// Setup ChatPromptTemplate with placeholders
const prompt = ChatPromptTemplate.fromMessages([
    ["system", "You are a helpful assistant called iHelp"],
    ["placeholder", "{chat_history}"],
    ["human", "{input}"],
    ["placeholder", "{agent_scratchpad}"],
]);
// Agent configuration
const agent = createToolCallingAgent({ llm, tools, prompt });
// Execute agent query
const agentExecutor = new AgentExecutor({ agent, tools });
const query = "What is the value of magic_function(3)?";
await agentExecutor.invoke({ input: query });

Langchain.js ಏಜೆಂಟ್‌ಗಾಗಿ ವರ್ಧಿತ ದೋಷ ನಿರ್ವಹಣೆ

ಪರಿಹಾರ 2: Langchain.js ನಲ್ಲಿ ಕಸ್ಟಮ್ ಟೂಲ್‌ನ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು ಘಟಕ ಪರೀಕ್ಷೆಗಳೊಂದಿಗೆ ನಿರ್ವಹಿಸುವಲ್ಲಿ ದೋಷ

import { tool } from "@langchain/core/tools";
import { z } from "zod";
import { Ollama } from "@langchain/ollama";
import { createToolCallingAgent } from "langchain/agents";
import { AgentExecutor } from "langchain/agents";
// Initialize LLM with Ollama
const llm = new Ollama({ model: "llama3", temperature: 0.7 });
// Custom tool with added error handling
const magicTool = tool(
    async (input) => {
        try {
            if (typeof input !== "number") throw new Error("Invalid input type!");
            return input + 2;
        } catch (err) {
            return err.message;
        }
    },
    {
        name: "magic_function",
        description: "Adds 2 to input and handles errors",
        schema: z.object({ input: z.number() }),
    }
);
const tools = [magicTool];
// Agent and execution
const agent = createToolCallingAgent({ llm, tools });
const agentExecutor = new AgentExecutor({ agent, tools });
const query = "magic_function('abc')"; // Test with invalid input
await agentExecutor.invoke({ input: query });
// Unit test example
import { expect } from "chai";
it("should return 5 when input is 3", async () => {
    const result = await magicTool(3);
    expect(result).to.equal(5);
});

Langchain.js ಮತ್ತು Ollama LLM ಇಂಟಿಗ್ರೇಶನ್‌ನಲ್ಲಿ ಏಜೆಂಟ್‌ಗಳ ಪಾತ್ರವನ್ನು ಅನ್ವೇಷಿಸುವುದು

Langchain.js ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಸಂಯೋಜಿಸುವುದು ಏಜೆಂಟ್ಗಳು ಒಲಮಾದಂತಹ ಪರಿಕರಗಳು ಮತ್ತು ಭಾಷಾ ಮಾದರಿಗಳೊಂದಿಗೆ ಡೈನಾಮಿಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವಲ್ಲಿ ನಿರ್ಣಾಯಕ ಅಂಶವಾಗಿದೆ. ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಕಸ್ಟಮ್ ಟೂಲ್ ಅನ್ನು ಭಾಷಾ ಮಾದರಿಗೆ ಸಂಪರ್ಕಿಸಲು ಏಜೆಂಟ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಇದು ಹೆಚ್ಚು ಸಂವಾದಾತ್ಮಕ ಅಥವಾ ಉತ್ಪಾದಕ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಏಜೆಂಟ್‌ಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ, ಡೆವಲಪರ್‌ಗಳು ವರ್ಕ್‌ಫ್ಲೋಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಬಹುದು, ಅಲ್ಲಿ ಮಾದರಿಯು ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ ಆದರೆ ಲೆಕ್ಕಾಚಾರಗಳು ಅಥವಾ ಡೇಟಾ ಸಂಸ್ಕರಣೆಯನ್ನು ನಿರ್ವಹಿಸಲು ಸಾಧನಗಳನ್ನು ಸಹ ಆಹ್ವಾನಿಸುತ್ತದೆ.

ಈ ಏಕೀಕರಣದ ಪ್ರಮುಖ ಅಂಶವೆಂದರೆ CreateToolCallingAgent ಕಾರ್ಯ. ಈ ಕಾರ್ಯವು ಅಗತ್ಯವಿದ್ದಾಗ ನಿರ್ದಿಷ್ಟ ಸಾಧನಗಳನ್ನು ಪ್ರಚೋದಿಸಲು ಏಜೆಂಟ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಕಾರ್ಯಗಳನ್ನು ನಿಖರವಾಗಿ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಪೂರ್ಣಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಟೂಲ್ ಅನ್ನು ರಚಿಸುವುದರ ಮೇಲೆ ಪ್ರಾಥಮಿಕ ಗಮನವು ಹೆಚ್ಚಾಗಿದ್ದಾಗ, ಏಜೆಂಟ್‌ನ ಕೆಲಸದ ಹರಿವನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು ಮತ್ತು ಪಾರ್ಸಿಂಗ್ ದೋಷಗಳನ್ನು ತಪ್ಪಿಸುವುದು ಹೇಗೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಅಷ್ಟೇ ಮುಖ್ಯವಾಗಿದೆ. "ParseResult on ToolCallingAgentOutputParser ChatGeneration ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ" ನಂತಹ ದೋಷಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಏಜೆಂಟ್‌ನ ಔಟ್‌ಪುಟ್ ಪಾರ್ಸಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗದಿದ್ದಾಗ ಸಂಭವಿಸುತ್ತದೆ, ಏಜೆಂಟ್‌ನ ಔಟ್‌ಪುಟ್ ಮತ್ತು ನಿರೀಕ್ಷಿತ ಸ್ವರೂಪದ ನಡುವೆ ಸರಿಯಾದ ಜೋಡಣೆಯ ಅಗತ್ಯವನ್ನು ಎತ್ತಿ ತೋರಿಸುತ್ತದೆ.

ಪ್ರಾಂಪ್ಟ್ ಟೆಂಪ್ಲೇಟ್‌ಗಳ ಬಳಕೆ, ಉದಾಹರಣೆಗೆ ChatPromptTemplate, ಡೈನಾಮಿಕ್ ಸಂದೇಶಗಳು ಮತ್ತು ಸಂದರ್ಭದ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್‌ಗಳನ್ನು ಅನುಮತಿಸುವ ಮೂಲಕ ಪರಸ್ಪರ ಕ್ರಿಯೆಯನ್ನು ಮತ್ತಷ್ಟು ಉತ್ಕೃಷ್ಟಗೊಳಿಸುತ್ತದೆ. ಇದು ಚಾಟ್ ಇತಿಹಾಸ ಅಥವಾ ಏಜೆಂಟ್‌ನ ಸ್ಕ್ರ್ಯಾಚ್‌ಪ್ಯಾಡ್ ಅನ್ನು ಆಧರಿಸಿ ತನ್ನ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಸರಿಹೊಂದಿಸಲು ಏಜೆಂಟ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಪ್ರಾಂಪ್ಟ್ ಟೆಂಪ್ಲೇಟ್‌ಗಳನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದು ಮತ್ತು ಏಜೆಂಟ್‌ನ ಔಟ್‌ಪುಟ್‌ಗಳನ್ನು ಸರಿಯಾಗಿ ಪಾರ್ಸ್ ಮಾಡಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದರಿಂದ ನಿಮ್ಮ Langchain.js ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡುವ ಮೂಲಕ ಅನೇಕ ಸಾಮಾನ್ಯ ದೋಷಗಳನ್ನು ತಡೆಯಬಹುದು.

Langchain.js, ಏಜೆಂಟ್‌ಗಳು ಮತ್ತು ಪರಿಕರಗಳ ಕುರಿತು ಪದೇ ಪದೇ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಗಳು

  1. Langchain.js ನಲ್ಲಿ ಏಜೆಂಟ್ ಎಂದರೇನು?
  2. ಏಜೆಂಟ್ ಎನ್ನುವುದು ಬಳಕೆದಾರರ ಪ್ರಶ್ನೆಯ ಆಧಾರದ ಮೇಲೆ ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಪರಿಕರಗಳು ಮತ್ತು ಭಾಷಾ ಮಾದರಿಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವ ಒಂದು ಅಂಶವಾಗಿದೆ. ಇದು ಬಳಸುತ್ತದೆ createToolCallingAgent ಉಪಕರಣಗಳನ್ನು ಪ್ರಚೋದಿಸುವ ಕಾರ್ಯ.
  3. "ParseResult on ToolCallingAgentOutputParser" ದೋಷವನ್ನು ನೀವು ಹೇಗೆ ಪರಿಹರಿಸುತ್ತೀರಿ?
  4. ಏಜೆಂಟ್‌ನ ಔಟ್‌ಪುಟ್ ಪಾರ್ಸರ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗದಿದ್ದಾಗ ಈ ದೋಷ ಸಂಭವಿಸುತ್ತದೆ. ಪಾರ್ಸರ್ ಏನನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತದೆಯೋ ಅದಕ್ಕೆ ಔಟ್‌ಪುಟ್ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು a ಅನ್ನು ಬಳಸಿ ChatGeneration ಔಟ್ಪುಟ್ ಸ್ವರೂಪ.
  5. ನ ಉದ್ದೇಶವೇನು AgentExecutor?
  6. ದಿ AgentExecutor ಏಜೆಂಟ್ ಮತ್ತು ಅದರ ಪರಿಕರಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, Langchain.js ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಸಂಕೀರ್ಣವಾದ ವರ್ಕ್‌ಫ್ಲೋಗಳನ್ನು ಚಲಾಯಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
  7. ಹೇಗೆ ಮಾಡುತ್ತದೆ ChatPromptTemplate ಕೆಲಸ?
  8. ChatPromptTemplate ರಚನಾತ್ಮಕ ಸ್ವರೂಪದಲ್ಲಿ ಚಾಟ್ ಸಂದೇಶಗಳನ್ನು ಆಯೋಜಿಸುತ್ತದೆ, ಸಂಭಾಷಣೆಯ ಹರಿವಿನಲ್ಲಿ ಸೇರಿಸಲು ಚಾಟ್ ಇತಿಹಾಸ ಮತ್ತು ಏಜೆಂಟ್ ಸ್ಕ್ರ್ಯಾಚ್‌ಪ್ಯಾಡ್‌ನಂತಹ ಡೈನಾಮಿಕ್ ವಿಷಯವನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
  9. ಏಕೆ ಆಗಿದೆ Zod ಉಪಕರಣದಲ್ಲಿ ಬಳಸಲಾಗಿದೆಯೇ?
  10. Zod ಇನ್‌ಪುಟ್ ಮೌಲ್ಯೀಕರಣಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಕಸ್ಟಮ್ ಟೂಲ್‌ಗೆ ಇನ್‌ಪುಟ್ ಸರಿಯಾದ ಪ್ರಕಾರವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ (ಉದಾ., ಸಂಖ್ಯೆ), ಇದು ದೋಷಗಳ ಸಾಧ್ಯತೆಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.

Langchain.js ನಲ್ಲಿ ದೋಷ ನಿರ್ವಹಣೆಯ ಅಂತಿಮ ಆಲೋಚನೆಗಳು

"ParseResult on ToolCallingAgentOutputParser ChatGeneration ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ" ದೋಷವನ್ನು ಪರಿಹರಿಸಲು ನಿಮ್ಮ ಏಜೆಂಟ್‌ನ ಔಟ್‌ಪುಟ್ ಮತ್ತು ಅದರ ಪಾರ್ಸಿಂಗ್ ನಿರೀಕ್ಷೆಗಳ ನಡುವೆ ಎಚ್ಚರಿಕೆಯ ಜೋಡಣೆಯ ಅಗತ್ಯವಿದೆ. ಸರಿಯಾದ ವಿಧಾನದಿಂದ, ಈ ದೋಷವನ್ನು ತಪ್ಪಿಸಬಹುದು.

ಊರ್ಜಿತಗೊಳಿಸುವಿಕೆಗಾಗಿ Zod ನಂತಹ ಸೂಕ್ತವಾದ ಪರಿಕರಗಳನ್ನು ಬಳಸುವುದರ ಮೂಲಕ ಮತ್ತು Ollama ನೊಂದಿಗೆ ನಿರ್ಮಿಸಲಾದ ಏಜೆಂಟ್‌ಗಳು ಇನ್‌ಪುಟ್‌ಗಳು ಮತ್ತು ಔಟ್‌ಪುಟ್‌ಗಳನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ, ನೀವು ಪಾರ್ಸಿಂಗ್ ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸದೆಯೇ Langchain.js ನಲ್ಲಿ ದೃಢವಾದ ಪರಿಹಾರಗಳನ್ನು ರಚಿಸಬಹುದು.

Langchain.js ದೋಷ ಪರಿಹಾರಕ್ಕಾಗಿ ಮೂಲಗಳು ಮತ್ತು ಉಲ್ಲೇಖಗಳು
  1. ಅಧಿಕೃತ Langchain ದಸ್ತಾವೇಜನ್ನು ವಿವರಿಸುತ್ತದೆ, ಇದು ಉಪಕರಣ ರಚನೆ ಮತ್ತು ಏಜೆಂಟ್ ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳ ಒಳನೋಟಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಲ್ಯಾಂಗ್ಚೈನ್ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಒಳಗೆ.
  2. Langchain.js ನಲ್ಲಿ ಇನ್‌ಪುಟ್ ಮೌಲ್ಯೀಕರಣ ಮತ್ತು ಅದರ ಅಪ್ಲಿಕೇಶನ್‌ಗಾಗಿ Zod ನ ಬಳಕೆಯನ್ನು ಮತ್ತಷ್ಟು ವಿವರಿಸುತ್ತದೆ. ಝೋಡ್ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಒಳಗೆ.
  3. ಒಲ್ಲಮಾ ಭಾಷಾ ಮಾದರಿ ಮತ್ತು ಕಸ್ಟಮ್ ಏಜೆಂಟ್‌ಗಳಲ್ಲಿ ಅದರ ಅನುಷ್ಠಾನವನ್ನು ವಿವರಿಸುತ್ತದೆ. ಒಲ್ಲಮಾ LLM ಒಳಗೆ.