使用LangChain和OpenAI API 创建一个简易鲜花描述生成器

总结之LangChain(一)—— 简单使用LangChain LangChain官网:https://python.langchain.com/v0.2/docs/introduction/LangChain 是一个基于大型语言模型(LLM)开发应用程序的框架。开发:使用 LangChain 的开源构建模块和组件构建应用程序。使用第三方集成(opens in a new tab)和模板(opensin a new tab)快速上手。生产化:使用LangSmith检查、监控和评估你的链条,以便你可以持续优化和自信地部署。 阅读详情

前言

在本中,我们将使用 LangChain 和 OpenAI API 创建一个简单的鲜花描述生成器。这个生成器可以根据鲜花的价格和名称生成一段吸引人的描述,帮助大家对学习如何使用这些工具进行自然语言处理任务有一定的了解。

正文

准备工作

首先,初始化项目,确保你已经安装了必要的依赖项。你可以通过以下命令安装:

npm init -y //初始化项目
npm install @langchain/openai @langchain/core

在这里插入图片描述

有这些文件

如果你没有OpenAI API 密钥可以来到(github.com/chatanywher…) 这个网站免费申请一个key,不过好像得翻墙才能访问,点击申请内测免费Key就可以领取了

在这里插入图片描述


点击快速开始来到下面这个页面

在这里插入图片描述


可以看到使用方法

如果都准备好了,接下来,开始正式操作。

代码解析

// 导入必要的模块
import { ChatOpenAI } from "@langchain/openai";  // 聊天大模型
import { PromptTemplate } from "@langchain/core/prompts"; // 提示词模块

// 创建一个提示模板
const personalizedGreetingPrompt = new PromptTemplate({
    inputVariables: ["price", "flower_name"],  // 输入变量
    template: "`您是一位专业的鲜花店文案撰写员,\n对于售价${price}元的${flower_name},提供一个吸引人的简短描述?`"  // 提示模板
});

// console.log(personalizedGreetingPrompt);  // 打印提示模板

// 实例化 LLM(大语言模型)
const model = new ChatOpenAI({
    configuration: {
        apiKey: '输入你自己的OpenAI API 密钥',  // OpenAI API 密钥
        baseURL: 'https://api.chatanywhere.tech/v1'  // API 基础 URL
    },
    model: 'gpt-3.5-turbo'  // 使用的模型版本
});

// 创建一个链式调用
const chain = personalizedGreetingPrompt.pipe(model);

// 调用链式方法生成描述
const result = await chain.invoke({
    price: '99',  // 鲜花价格
    flower_name: '玫瑰'  // 鲜花名称
});

console.log(result);  // 打印生成的描述

使用指令node main.mjs让项目运行起来

效果:

在这里插入图片描述


也可以console.log(result.content)只打印内容,效果为:

在这里插入图片描述


逐行解释

  1. 导入必要的模块:

    import { ChatOpenAI } from "@langchain/openai";  // 聊天大模型
    import { PromptTemplate } from "@langchain/core/prompts"; // 提示词模块
    
    
    • 导入 ChatOpenAI 类,用于实例化聊天模型。
    • 导入 PromptTemplate 类,用于创建提示模板。
  2. 创建一个提示模板:

    const personalizedGreetingPrompt = new PromptTemplate({
        inputVariables: ["price", "flower_name"],  // 输入变量
        template: "`您是一位专业的鲜花店文案撰写员,\n对于售价${price}元的${flower_name},提供一个吸引人的简短描述?`"  // 提示模板
    });
    
    
    • 创建一个 PromptTemplate 对象,指定输入变量 price 和 flower_name。
    • 设置提示模板,其中 ${price} 和 ${flower_name} 是占位符,将被实际输入值替换。
  3. 实例化 LLM(大语言模型) :

    const model = new ChatOpenAI({
        configuration: {
            apiKey: 'OpenAI API 密钥',  // OpenAI API 密钥
            baseURL: 'https://api.chatanywhere.tech/v1'  // API 基础 URL
        },
        model: 'gpt-3.5-turbo'  // 使用的模型版本
    });
    
    
    • 实例化 ChatOpenAI 对象,设置 API 密钥和基础 URL。
    • 指定使用的模型版本 gpt-3.5-turbo。
  4. 创建一个链式调用:

    const chain = personalizedGreetingPrompt.pipe(model);
    
    
    • 使用 .pipe() 方法连接提示模板和模型,创建一个链式调用。
  5. 调用链式方法生成描述:

    const result = await chain.invoke({
        price: '99',  // 鲜花价格
        flower_name: '玫瑰'  // 鲜花名称
    });
    
    
    • 调用 invoke 方法传入实际输入值 price 和 flower_name。
    • 使用 await 关键字等待异步调用完成。

