recherche
Maisoninterface Webjs tutorielUn guide complet de Langchain en JavaScript

Langchainjs: un cadre puissant pour construire des modèles et des agents de langue JavaScript dirigés par AI-AI

A Complete Guide to LangChain in JavaScript

Points de base:

  • Langchainjs est un puissant framework JavaScript qui permet aux développeurs de construire et d'expérimenter avec des modèles de langage et des agents axés sur l'IA qui sont intégrés de manière transparente dans les applications Web.
  • Ce cadre permet à la création d'agents qui peuvent tirer parti de divers outils et sources de données pour effectuer des tâches de langage complexes telles que les recherches sur Internet et les calculs mathématiques, améliorant ainsi la précision et la pertinence des réponses.
  • Langchain prend en charge une variété de modèles, y compris des modèles de langage pour une sortie de texte simple, des modèles de chat pour des conversations interactives et des modèles d'intégration pour convertir du texte en vecteurs numériques, facilitant ainsi le développement de diverses applications PNL.
  • Les données de texte peuvent être gérées et traitées efficacement grâce à des méthodes de chasse personnalisables, assurant des performances optimales et une pertinence contextuelle lors du traitement du texte important.
  • En plus d'utiliser le modèle OpenAI, Langchain est compatible avec d'autres modèles de langage grand (LLMS) et des services d'IA, offrant des capacités de flexibilité et d'extension pour les développeurs explorant l'intégration de différentes IA dans leurs projets.

Ce guide plongera dans les composants clés de Langchain et montrera comment tirer parti de sa puissance en JavaScript. Langchainjs est un cadre JavaScript commun qui permet aux développeurs et aux chercheurs de créer, expérimenter et analyser les modèles et les agents linguistiques. Il offre aux amateurs de traitement du langage naturel (PNLP) avec une multitude de capacités, de la construction de modèles personnalisés à une manipulation efficace de données de texte. En tant que cadre JavaScript, il permet également aux développeurs d'intégrer facilement leurs applications AI dans les applications Web.

Prérequis:

Pour apprendre cet article, créez un nouveau dossier et installez le package NPM Langchain:

npm install -S langchain

Après avoir créé un nouveau dossier, utilisez le suffixe .mjs pour créer un nouveau fichier de module JS (par exemple test1.mjs).

AGENTS:

Dans Langchain, un agent est une entité qui peut comprendre et générer du texte. Ces agents peuvent configurer des comportements et des sources de données spécifiques et sont formés pour effectuer diverses tâches liées à la langue, ce qui en fait un outil multifonctionnel pour une variété d'applications.

Créer Langchain Agent:

Les agences peuvent être configurées pour utiliser des "outils" pour collecter les données requises et développer une bonne réponse. Veuillez consulter l'exemple ci-dessous. Il utilise l'API SERP (une API de recherche sur Internet) pour rechercher des informations liées à une question ou une entrée et y répondre. Il utilise également l'outil llm-math pour effectuer des opérations mathématiques - par exemple, la conversion des unités ou la recherche d'un pourcentage de variation entre deux valeurs:

npm install -S langchain

Après avoir créé des variables de modèle en utilisant modelName: "gpt-3.5-turbo" et temperature: 0, nous créons un exécuteur qui combine le modèle créé avec les outils spécifiés (Serpapi et calculatrice). Dans l'entrée, j'ai demandé à LLM de rechercher sur Internet (en utilisant Serpapi) et de savoir quel artiste a publié plus d'albums depuis 2010 - Nas ou Boldy James - et afficher la différence en pourcentage (en utilisant la calculatrice).

Dans cet exemple, je dois dire explicitement à LLM de "via la recherche d'Internet ..." pour qu'il utilise Internet pour obtenir des données jusqu'à aujourd'hui, plutôt que d'utiliser OpenAI par défaut à 2021 uniquement.

La sortie est la suivante:

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

Modèles (modèles):

Il existe trois types de modèles dans Langchain: LLM, modèle de chat et modèle d'intégration de texte. Explorons chaque type de modèle avec quelques exemples.

Modèle de langue:

Langchain fournit un moyen d'utiliser des modèles de langage en JavaScript pour générer une sortie de texte en fonction de l'entrée de texte. Il n'est pas aussi complexe que le modèle de chat et est le mieux adapté aux tâches de langage de sortie d'entrée. Voici un exemple utilisant Openai:

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

Comme vous pouvez le voir, il utilise le modèle gpt-3.5-turbo pour répertorier toutes les baies rouges. Dans cet exemple, j'ai réglé la température à 0 pour donner la précision de facto LLM.

Sortie:

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

Modèle de chat:

Si vous voulez des réponses et des conversations plus complexes, vous devez utiliser le modèle de chat. Techniquement, en quoi le modèle de chat est-il différent d'un modèle de langue? Dans les mots de la documentation de Langchain:

