LangChain.jsは、大規模言語モデル(LLM)と連携するアプリケーションを開発するためのフレームワークです。LLMは、自然言語処理の分野で高い性能を発揮する人工知能の一種です。LangChain.jsは、LLMをデータや環境と結びつけて、より強力で差別化されたアプリケーションを作ることができます。この記事では、LangChain.jsを使ってフロントからWeb記事をロードして要約を書くところを紹介します。
やり方だけ記載するが、ポイントとしては、ロード→分割→LLM投げる という流れが、公式ドキュメントではわからないので、そこを補えればと。
LangChain.jsのインストール
LangChain.jsは、npmパッケージとして提供されています。npmを使ってインストールすることができます。以下は、LangChain.jsをインストールする方法です。
yarn add langchain
Webデータをロードする
indexesを使いロードする
import { CheerioWebBaseLoader } from "langchain/document_loaders/web/cheerio";
const loader = new CheerioWebBaseLoader(url);
const docs = await loader.load();
データの分割
const splitter = new CharacterTextSplitter({
chunkSize: 1000,
chunkOverlap: 100,
});
const docOutput = await splitter.splitDocuments([
docs[0],
]);
ChatGPTに問い合わせする
ここでは、LangChainエージェントからURL参照が必要だったケースとしているので、Chainを利用する。llmは、const llm = new OpenAI({ で作ったもの。
const chainA = loadQAStuffChain(llm);
const res = await chainA.call({
input_documents: docOutput,
question: '要約して',
});
console.log(res)
これでWEBの内容を要約してくれる。
注意点
Google検索結果などは、ページが大きすぎてToken上限にひっかかり、検索結果をそのままChatGPTに投げて解析してもらうという運用は今の所できなそう。