UNPKG

n8n-nodes-openai-analytics

Version:
78 lines 3.45 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateCategoryEmbedding = void 0; const openai_1 = __importDefault(require("openai")); /** * 카테고리 임베딩 생성 함수 * 카테고리 문자열에 대한 임베딩 벡터를 생성하여 UI 필드에 저장 */ async function generateCategoryEmbedding(index, fieldData, path) { try { // 현재 선택된 임베딩 모델 가져오기 const embeddingModel = this.getNodeParameter('embeddingModel', index); // 현재 카테고리 텍스트 가져오기 const categoryText = fieldData.category; if (!categoryText || categoryText.trim() === '') { throw new Error('카테고리 텍스트가 비어 있습니다. 임베딩을 생성하려면 카테고리를 입력하세요.'); } // OpenAI API 초기화 const authentication = this.getNodeParameter('authentication', 0, 'openAIAnalyticsApi'); let openai; if (authentication === 'openAIAnalyticsApi') { const credentials = await this.getCredentials('openAIAnalyticsApi'); openai = new openai_1.default({ apiKey: credentials.apiKey, organization: credentials.organizationId, baseURL: credentials.baseUrl || 'https://api.openai.com/v1', }); } else { const credentials = await this.getCredentials('openAiApi'); openai = new openai_1.default({ apiKey: credentials.apiKey, organization: credentials.organization, baseURL: credentials.baseURL || 'https://api.openai.com/v1', }); } // 임베딩 생성 요청 const embeddingResponse = await openai.embeddings.create({ model: embeddingModel, input: categoryText, }); // 임베딩 벡터 추출 const embeddingVector = embeddingResponse.data[0].embedding; // 결과 반환 (필드 업데이트) return { ...fieldData, embedding: embeddingVector, }; } catch (error) { // 에러 처리 console.error('임베딩 생성 오류:', error); throw new Error(`카테고리 임베딩 생성 중 오류가 발생했습니다: ${error.message}`); } } exports.generateCategoryEmbedding = generateCategoryEmbedding; __exportStar(require("./file"), exports); __exportStar(require("./report"), exports); __exportStar(require("./text"), exports); __exportStar(require("./thread"), exports); //# sourceMappingURL=index.js.map