WatsonxToolkit 통합
WatsonxToolkit 통합 (WatsonxToolkit integration)
LangChain JavaScript로 WatsonxToolkit 툴과 통합해요.
이 문서는 WatsonxToolkit 툴킷 시작을 도와드려요. 모든 WatsonxToolkit 기능과 구성에 대한 자세한 문서는 API reference를 참고하세요.
툴킷에는 다음 툴이 포함돼요:
| 이름 | 설명 |
|---|---|
GoogleSearch |
온라인 트렌드, 뉴스, 최신 이벤트, 실시간 정보 또는 연구 주제를 검색해요. |
WebCrawler |
웹페이지를 요약해야 할 때 유용해요. 웹 검색에는 사용하지 마세요. |
SDXLTurbo |
Stability.ai를 사용해 텍스트에서 이미지를 생성해요. |
Weather |
도시의 날씨를 찾아요. |
RAGQuery |
벡터 인덱스의 문서를 검색해요. |
통합 세부 정보 (Integration details)
| 클래스 | 패키지 | PY 지원 | 버전 |
|---|---|---|---|
WatsonxToolkit |
@langchain/ibm |
✅ |
설정 (Setup)
개별 툴 실행의 자동 추적을 받으려면 LangSmith API 키를 설정하세요:
export LANGSMITH_TRACING="true"
export LANGSMITH_API_KEY="your-api-key"
설치 (Installation)
이 툴킷은 @langchain/ibm 패키지에 있어요:
yarn add @langchain/ibm @langchain/core
pnpm add @langchain/ibm @langchain/core
인스턴스화 (Instantiation)
이제 툴킷을 인스턴스화할 수 있어요:
import { WatsonxToolkit } from "@langchain/ibm";
import "dotenv/config"
const toolkit = await WatsonxToolkit.init({
version: '2024-05-31',
serviceUrl: process.env.WATSONX_AI_SERVICE_URL
});
[Module: null prototype] { default: {} }
툴 (Tools)
사용 가능한 툴 보기:
const tools = toolkit.getTools();
console.log(tools.map((tool) => ({
name: tool.name,
description: tool.description,
})))
[
{
name: "GoogleSearch",
description: "Search for online trends, news, current events, real-time information, or research topics."
},
{
name: "WebCrawler",
description: "Useful for when you need to summarize a webpage. Do not use for Web search."
},
{
name: "SDXLTurbo",
description: "Generate an image from text using Stability.ai"
},
{ name: "Weather", description: "Find the weather for a city." },
{
name: "RAGQuery",
description: "Search the documents in a vector index."
}
]
툴에 대한 자세한 정보는 watsonx.ai API docs를 방문하세요.
에이전트 내에서 사용 (Use within an agent)
createAgent를 사용하려면 langchain 패키지를 설치하세요:
yarn add langchain @langchain/ibm @langchain/core
pnpm add langchain @langchain/ibm @langchain/core
그런 다음 에이전트에 사용할 LLM을 인스턴스화하세요:
import { ChatWatsonx } from "@langchain/ibm";
const llm = new ChatWatsonx({
version: '2024-05-31',
serviceUrl: process.env.WATSONX_AI_SERVICE_URL,
model: 'ibm/granite-3-8b-instruct',
projectId: process.env.WATSONX_AI_PROJECT_ID
});
import { createAgent } from "langchain";
const agent = createAgent({ model: llm, tools });
const exampleQuery = "Who won F1 championship in 2022?"
const stream = await agent.streamEvents(
{ messages: [{ role: "user", content: exampleQuery }] },
{ version: "v3" },
);
for await (const snapshot of stream.values) {
const lastMsg = snapshot.messages[snapshot.messages.length - 1];
if (lastMsg.tool_calls?.length) {
console.dir(lastMsg.tool_calls, { depth: null });
} else if (lastMsg.content) {
console.log(lastMsg.content);
}
}
Who won F1 championship in 2022?
[
{
name: "GoogleSearch",
args: { input: "F1 championship 2022" },
type: "tool_call",
id: "chatcmpl-tool-9da3456b9bbc475fb822296fdb8353a8"
}
]
[{"title":"2022 DRIVER STANDINGS",...}]
Max Verstappen won the 2022 F1 Championship, driving for Red Bull Racing. He claimed his second title at the Japanese Grand Prix.
API reference
모든 WatsonxToolkit 기능과 구성에 대한 자세한 문서는 API reference를 참고하세요.
출처: 문서
본문
WatsonxToolkit는 @langchain/ibm 패키지에 포함된 툴킷으로, GoogleSearch·WebCrawler·SDXLTurbo·Weather·RAGQuery 툴을 제공해요. WatsonxToolkit.init()으로 인스턴스화하고, getTools()로 툴을 가져와 createAgent 기반 에이전트에서 사용할 수 있어요.