UNPKG

dtamind-components

Version:

Apps integration for Dtamind. Contain Nodes and Credentials.

118 lines 4.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lodash_1 = require("lodash"); const llamaindex_1 = require("llamaindex"); const utils_1 = require("../../../../src/utils"); const EvaluationRunTracerLlama_1 = require("../../../../evaluation/EvaluationRunTracerLlama"); class AnthropicAgent_LlamaIndex_Agents { constructor(fields) { this.label = 'Anthropic Agent'; this.name = 'anthropicAgentLlamaIndex'; this.version = 1.0; this.type = 'AnthropicAgent'; this.category = 'Agents'; this.icon = 'Anthropic.svg'; this.description = `Agent that uses Anthropic Claude Function Calling to pick the tools and args to call using LlamaIndex`; this.baseClasses = [this.type, ...(0, utils_1.getBaseClasses)(llamaindex_1.AnthropicAgent)]; this.tags = ['LlamaIndex']; this.inputs = [ { label: 'Tools', name: 'tools', type: 'Tool_LlamaIndex', list: true }, { label: 'Memory', name: 'memory', type: 'BaseChatMemory' }, { label: 'Anthropic Claude Model', name: 'model', type: 'BaseChatModel_LlamaIndex' }, { label: 'System Message', name: 'systemMessage', type: 'string', rows: 4, optional: true, additionalParams: true } ]; this.sessionId = fields?.sessionId; } async init() { return null; } async run(nodeData, input, options) { const memory = nodeData.inputs?.memory; const model = nodeData.inputs?.model; const systemMessage = nodeData.inputs?.systemMessage; const prependMessages = options?.prependMessages; let tools = nodeData.inputs?.tools; tools = (0, lodash_1.flatten)(tools); const chatHistory = []; if (systemMessage) { chatHistory.push({ content: systemMessage, role: 'system' }); } const msgs = (await memory.getChatMessages(this.sessionId, false, prependMessages)); for (const message of msgs) { if (message.type === 'apiMessage') { chatHistory.push({ content: message.message, role: 'assistant' }); } else if (message.type === 'userMessage') { chatHistory.push({ content: message.message, role: 'user' }); } } const agent = new llamaindex_1.AnthropicAgent({ tools, llm: model, chatHistory: chatHistory, verbose: process.env.DEBUG === 'true' ? true : false }); // these are needed for evaluation runs await EvaluationRunTracerLlama_1.EvaluationRunTracerLlama.injectEvaluationMetadata(nodeData, options, agent); let text = ''; const usedTools = []; const response = await agent.chat({ message: input, chatHistory, verbose: process.env.DEBUG === 'true' ? true : false }); if (response.sources.length) { for (const sourceTool of response.sources) { usedTools.push({ tool: sourceTool.tool?.metadata.name ?? '', toolInput: sourceTool.input, toolOutput: sourceTool.output }); } } if (Array.isArray(response.response.message.content) && response.response.message.content.length > 0) { text = response.response.message.content[0].text; } else { text = response.response.message.content; } await memory.addChatMessages([ { text: input, type: 'userMessage' }, { text: text, type: 'apiMessage' } ], this.sessionId); return usedTools.length ? { text: text, usedTools } : text; } } module.exports = { nodeClass: AnthropicAgent_LlamaIndex_Agents }; //# sourceMappingURL=AnthropicAgent_LlamaIndex.js.map