完整代码

// langchain 所有的主流LLM 接口一致
import { ChatOpenAI } from "@langchain/openai";  // 聊天大模型
// prompt 接受参数
import {PromptTemplate} from "@langchain/core/prompts" //提示词模块

const personalizedGreetingPrompt = new PromptTemplate({
    inputVariables:["price","flower_name"],
    template:"`您是一位专业的鲜花店文案撰写员,\n对于售价${price}元的${flower_name},提供一个吸引人的简短描述?`"
})
// console.log(personalizedGreetingPrompt);
// LLM实例化
const model = new ChatOpenAI({
    configuration:{
        apiKey:'输入你自己的OpenAI API 密钥',
        baseURL:'https://api.chatanywhere.tech/v1'
    },
    model:'gpt-3.5-turbo'
})

// chain
const chain= personalizedGreetingPrompt.pipe(model)

const result =await chain.invoke({
    price:'99',
    flower_name:'玫瑰'
})
console.log(result);

总结

通过以上步骤,我们创建了一个简单的鲜花描述生成器。这个生成器可以根据输入的鲜花价格和名称生成一段吸引人的描述。希望这篇教程对你有所帮助,让你对使用 LangChain 和 OpenAI API 进行自然语言处理任务有一定的了解,感谢你的阅读!

​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

LLM大模型基础知识【一】 大语言模型(LLM):是指在自然语言处理(Natural Language Processing,NLP)领域中的一类大模型,通常用于处理文本数据和理解自然语言。这类大模型的主要特点是它们在大规模语料库上进行了训练,以学习自然语言的各种语法、语义和语境规则。例如:GPT系列(OpenAI)、Bard(Google)、文心一言(百度)。视觉大模型:是指在计算机视觉(Computer Vision,CV)领域中使用的大模型,通常用于图像处理和分析。 阅读详情

相关推荐

使用LangChain、LangGraph和LangSmith来创建AI Agent

使用LangChain、LangGraph和LangSmith来创建AI Agent

安静的软件工程师 2584

I那么厉害,简单三步让你免费拥有自己的大模型

系统:windows10或windows11显卡:RTX4090或同等显存以上的显卡打开https://docs.docker.com/desktop/release-notes/下载最新的版本并安装docker desktop编辑配置1编辑配置2在https://huggingface.co/注册并获取在D盘新建D:\docker\huggingface文件夹,管理员身份运行powershell并运行以下命令:查看日志看到日志输出以下信息代表模型运行成功部署web端聊天程序。

xxue345678的博客 1056

使用LangChain和OpenAI实现高效文本标注

sentiment: str = Field(description="文本的情感")aggressiveness: int = Field(description="文本的攻击性,从1到10的范围")language: str = Field(description="文本使用的语言")通过使用LangChain和OpenAI的API,我们可以轻松构建一个灵活且强大的文本标注系统。通过精心设计的Pydantic模型,我们可以精确控制输出格式,使标注结果更加一致和可靠。

aehrutktrjk的博客 1108

LangChain学习

单独的GPT-4可能知道很多关于世界各地的信息,但如果不能实时查找最新的航班信息或者酒店价格,它提供的旅行建议可能就不够准确或实用。通过LangChain,开发人员可以更轻松地管理与语言模型的交互,无缝地连接多个组件,并集成额外的资源,如API和数据库等,以加强应用的能力和灵活性。LangChain的优势在于为开发人员提供了一个便捷的框架,使其能够更高效地构建应用程序,利用最先进的语言模型和对话系统,同时能够灵活地定制和整合其他必要的资源,为应用程序的开发和部署提供了更大的灵活性和便利性。

我是大好人的博客 3974

LangChain 安装与环境搭建,并调用OpenAI与Ollama本地大模型

如果把大语言模型(LLM)比作一个强大的“智能大脑”,那么LangChain就像是它的“手和脚”——帮助这个大脑连接外部世界,完成更复杂的任务。🌟 LangChain 是什么?LangChain 是一个用于构建智能应用的框架,它让大语言模型(如 ChatGPT、Llama、Claude 等)能够更好地记忆、思考、规划,并与各种外部工具(数据库、API、搜索引擎等)进行交互。🚀 为什么要用 LangChain?单独使用 ChatGPT,你只能进行简单的对话;

博客虽小,世界尽在其中 2760

langchain使用OpenAI API还是微调开源模型?

假设你就是想训练属于自己的模型。而且出于商业秘密的原因,不想开源它,不想上传到HuggingFace,就是要在本机运行模型。此时应该如何利用LangChain的功能?我们可以创建一个LLM的衍生类,自己定义模型。而LLM这个基类,则位于langchain.llms.base中,通过from langchain.llms.base import LLM语句导入。_call方法:用于接收输入字符串并返回响应字符串。_identifying_params方法:用于帮助打印此类的属性。# 导入需要的库。

a9992972515的博客 1119

【LangChain】langchain_openai.OpenAI 类:基于 OpenAI API 实现文本生成

langchain_openai.OpenAI 是 LangChain 中用于调用 OpenAI 完成模型(completion models,如 gpt-3.5-turbo-instruct)的类,基于 OpenAI API 实现文本生成。它继承自 BaseLLM,提供标准化的 LLM 接口,适合处理单次生成、批量生成和流式生成任务。初始化:配置 model、api_key、temperature 等。常用方法:invoke(单次)、generate(批量)、stream(流式)等。常用属性:model、

彬彬侠的博客 2371

提升AI模型灵活性:使用LangChain适配OpenAI API探索不同模型

LangChain为开发者提供了在多个AI模型之间无缝切换的能力,使得AI应用开发更加灵活和高效。OpenAI API文档LangChain GitHub仓库ChatAnthropic文档您的支持是我持续创作的动力!

nseejrukjhad的博客 1013

【LangChain】langchain_openai.OpenAIEmbeddings 类:调用 OpenAI 嵌入 API(Embeddings API)将文本转换为高维向量

langchain_openai.OpenAIEmbeddings 是 LangChain 中用于调用 OpenAI 嵌入 API(Embeddings API)的类,用于将文本转换为高维向量表示(嵌入)。这些嵌入向量可用于语义搜索、文本相似度比较、聚类或 RAG(检索增强生成)等任务。它继承自 langchain_core.embeddings.Embeddings,提供标准化的嵌入接口。初始化:配置 model、api_key、dimensions 等。常用方法:embed_documents(批量)、

彬彬侠的博客 3094

打造智能购物助手:使用LangChain和Ionic的简易指南

通过以上步骤,您现在应该能够成功创建一个购物助手应用。LangChain官方文档Ionic官方文档OpenAI API参考。

ahdfwcevnhrtds的博客 954

LangChain入门:24.通过Baby AGI实现自动生成和执行任务

随着 ChatGPT 的崭露头角,我们迎来了一种新型的代理——Autonomous Agents(自治代理或自主代理)。这些代理的设计初衷就是能够独立地执行任务,并持续地追求长期目标。在 LangChain 的代理、工具和记忆这些组件的支持下,它们能够在无需外部干预的情况下自主运行,这在真实世界的应用中具有巨大的价值。目前,GitHub 上已有好几个备受关注的“网红”项目,如 AutoGPT、BabyAGI 和 HuggingGPT,它们都代表了自治代理的初步尝试。

Hugo的博客 2460

LangChain的函数,工具和代理(三):LangChain中轻松实现OpenAI函数调用

今天我们学习了pydantic的基础语法,以及如何利用langchain将pydantic定义的类转换成openai的函数描述对象,通过pydantic我们可以轻松定义函数描述对象的类,然后使用langchain的convert_pydantic_to_openai_function方法将其转换成openai所需要的格式,如果不使用pydantic我们必须手动创建openai的函数描述对象,这将是非常低效且繁琐的工作。

weixin_42608414的博客 3957

使用langchain支持openai,如何支持自定义api_key和base_url ?

langchain目前还使用的是旧版的openai的接口,需要注意。核心其实在于key和url的设置。示例代码,使用LLM进行预测。

无求 1万+

【LangChain】 OpenAI 和 ChatOpenAI 的区别

在 LangChain 中,langchain_openai 模块提供了 OpenAI 和 ChatOpenAI 两个类,用于与 OpenAI 的语言模型交互。尽管两者都用于调用 OpenAI 的 API,但它们针对的模型类型和使用场景不同。OpenAI:针对文本补全模型(如嵌入模型),输入/输出为字符串,功能有限,不支持对话、工具调用或 JSON 模式,适合嵌入生成或旧代码兼容,不推荐新项目。ChatOpenAI:针对聊天模型(如 gpt-4o-mini),输入为消息列表,输出为 AIMessage,支持

彬彬侠的博客 3389

大模型基础01:理论与技术的演进概述

大语言模型(英文:Large Language Model,缩写LLM) 是指参数规模极大的神经网络语言模型,大模型的基础理论主要包括深度学习理论、表示学习理论、迁移学习理论、模式识别理论、计算学习理论、分布式计算理论和统计语言模型理论,大模型集成了这些计算机科学核心理论的精华。通过大数据预训练加小数据微调,大大降低了使用门槛,将人工智能技术带入了一个新的阶段。

AaronZZH 的博客 4489

【AIGC】OpenAI 集成 Langchain 操作实战使用详解

OpenAI 集成 Langchain 操作实战使用详解

congge 7737

Windows和Linux环境下OpenAI和LangChain的使用

Windows和Linux环境下OpenAI和LangChain的使用

荔园微风的博客 976

Vue3项目实战:CKEditor5富文本编辑器从安装到隐藏不需要的功能

本文详细介绍了在Vue3项目中集成并深度定制CKEditor5富文本编辑器的完整流程。通过分析其模块化架构,指导开发者从标准构建出发,移除图片、表格等冗余插件,创建专属轻量构建,从而显著减小打包体积并提升用户体验。文章结合实战代码,涵盖了环境搭建、自定义构建配置、高级优化技巧等关键步骤。

weixin_29016833的博客 283

【LangChain】langchain.llms.OpenAI 迁移至 langchain_openai.OpenAI

如果代码中使用了 langchain.llms.OpenAI(即 OpenAI 类),会触发 LangChainDeprecationWarning,提示该类在 LangChain 0.0.10 中已被废弃,并将在 1.0 中移除。官方推荐使用 langchain_openai.OpenAI 替代。本文基于 LangChain 0.3.x,详细解释如何将 OpenAI 类迁移到 langchain_openai.OpenAI,提供完整的迁移方案和代码示例。迁移 OpenAI 到 langchain_open

彬彬侠的博客 1796

Webots+UR机械臂仿真全流程:手把手教你用Python实现Pick-and-Place轨迹规划

本文详细介绍了使用Webots和Python实现UR六自由度机械臂的Pick-and-Place轨迹规划全流程。从环境搭建、运动学正逆解计算到轨迹规划实战技巧,涵盖工业场景中的关节补偿、末端校准等实际问题解决方案,帮助开发者快速掌握机械臂精准控制技术。

weixin_29083649的博客 284

从JT808/JT1078协议到多端协同:构建高并发北斗车辆监控平台的技术实践

本文详细介绍了基于JT808/JT1078协议构建高并发北斗车辆监控平台的技术实践,包括协议解析、高并发架构设计、多端协同实现及数据持久化策略。通过Netty、Kafka等技术优化,系统成功支撑日均2000万条消息处理,为GPS车辆动态监控系统提供了可靠解决方案。

weixin_28358083的博客 224
上一篇: 用langchain+文心一言+数据库实现个人知识库问答
下一篇: 0基础?没问题!吴恩达教授的《开发者的LLM入门完全指南》来了!
少喝冰美式
博客等级 码龄3年 6839粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值