JavaScriptのLangchainの完全なガイド
langchainjs:AI駆動型のJavaScript言語モデルとエージェントを構築するための強力なフレームワーク
コアポイント:
- Langchainjsは、開発者がWebアプリケーションにシームレスに統合されたAI駆動型の言語モデルとエージェントを構築および実験できるようにする強力なJavaScriptフレームワークです。 このフレームワークにより、さまざまなツールやデータソースを活用して、インターネット検索や数学的計算などの複雑な言語タスクを実行できるエージェントの作成により、応答の精度と関連性が向上します。
- Langchainは、単純なテキスト出力の言語モデル、インタラクティブな会話のためのチャットモデル、テキストを数値ベクトルに変換するための埋め込みモデルなど、さまざまなモデルをサポートし、それによりさまざまなNLPアプリケーションの開発を促進します。
- テキストデータは、カスタマイズ可能なチャンキングメソッドを使用して効率的に管理および処理でき、大きなテキストを処理するときに最適なパフォーマンスとコンテキスト関連性を確保できます。
- Openaiモデルの使用に加えて、Langchainは他の大手言語モデル(LLMS)およびAIサービスと互換性があり、プロジェクトにおけるさまざまなAIの統合を調査する開発者に柔軟性と拡張機能を提供します。
前提条件: この記事を学習するには、新しいフォルダーを作成してLangchain NPMパッケージをインストールします。
新しいフォルダーを作成した後、
接尾辞を使用して、新しいJSモジュールファイルを作成します(たとえば、npm install -S langchain
.mjs
test1.mjs
エージェント:
Langchainでは、エージェントはテキストを理解して生成できるエンティティです。これらのエージェントは、特定の動作とデータソースを構成でき、さまざまな言語関連のタスクを実行するようにトレーニングされているため、さまざまなアプリケーション向けの多機能ツールになります。
langchainエージェントを作成:代理店は、「ツール」を使用して必要なデータを収集し、適切な応答を作成するように構成できます。以下の例をご覧ください。 SERP API(インターネット検索API)を使用して、質問または入力に関連する情報を検索して応答します。また、ツールを使用して数学操作を実行します。たとえば、単位を変換したり、2つの値間でパーセンテージの変更を見つけたりします。
Langchainには、LLM、チャットモデル、およびテキスト埋め込みモデルの3種類のモデルがあります。いくつかの例を使用して、各タイプのモデルを探索しましょう。
言語モデル:
Langchainは、JavaScriptで言語モデルを使用して、テキスト入力に基づいてテキスト出力を生成する方法を提供します。チャットモデルほど複雑ではなく、単純な入出力言語タスクに最適です。 Openaiを使用した例は次のとおりです
モデルを使用してすべての赤いベリーをリストします。この例では、LLMの事実上の精度を与えるために温度を0に設定します。
チャットモデル: より複雑な回答と会話が必要な場合は、チャットモデルを使用する必要があります。技術的には、チャットモデルは言語モデルとどのように違いますか? Langchainドキュメントの言葉で:
これにより、浮動小数点数の長いリストが返されます:
これは、埋め込みを使用して「最も重い動物とは何ですか?」
チャンク:
文字によるセグメント セグメント:
特定の長さの文字でテキストを厳密に分割したい場合は、 を使用できます。
ブロックサイズとオーバーラップ:
これらの例を見ると、パラメーターが何を意味するのか、パフォーマンスにどのように影響するかを疑問に思い始めたかもしれません。わかりました、2つのことを簡単に説明させてください。
チャンクサイズは、各チャンクの文字の数を決定します。チャンクサイズが大きいほど、チャンクのデータが多いほど、Langchainを処理して出力を生成するのに時間がかかります。逆も同様です。
章は、基本的に複数のLLM関数をリンクしてより複雑なタスクを実行します。そうしないと、単純なLLM入力&GTを使用することはできません。クールな例を見てみましょう:
Langchainのさまざまな機能の例としてOpenaiモデルを使用していたとしても、Openaiモデルに限定されません。他の多くのLLMおよびAIサービスでLangchainを使用できます。 LangchainとJavaScript統合LLMの完全なリストをドキュメントに見つけることができます。
たとえば、
JavaScriptでLangchainを実験して、幸せなコーディングと実験をお祈りします!この記事が気に入っている場合は、PythonでLangchainを使用することに関する記事を読むこともできます。 以上がJavaScriptのLangchainの完全なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。npm install -S langchain
modelName: "gpt-3.5-turbo"
およびtemperature: 0
を使用してモデル変数を作成した後、作成されたモデルと指定されたツール(SERPAPIおよび電卓)を組み合わせたエグゼキューターを作成します。入力では、LLMにインターネットを検索するように依頼し(Serpapiを使用)、2010年以来どのアーティスト(NASまたはBoldy James)がリリースされているかを調べ、違いを示す(計算機を使用)。 import { initializeAgentExecutorWithOptions } from "langchain/agents";
import { ChatOpenAI } from "langchain/chat_models/openai";
import { SerpAPI } from "langchain/tools";
import { Calculator } from "langchain/tools/calculator";
process.env["OPENAI_API_KEY"] = "YOUR_OPENAI_KEY"
process.env["SERPAPI_API_KEY"] = "YOUR_SERPAPI_KEY"
const tools = [new Calculator(), new SerpAPI()];
const model = new ChatOpenAI({ modelName: "gpt-3.5-turbo", temperature: 0 });
const executor = await initializeAgentExecutorWithOptions(tools, model, {
agentType: "openai-functions",
verbose: false,
});
const result = await executor.run("通过搜索互联网,查找Boldy James自2010年以来发行了多少张专辑,以及Nas自2010年以来发行了多少张专辑?找出谁发行了更多专辑,并显示百分比差异。");
console.log(result);
<code>// 输出将取决于互联网搜索结果</code>
gpt-3.5-turbo
import { OpenAI } from "langchain/llms/openai";
const llm = new OpenAI({
openAIApiKey: "YOUR_OPENAI_KEY",
model: "gpt-3.5-turbo",
temperature: 0
});
const res = await llm.call("列出所有红色的浆果");
console.log(res);
これは単純な(非常に役に立たないが興味深い)JavaScriptチャットモデルスクリプト:
ご覧のとおり、コードは最初にシステムメッセージを送信し、チャットボットに常に韻で答える詩的なアシスタントになるように指示し、それからチャットボットに、より良いテニスプレーヤーを教えてくれるようにチャットボットに伝える人間のメッセージを送信します。 de Jokovic、Federer、またはNadal。このチャットボットモデルを実行すると、次のようなものが表示されます。
<code>// 输出将列出红色的浆果</code>
import { ChatOpenAI } from "langchain/chat_models/openai";
import { PromptTemplate } from "langchain/prompts";
const chat = new ChatOpenAI({
openAIApiKey: "YOUR_OPENAI_KEY",
model: "gpt-3.5-turbo",
temperature: 0
});
const prompt = PromptTemplate.fromTemplate(`你是一个诗意的助手,总是用押韵来回答:{question}`);
const runnable = prompt.pipe(chat);
const response = await runnable.invoke({ question: "谁更好,德约科维奇、费德勒还是纳达尔?" });
console.log(response);
<code>// 输出将是一个用押韵回答的问题</code>
import { OpenAIEmbeddings } from "langchain/embeddings/openai";
process.env["OPENAI_API_KEY"] = "YOUR_OPENAI_KEY"
const embeddings = new OpenAIEmbeddings();
const res = await embeddings.embedQuery("谁创造了万维网?");
console.log(res)
npm install -S langchain
import { initializeAgentExecutorWithOptions } from "langchain/agents";
import { ChatOpenAI } from "langchain/chat_models/openai";
import { SerpAPI } from "langchain/tools";
import { Calculator } from "langchain/tools/calculator";
process.env["OPENAI_API_KEY"] = "YOUR_OPENAI_KEY"
process.env["SERPAPI_API_KEY"] = "YOUR_SERPAPI_KEY"
const tools = [new Calculator(), new SerpAPI()];
const model = new ChatOpenAI({ modelName: "gpt-3.5-turbo", temperature: 0 });
const executor = await initializeAgentExecutorWithOptions(tools, model, {
agentType: "openai-functions",
verbose: false,
});
const result = await executor.run("通过搜索互联网,查找Boldy James自2010年以来发行了多少张专辑,以及Nas自2010年以来发行了多少张专辑?找出谁发行了更多专辑,并显示百分比差异。");
console.log(result);
n
RecursiveCharacterTextSplitter
この例では、テキストは100文字ごとに分割され、チャンクは15文字に重なります。 <code>// 输出将取决于互联网搜索结果</code>
ブロックオーバーラップは、ブロック間で情報を共有して、コンテキストを共有するコンテンツです。チャンクのオーバーラップが高いほど、チャンクが低くなるほど、チャンク間で共有されるコンテキストが少なくなります。通常、良いチャンキングのオーバーラップは、チャンキングサイズの約10%〜20%ですが、目的のチャンキングオーバーラップはテキストタイプとユースケースによって異なります。
import { OpenAI } from "langchain/llms/openai";
const llm = new OpenAI({
openAIApiKey: "YOUR_OPENAI_KEY",
model: "gpt-3.5-turbo",
temperature: 0
});
const res = await llm.call("列出所有红色的浆果");
console.log(res);
npm install cohere-ai
<code>// 输出将列出红色的浆果</code>
import { ChatOpenAI } from "langchain/chat_models/openai";
import { PromptTemplate } from "langchain/prompts";
const chat = new ChatOpenAI({
openAIApiKey: "YOUR_OPENAI_KEY",
model: "gpt-3.5-turbo",
temperature: 0
});
const prompt = PromptTemplate.fromTemplate(`你是一个诗意的助手,总是用押韵来回答:{question}`);
const runnable = prompt.pipe(chat);
const response = await runnable.invoke({ question: "谁更好,德约科维奇、费德勒还是纳达尔?" });
console.log(response);

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
