suchen
HeimWeb-Frontendjs-TutorialEine vollständige Anleitung zu Langchain in JavaScript

Langchainjs: Ein leistungsstarker Rahmen für den Aufbau von AI-gesteuerten JavaScript-Sprachmodellen und -agenten

A Complete Guide to LangChain in JavaScript

Kernpunkte:

  • Langchainjs ist ein leistungsstarkes JavaScript-Framework, mit dem Entwickler mit KI-gesteuerten Sprachmodellen und Agenten, die nahtlos in Webanwendungen integriert sind, erstellen und experimentieren können.
  • Dieses Framework ermöglicht die Erstellung von Agenten, die verschiedene Tools und Datenquellen nutzen können, um komplexe Sprachaufgaben wie Internetsuche und mathematische Berechnungen auszuführen, wodurch die Genauigkeit und Relevanz von Antworten verbessert wird.
  • Langchain unterstützt eine Vielzahl von Modellen, darunter Sprachmodelle für einfache Textausgabe, Chat -Modelle für interaktive Gespräche und eingebettete Modelle zum Konvertieren von Text in numerische Vektoren, wodurch die Entwicklung verschiedener NLP -Anwendungen erleichtert wird.
  • Textdaten können durch anpassbare Chunking -Methoden effizient verwaltet und verarbeitet werden, um eine optimale Leistung und kontextbezogene Relevanz bei der Verarbeitung großer Text sicherzustellen.
  • Zusätzlich zur Verwendung des OpenAI -Modells ist Langchain mit anderen großsprachigen Modellen (LLMs) und KI -Diensten kompatibel und bietet Entwicklern, die die Integration verschiedener AIs in ihren Projekten untersuchen, Flexibilitäts- und Erweiterungsfunktionen.

Dieser Leitfaden taucht in die Schlüsselkomponenten von Langchain ein und zeigt, wie sie ihre Leistung in JavaScript nutzen können. Langchainjs ist ein gemeinsames JavaScript -Framework, mit dem Entwickler und Forscher Sprachmodelle und -agenten erstellen, experimentieren und analysieren können. Es bietet Enthusiasten für natürliche Sprachverarbeitung (NLP) mit einer Fülle von Fähigkeiten, vom Erstellen benutzerdefinierter Modelle bis hin zum effizienten Manipulieren von Textdaten. Als JavaScript -Framework können Entwickler ihre KI -Anwendungen einfach in Webanwendungen integrieren.

Voraussetzungen:

Um diesen Artikel zu erfahren, erstellen Sie einen neuen Ordner und installieren Sie das Langchain NPM -Paket:

npm install -S langchain

Verwenden Sie nach dem Erstellen eines neuen Ordners das Suffix .mjs, um eine neue JS -Moduldatei zu erstellen (z. B. test1.mjs).

Agenten:

In Langchain ist ein Agent eine Entität, die Text verstehen und generieren kann. Diese Agenten können bestimmte Verhaltensweisen und Datenquellen konfigurieren und sind geschult, um verschiedene sprachbezogene Aufgaben auszuführen, wodurch sie zu einem multifunktionalen Tool für eine Vielzahl von Anwendungen sind.

Erstellen Sie Langchain -Agent:

Agenturen können so konfiguriert werden, dass "Tools" verwendet werden, um die erforderlichen Daten zu sammeln und eine gute Antwort zu entwickeln. Bitte beachten Sie das Beispiel unten. Es verwendet die SERP -API (eine Internet -Such -API), um nach Informationen zu suchen, die sich auf eine Frage oder Eingabe beziehen und darauf reagieren. Es verwendet auch das llm-math -Tool, um mathematische Operationen auszuführen - zum Beispiel um Konvertieren von Einheiten oder das Finden einer prozentualen Änderung zwischen zwei Werten:

npm install -S langchain

Nach dem Erstellen von Modellvariablen mit modelName: "gpt-3.5-turbo" und temperature: 0 erstellen wir einen Executor, der das erstellte Modell mit den angegebenen Tools (SerpAPI und Taschenrechner) kombiniert. In der Eingabe habe ich LLM gebeten, das Internet (unter Verwendung von Serpapi) zu durchsuchen und herauszufinden, welcher Künstler seit 2010 mehr Alben veröffentlicht hat - NAS oder Boldy James - und den prozentualen Unterschied (unter Verwendung von Taschenrechner) zeigen.

In diesem Beispiel muss ich LLM explizit sagen, dass es "über die Suche nach dem Internet ..." dazu gebracht wird, das Internet bis heute Daten zu erhalten, anstatt nur OpenAI -Standard für 2021 zu verwenden.

Die Ausgabe ist wie folgt:

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);

Modelle (Modelle):

