Jigsawstack 통합

Jigsawstack 통합 (Jigsawstack integration)

LangChain JavaScript로 Jigsawstack 툴과 통합해요.

JigsawStack 툴은 에이전트에게 다음 기능을 제공해요:

  • JigsawStackAIScrape: 고급 AI를 사용해 웹 콘텐츠를 스크랩해요.
  • JigsawStackAISearch: AI 기반 웹 검색을 수행하고 고품질 결과를 가져와요.
  • JigsawStackSpeechToText - Whisper large V3 AI 모델을 사용해 비디오·오디오 파일을 전사해요.
  • JigsawStackVOCR - 프롬프트를 사용해 이미지에서 데이터를 인식·설명·추출해요.
  • JigsawStackTextToSQL - 텍스트에서 의미론적으로 올바른 SQL 쿼리를 생성해요.

설정 (Setup)

  • 계정을 만드세요 (무료로 시작)
  • API 키를 생성하고 가져오세요

자격 증명 (Credentials)

export JIGSAWSTACK_API_KEY="your-api-key"

단독 사용법 (Usage, standalone)

LangChain 패키지 설치에 대한 일반적인 지침은 [이 섹션](/oss/javascript/langchain/install)을 참고하세요.
npm install @langchain/openai
import {
  JigsawStackAIScrape,
  JigsawStackAISearch,
  JigsawStackSpeechToText,
  JigsawStackVOCR,
  JigsawStackTextToSQL,
} from "@langchain/jigsawstack";

export const run = async () => {
  // AI Scrape Tool
  const aiScrapeTool = new JigsawStackAIScrape({
    params: {
      element_prompts: ["Pro plan"],
    },
  });
  const result = await aiScrapeTool.invoke("https://jigsawstack.com/pricing");

  console.log({ result });

  // AI Search Tool

  const aiSearchTool = new JigsawStackAISearch();
  const doc = await aiSearchTool.invoke("The leaning tower of pisa");
  console.log({ doc });

  // VOCR Tool

  const vocrTool = new JigsawStackVOCR({
    params: {
      prompt: "Describe the image in detail",
    },
  });
  const data = await vocrTool.invoke(
    "https://rogilvkqloanxtvjfrkm.supabase.co/storage/v1/object/public/demo/Collabo%201080x842.jpg?t=2024-03-22T09%3A22%3A48.442Z"
  );

  console.log({ data });

  // Speech-to-Text Tool
  const sttTool = new JigsawStackSpeechToText();
  await sttTool.invoke(
    "https://rogilvkqloanxtvjfrkm.supabase.co/storage/v1/object/public/demo/Video%201737458382653833217.mp4?t=2024-03-22T09%3A50%3A49.894"
  );

  // Text-to-SQL Tool
  const sqlTool = new JigsawStackTextToSQL({
    params: {
      sql_schema:
        "CREATE TABLE Transactions (transaction_id INT PRIMARY KEY, user_id INT NOT NULL,total_amount DECIMAL(10, 2 NOT NULL, transaction_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,status VARCHAR(20) DEFAULT 'pending',FOREIGN KEY(user_id) REFERENCES Users(user_id))",
    },
  });

  await sqlTool.invoke(
    "Generate a query to get transactions that amount exceed 10000 and sort by when created"
  );
};

에이전트 내 사용법 (Usage, in an Agent)

import { ChatOpenAI } from "@langchain/openai";
import { initializeAgentExecutorWithOptions } from "@langchain/classic/agents";
import {
  JigsawStackAIScrape,
  JigsawStackAISearch,
  JigsawStackVOCR,
  JigsawStackSpeechToText,
  JigsawStackTextToSQL,
} from "@langchain/jigsawstack";

const model = new ChatOpenAI({
  model: "gpt-5.4-mini",
  temperature: 0,
});

//  add the tools that you need
const tools = [
  new JigsawStackAIScrape(),
  new JigsawStackAISearch(),
  new JigsawStackVOCR(),
  new JigsawStackSpeechToText(),
  new JigsawStackTextToSQL(),
];

const executor = await initializeAgentExecutorWithOptions(tools, model, {
  agentType: "zero-shot-react-description",
  verbose: true,
});

const res = await executor.invoke({
  input: `Kokkalo Restaurant Santorini`,
});

console.log(res.output);

출처: 문서

본문

JigsawStack 툴은 AI 스크랩·검색·음성 텍스트 변환·이미지 OCR·텍스트-투-SQL의 다섯 가지 기능을 제공해요. @langchain/jigsawstack 패키지에서 각 툴 클래스를 가져와 단독으로 호출하거나, initializeAgentExecutorWithOptions로 에이전트에 툴로 등록해 사용할 수 있어요. 사용 전에 JIGSAWSTACK_API_KEY 환경 변수로 API 키를 설정해야 해요.

더 알아보기 (Learn more)