Le modèle de chat est une variante du modèle de langue. Bien que les modèles de chat utilisent des modèles de langue en arrière-plan, ils utilisent des interfaces légèrement différentes. Au lieu d'utiliser l'API "Entrée de texte, sortie de texte", ils utilisent le "message de chat" comme interface pour l'entrée et la sortie.

Il s'agit d'un script de modèle de chat JavaScript simple (tout à fait inutile mais intéressant):

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

Comme vous pouvez le voir, le code envoie d'abord un message système et dit au chatbot de devenir un assistant poétique qui répond toujours avec des rimes, puis il envoie un message humain disant au chatbot pour me dire qui est le meilleur joueur de tennis: De Jokovic, Federer ou Nadal. Si vous exécutez ce modèle de chatbot, vous verrez quelque chose comme ceci:

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

Embeddings:

Le modèle d'emballage fournit un moyen de convertir les mots et les nombres en texte en vecteurs qui peuvent ensuite être associés à d'autres mots ou nombres. Cela peut sembler abstrait, alors regardons un exemple:

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

Cela renverra une longue liste de numéros de points flottants:

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)

C'est à quoi ressemble l'intégration. Il y a tellement de numéros de points flottants en seulement six mots!

Cette intégration peut ensuite être utilisée pour associer le texte d'entrée à des réponses potentielles, à un texte connexe, des noms, etc.

Regardons un cas d'utilisation pour les modèles intégrés maintenant ...

Maintenant, c'est un script qui utilisera des intégres pour obtenir la question "Quel est le plus lourd animal?"

npm install -S langchain

morceaux:

Les modèles Langchain ne peuvent pas traiter de grands textes et les utiliser pour générer des réponses. C'est là que la segmentation du bunking et du texte entre en jeu. Permettez-moi de vous montrer deux façons simples de diviser les données de texte en morceaux avant de les nourrir à Langchain.

segment par caractère:

Pour éviter les interruptions soudaines de set, vous pouvez diviser le texte par paragraphe en divisant chaque occurrence d'un caractère de Newline:

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);
C'est un moyen utile de diviser le texte. Cependant, vous pouvez utiliser n'importe quel personnage comme séparateur de morceaux, pas seulement

. n

segmentant récursivement Chunking:

Si vous souhaitez diviser strictement le texte par des caractères d'une certaine longueur, vous pouvez utiliser

: RecursiveCharacterTextSplitter

<code>// 输出将取决于互联网搜索结果</code>
Dans cet exemple, le texte est divisé tous les 100 caractères, et les morceaux se chevauchent à 15 caractères.

Taille et chevauchement des blocs:

En regardant ces exemples, vous avez peut-être commencé à vous demander ce que signifient la taille de la taille et les paramètres de chevauchement et comment ils affectent les performances. Ok, laissez-moi expliquer brièvement deux choses.

    La taille du morceau détermine le nombre de caractères dans chaque morceau. Plus la taille du morceau est grande, plus il y a de données dans le morceau, plus il faut Langchain pour le traiter et générer la sortie, et vice versa.
  • Le chevauchement des blocs est le contenu qui partage des informations entre les blocs afin qu'ils partagent un certain contexte. Plus le chevauchement du morceau est élevé, plus vos morceaux seront redondants; plus le chevauchement du morceau est bas, moins le contexte partageait entre les morceaux. En règle générale, un bon chevauchement de section est d'environ 10% à 20% de la taille de la section, bien que le chevauchement de section souhaité varie selon différents types de texte et cas d'utilisation.

chaînes:

Le chapitre est essentiellement des fonctions LLM multiples liées ensemble pour effectuer des tâches plus complexes, sinon elle ne peut pas être effectuée via la sortie LLM simple-& GT. Regardons un exemple sympa:

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

au-delà de l'Openai:

Même si j'utilise le modèle OpenAI comme exemple de différentes fonctions de Langchain, elle n'est pas limitée au modèle OpenAI. Vous pouvez utiliser Langchain avec de nombreux autres services LLM et AI. Vous pouvez trouver une liste complète des LLM intégrés Langchain et JavaScript dans leur documentation.

Par exemple, vous pouvez utiliser Cohere avec Langchain. Après avoir installé Cohere, en utilisant

, vous pouvez créer un code de questions-réponses simple à l'aide de Langchain et Cohere, comme indiqué ci-dessous: npm install cohere-ai

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

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

Conclusion:

Dans ce guide, vous avez vu différents aspects et fonctions de Langchain en JavaScript. Vous pouvez facilement développer des applications Web alimentées par AI en JavaScript à l'aide de Langchain et expérimenter avec LLM. Assurez-vous de vous référer à la documentation LangchainJS pour plus de détails sur les fonctionnalités spécifiques.