Es gibt drei Arten von Modellen in Langchain: LLM, Chat -Modell und Texteinbettungsmodell. Erforschen wir jeden Modelltyp mit einigen Beispielen.

Sprachmodell:

Langchain bietet eine Möglichkeit, Sprachmodelle in JavaScript zu verwenden, um die Textausgabe basierend auf der Texteingabe zu generieren. Es ist nicht so komplex wie das Chat-Modell und eignet sich am besten für einfache Sprachaufgaben in Eingabe-Output. Hier ist ein Beispiel mit OpenAI:

<code>// 输出将取决于互联网搜索结果</code>

Wie Sie sehen können, wird das Modell gpt-3.5-turbo Modell verwendet, um alle roten Beeren aufzulisten. In diesem Beispiel habe ich die Temperatur auf 0 gesetzt, um die LLM de facto -Genauigkeit zu geben.

Ausgabe:

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);

Chat -Modell:

Wenn Sie komplexere Antworten und Gespräche wünschen, müssen Sie das Chat -Modell verwenden. Wie unterscheidet sich das Chat -Modell technisch von einem Sprachmodell? In den Worten der Langchain -Dokumentation:

Chat -Modell ist eine Variante des Sprachmodells. Obwohl Chat -Modelle Sprachmodelle im Hintergrund verwenden, verwenden sie leicht unterschiedliche Schnittstellen. Anstatt die API "Texteingabe, Textausgabe" zu verwenden, verwenden sie die "Chat -Nachricht" als Schnittstelle für Eingabe und Ausgabe.

Dies ist ein einfaches (ziemlich nutzloses, aber interessantes) JavaScript -Chat -Modellskript:

<code>// 输出将列出红色的浆果</code>

Wie Sie sehen, sendet der Code zunächst eine Systemnachricht und fordert den Chatbot an, ein poetischer Assistent zu werden, der immer mit Reimen antwortet, und dann sendet er eine menschliche Nachricht, die dem Chatbot sagt, dass er mir mitteilt, wer der bessere Tennisspieler ist: De Jokovic, Federer oder Nadal. Wenn Sie dieses Chatbot -Modell ausführen, sehen Sie so etwas:

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);

Einbettungen:

Einbingmodell bietet eine Möglichkeit, Wörter und Zahlen in Text in Vektoren umzuwandeln, die dann mit anderen Wörtern oder Zahlen zugeordnet werden können. Dies mag abstrakt klingen. Schauen wir uns also ein Beispiel an:

<code>// 输出将是一个用押韵回答的问题</code>

Dies gibt eine lange Liste von schwimmenden Punktnummern zurück:

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)

So sieht ein Einbettung aus. Es gibt so viele schwimmende Punktzahlen in nur sechs Wörtern!

Diese Einbettung kann dann verwendet werden, um den Eingabetxt mit potenziellen Antworten, zugehörigen Text, Namen usw. zu assoziieren.

Schauen wir uns jetzt einen Anwendungsfall für eingebettete Modelle an ...

Dies ist ein Skript, das Einbettungen verwendet, um die Frage "Was ist das schwerste Tier?"

npm install -S langchain

Stücke:

Langchain -Modelle können keine großen Texte verarbeiten und sie verwenden, um Antworten zu generieren. Hier kommen die Segmentierung von Chunking und Text ins Spiel. Lassen Sie mich Ihnen zwei einfache Möglichkeiten zeigen, um Textdaten in Stücke aufzuteilen, bevor Sie sie an Langchain füttern.

Segment nach Zeichen:

Um plötzliche Unterbrechungen beim Knacken zu vermeiden, können Sie den Text per Absatz aufteilen, indem Sie jedes Auftreten eines neuen Zeilenzeichens teilen:

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);
Dies ist eine nützliche Möglichkeit, Text zu teilen. Sie können jedoch einen beliebigen Charakter als Chunking -Separator verwenden, nicht nur

. n

rekursives Segmenting -Chunking:

Wenn Sie den Text durch Zeichen einer bestimmten Länge streng teilen möchten, können Sie

: RecursiveCharacterTextSplitter verwenden

<code>// 输出将取决于互联网搜索结果</code>
In diesem Beispiel wird der Text alle 100 Zeichen geteilt und die Stücke überlappen sich auf 15 Zeichen.

Blockgröße und Überlappung:

Wenn Sie sich diese Beispiele ansehen, haben Sie sich möglicherweise gefragt, was die Größe und die überlappenden Parameter bedeuten und wie sie die Leistung beeinflussen. Ok, lassen Sie mich kurz zwei Dinge erklären.

    Die Chunk -Größe bestimmt die Anzahl der Zeichen in jedem Chunk. Je größer die Chunk -Größe ist, desto mehr Daten sind es im Chunk, desto länger dauert es Langchain, um sie zu verarbeiten und die Ausgabe zu generieren und umgekehrt.
  • Blocküberlappung ist der Inhalt, der Informationen zwischen den Blöcken aufgibt, damit sie einen Kontext teilen. Je höher die Chunk -Überlappung, desto redundanter sind Ihre Stücke. In der Regel beträgt eine gute Chunking -Überlappung etwa 10% bis 20% der Chunking -Größe, obwohl die gewünschte Chunking -Überlappung je nach Texttypen und Anwendungsfällen variiert.

Ketten:

Kapitel sind im Grunde mehrfache LLM-Funktionen, die zusammengefügt werden, um komplexere Aufgaben auszuführen, da es ansonsten nicht durch einfache LLM-Eingabe- und GT-Ausgabe erfolgen kann. Schauen wir uns ein cooles Beispiel an:

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);

Beyond OpenAI:

Auch wenn ich das OpenAI -Modell als Beispiel für verschiedene Funktionen von Langchain verwendet habe, ist es nicht auf das OpenAI -Modell beschränkt. Sie können Langchain mit zahlreichen anderen LLM- und KI -Diensten verwenden. In ihrer Dokumentation finden Sie eine vollständige Liste von Langchain- und JavaScript -integrierten LLMs.

Zum Beispiel können Sie Cohere mit Langchain verwenden. Nach der Installation von Cohere und mit

können Sie mithilfe von Langchain und Cohere einen einfachen Q & A -Code erstellen, wie unten gezeigt: npm install cohere-ai

<code>// 输出将列出红色的浆果</code>
Ausgabe:

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);

Schlussfolgerung:

In diesem Leitfaden haben Sie in JavaScript verschiedene Aspekte und Funktionen von Langchain gesehen. Mit Langchain und Experiment mit LLM können Sie problemlos KI-betriebene Webanwendungen in JavaScript entwickeln. Weitere Informationen zu bestimmten Funktionen finden Sie in der Langchainjs -Dokumentation.

Ich wünsche Ihnen ein frohes Codieren und Experimentieren mit Langchain in JavaScript! Wenn Ihnen dieser Artikel gefällt, möchten Sie möglicherweise auch Artikel über die Verwendung von Langchain mit Python lesen.

Das obige ist der detaillierte Inhalt vonEine vollständige Anleitung zu Langchain in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
JavaScript in Aktion: Beispiele und Projekte in realer WeltJavaScript in Aktion: Beispiele und Projekte in realer WeltApr 19, 2025 am 12:13 AM

Die Anwendung von JavaScript in der realen Welt umfasst Front-End- und Back-End-Entwicklung. 1) Zeigen Sie Front-End-Anwendungen an, indem Sie eine TODO-Listanwendung erstellen, die DOM-Operationen und Ereignisverarbeitung umfasst. 2) Erstellen Sie RESTFUFFUPI über Node.js und express, um Back-End-Anwendungen zu demonstrieren.

JavaScript und das Web: Kernfunktionalität und AnwendungsfälleJavaScript und das Web: Kernfunktionalität und AnwendungsfälleApr 18, 2025 am 12:19 AM

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

Verständnis der JavaScript -Engine: ImplementierungsdetailsVerständnis der JavaScript -Engine: ImplementierungsdetailsApr 17, 2025 am 12:05 AM

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python vs. JavaScript: Die Lernkurve und BenutzerfreundlichkeitPython vs. JavaScript: Die Lernkurve und BenutzerfreundlichkeitApr 16, 2025 am 12:12 AM

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Python gegen JavaScript: Community, Bibliotheken und RessourcenPython gegen JavaScript: Community, Bibliotheken und RessourcenApr 15, 2025 am 12:16 AM

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Von C/C nach JavaScript: Wie alles funktioniertVon C/C nach JavaScript: Wie alles funktioniertApr 14, 2025 am 12:05 AM

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

JavaScript -Engines: Implementierungen vergleichenJavaScript -Engines: Implementierungen vergleichenApr 13, 2025 am 12:05 AM

Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Jenseits des Browsers: JavaScript in der realen WeltJenseits des Browsers: JavaScript in der realen WeltApr 12, 2025 am 12:06 AM

Zu den Anwendungen von JavaScript in der realen Welt gehören die serverseitige Programmierung, die Entwicklung mobiler Anwendungen und das Internet der Dinge. Die serverseitige Programmierung wird über node.js realisiert, die für die hohe gleichzeitige Anfrageverarbeitung geeignet sind. 2. Die Entwicklung der mobilen Anwendungen erfolgt durch reaktnative und unterstützt die plattformübergreifende Bereitstellung. 3.. Wird für die Steuerung von IoT-Geräten über die Johnny-Five-Bibliothek verwendet, geeignet für Hardware-Interaktion.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion