当前位置: 首页 > news >正文

[Nodejs+LangChain+Ollama] 1.第一个案例

上一世,在中国Ai人工智能的市场被Java和Python垄断,这一世我Nodejs要夺回我失去的一切!

基础

基本认识

LangChain 提供一套提示词模板(prompt template)管理工具,负责处理提示词,然后船体给大模型处理,最后处理大模型返回结果,LangChain 对大模型的封装主要包括LLMChat Modal两种类型。

  • LLM - 问答模型,模型接受一个文本输入,然后返回一个文本结果。
  • Chat Modal - 对话模型,接收一组对话消息,然后返回对话消息,类似聊天消息一样。

核心概念

LLMs

LangChain 封装的基础模型,模型接收一个文本输入,然后返回一个文本结果。

Chat Modals

聊天模型(或者称为对话模型),与LLMs不同,这些模型转为对话场景而设计。模型可以接收一组对话消息,然后返回对话消息,类似聊天消息一样。

Message

指的是聊天模型(Chat Models)的消息内容,消息类型包括HumanMessage、AIMessage、SystemMessage、FunctionMessage和ToolMessage等多种类型消息。

Prompts

LangChain封装了一些专门用于提示词(prompts)管理的工具类,方便我们格式化提示词(prompts)内容。

Output Parsers

LangChain接受大模型(llm)返回的文本内容之后,可以使用专门的输出解析器对文本内容进行格式化,例如解析json、或者将llm输出的内容转为js对象。

Retrievers

为方便我们将私有数据导入到大模型(LLM),提高模型回答问题的质量,LangChain封装了检索框架(Retrievers),方便我们加载文档数据、切割文档数据、存储和检索文档数据。

Vector Stores

为支持私有数据的语义相似搜索,LangChain支持多种向量数据库。

Agents

智能体(Agents),通常指的是以大模型(LLM)作为决策引擎,根据用户输入的任务,自动调用外部系统、硬件设备共同完成用户的任务,是一种以大模型(LLM)为核心的应用设计模式。

应用场景

  • 对话机器人:构建智能的对话助手、客服机器人、聊天机器人等。
  • 知识库问答:结合知识图谱,进行开放域问题的问答服务。
  • 智能写作:如文章写作、创意写作、文本摘要等。

快速入门

前提

需要自己提前安装好 Ollama ,以及在本地进行模型部署。如果不会操作可以看 本地部署DeepSeek Nodejs版-CSDN博客 。这个以DeepSeek为例子,教你们如何在本地部署一个基座模型。

安装LangChain

pnpm add langchain @langchain/community @langchain/core @langchain/ollama

入门Demo

import { PromptTemplate } from "@langchain/core/prompts";
import { ChatOllama } from '@langchain/ollama';
import { StringOutputParser } from "@langchain/core/output_parsers";// 初始化模型
const llm = new ChatOllama({model: 'qwen3:0.6b'
});// 设置提示词
const prompt = new PromptTemplate({template: "你是一个世界级技术专家\n\n用户问题:{input}",inputVariables: ['input']
})// 创建字符串解析器
const parser = new StringOutputParser();// 调用模型
const run = async () => {const chain = prompt.pipe(llm).pipe(parser);const chainResult = await chain.invoke({ input: "什么是机器学习?" });console.log(chainResult);
}run()
http://www.dtcms.com/a/394045.html

相关文章:

  • 设计模式2.【备忘录模式】
  • Spring Boot 入门:快速构建现代 Java 应用的利器
  • Redis 实例 CPU 飙高到 90%,如何排查和解决?
  • 中国女篮备战全运会,宫鲁鸣重点培养年轻核心
  • 【Qt】常用控件1——QWidget
  • 9.21关于大模型推理未来的思考
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘uvicorn’ 问题
  • 变分自编码器(VAE):生成模型的另一条技术路线
  • 【LVS入门宝典】LVS NAT模式实战指南:ip_forward、iptables与SNAT、DNAT规则配置详解
  • 【Android】BottomSheet的三种使用
  • Spring MVC 九大组件源码深度剖析(八):RequestToViewNameTranslator - 视图名转换的奥秘
  • 在Linux环境下安装和卸载DMETL5数据迁移工具
  • 《计算》第五六章读书笔记
  • daily notes[47]
  • 模电基础:放大电路的分析方法---图解法
  • Windows10系统Web UI自动化测试学习系列1--介绍(序章-万事开头难)
  • 安装vllm的艰苦过程
  • 探索 Event 框架实战指南:微服务系统中的事件驱动通信:
  • FPGA超高速接口GTP_GTY_GTX使用说明
  • Blender常用第三方插件总结
  • Kurt-Blender零基础教程:第2章:建模篇——第3节:陈列/父子级/蒙皮/置换修改器与小狐狸角色建模
  • npm启动项目报错“无法加载文件……”
  • 从 0 到 1 精通 Nacos:服务发现与配置中心的实战指南
  • 基于DrissionPage的趣易百影院数据采集实战指南
  • github十大开源FPGA项目
  • R语言 csv新增一列 dplyr操作
  • IDEA创建Module子项目后,只有一个普通的文件夹
  • 支持向量机深度解析:从数学原理到工程实践的完整指南
  • 2025华为杯研究生数学建模竞赛B题及求解思路
  • 三星CIS全球产能布局解析:本土根基、海外扩张与策略雄心