Je vous souhaite un codage et d'expérimenter avec Langchain en JavaScript! Si vous aimez cet article, vous pouvez également lire des articles sur l'utilisation de Langchain avec Python.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
JavaScript est-il écrit en C? Examiner les preuvesJavaScript est-il écrit en C? Examiner les preuvesApr 25, 2025 am 12:15 AM

Oui, le noyau du moteur de JavaScript est écrit en C. 1) Le langage C fournit des performances efficaces et un contrôle sous-jacent, qui convient au développement du moteur JavaScript. 2) Prendre le moteur V8 comme exemple, son noyau est écrit en C, combinant l'efficacité et les caractéristiques orientées objet de C. 3) Le principe de travail du moteur JavaScript comprend l'analyse, la compilation et l'exécution, et le langage C joue un rôle clé dans ces processus.

Rôle de JavaScript: rendre le Web interactif et dynamiqueRôle de JavaScript: rendre le Web interactif et dynamiqueApr 24, 2025 am 12:12 AM

JavaScript est au cœur des sites Web modernes car il améliore l'interactivité et la dynamicité des pages Web. 1) Il permet de modifier le contenu sans rafraîchir la page, 2) manipuler les pages Web via Domapi, 3) prendre en charge les effets interactifs complexes tels que l'animation et le glisser-déposer, 4) Optimiser les performances et les meilleures pratiques pour améliorer l'expérience utilisateur.

C et JavaScript: la connexion expliquéeC et JavaScript: la connexion expliquéeApr 23, 2025 am 12:07 AM

C et JavaScript réalisent l'interopérabilité via WebAssembly. 1) Le code C est compilé dans le module WebAssembly et introduit dans un environnement JavaScript pour améliorer la puissance de calcul. 2) Dans le développement de jeux, C gère les moteurs de physique et le rendu graphique, et JavaScript est responsable de la logique du jeu et de l'interface utilisateur.

Des sites Web aux applications: les diverses applications de JavaScriptDes sites Web aux applications: les diverses applications de JavaScriptApr 22, 2025 am 12:02 AM

JavaScript est largement utilisé dans les sites Web, les applications mobiles, les applications de bureau et la programmation côté serveur. 1) Dans le développement de sites Web, JavaScript exploite DOM avec HTML et CSS pour réaliser des effets dynamiques et prend en charge des cadres tels que JQuery et React. 2) Grâce à la réactnative et ionique, JavaScript est utilisé pour développer des applications mobiles multiplateformes. 3) Le cadre électronique permet à JavaScript de créer des applications de bureau. 4) Node.js permet à JavaScript d'exécuter le côté du serveur et prend en charge les demandes simultanées élevées.

Python vs JavaScript: cas d'utilisation et applications comparéesPython vs JavaScript: cas d'utilisation et applications comparéesApr 21, 2025 am 12:01 AM

Python est plus adapté à la science et à l'automatisation des données, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python fonctionne bien dans la science des données et l'apprentissage automatique, en utilisant des bibliothèques telles que Numpy et Pandas pour le traitement et la modélisation des données. 2. Python est concis et efficace dans l'automatisation et les scripts. 3. JavaScript est indispensable dans le développement frontal et est utilisé pour créer des pages Web dynamiques et des applications à une seule page. 4. JavaScript joue un rôle dans le développement back-end via Node.js et prend en charge le développement complet de la pile.

Le rôle de C / C dans les interprètes et compilateurs JavaScriptLe rôle de C / C dans les interprètes et compilateurs JavaScriptApr 20, 2025 am 12:01 AM

C et C jouent un rôle essentiel dans le moteur JavaScript, principalement utilisé pour implémenter des interprètes et des compilateurs JIT. 1) C est utilisé pour analyser le code source JavaScript et générer une arborescence de syntaxe abstraite. 2) C est responsable de la génération et de l'exécution de bytecode. 3) C met en œuvre le compilateur JIT, optimise et compile le code de point chaud à l'exécution et améliore considérablement l'efficacité d'exécution de JavaScript.

JavaScript en action: Exemples et projets du monde réelJavaScript en action: Exemples et projets du monde réelApr 19, 2025 am 12:13 AM

L'application de JavaScript dans le monde réel comprend un développement frontal et back-end. 1) Afficher les applications frontales en créant une application de liste TODO, impliquant les opérations DOM et le traitement des événements. 2) Construisez RestulAPI via Node.js et Express pour démontrer les applications back-end.

Javascript et le web: fonctionnalité de base et cas d'utilisationJavascript et le web: fonctionnalité de base et cas d'utilisationApr 18, 2025 am 12:19 AM

Les principales utilisations de JavaScript dans le développement Web incluent l'interaction client, la vérification du formulaire et la communication asynchrone. 1) Mise à jour du contenu dynamique et interaction utilisateur via les opérations DOM; 2) La vérification du client est effectuée avant que l'utilisateur ne soumette les données pour améliorer l'expérience utilisateur; 3) La communication de rafraîchissement avec le serveur est réalisée via la technologie AJAX.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft