直观易用的大模型开发框架LangChain,你会了没?

京东云开发者
• 阅读 55

目前LangChain框架在集团大模型接入手册中的学习案例有限,为了让大家可以快速系统地了解LangChain大模型框架并开发,产出此文章。本文章包含了LangChain的简介、基本组件和可跑的代码案例(包含Embedding、Completion、Chat三种功能模型声明)。读完此文章,您可利用集团申请的api key+LangChain框架进行快速开发,体验大语言模型的魅力。

一、简介

LangChain 作为一个大语言模型(LLM)集成框架,旨在简化使用大语言模型的开发过程,包括如下组件:



直观易用的大模型开发框架LangChain,你会了没?



LangChain框架优点:

1.多模型支持:LangChain 支持多种流行的预训练语言模型,如 OpenAI GPT-3、Hugging Face Transformers 等,为用户提供了广泛的选择。

2.易于集成:LangChain 提供了简单直观的API,可以轻松集成到现有的项目和工作流中,无需深入了解底层模型细节。

3.强大的工具和组件:LangChain 内置了多种工具和组件,如文档加载器、文本转换器、提示词模板等,帮助开发者处理复杂的语言任务。

4.可扩展性:LangChain 允许开发者通过自定义工具和组件来扩展框架的功能,以适应特定的应用需求。

5.性能优化:LangChain 考虑了性能优化,支持高效地处理大量数据和请求,适合构建高性能的语言处理应用。

6.Python 和 Node.js 支持:开发者可以使用这两种流行的编程语言来构建和部署LangChain应用程序。

由于支持 Node.js ,前端大佬们可使用Javascript语言编程从而快速利用大模型能力,无需了解底层大模型细节。同时也支持JAVA开发,后端大佬同样适用。

本篇文章案例聚焦Python语言开发。




二、基本组件



直观易用的大模型开发框架LangChain,你会了没?





•Prompt【可选】

◦告知LLM内system服从什么角色

◦占位符:设置{input}以便动态填补后续用户输入

•Retriever【可选】

◦LangChain一大常见应用场景就是RAG(Retrieval-Augmented Generation),RAG 为了解决LLM中语料的通用和时间问题,通过增加最新的或者垂类场景下的外部语料,Embedding化后存入向量数据库,然后模型从外部语料中寻找相似语料辅助回复

•Models

◦可做 Embedding化,语句补全,对话等

支持的模型选择,OpenAI为例



直观易用的大模型开发框架LangChain,你会了没?



•Parser【可选】

◦StringParser,JsonParser 等

◦将模型输出的AIMessage转化为string, json等易读格式

上述介绍了Langchain开发中常见的components,接下来将通过一简单案例将上述组件串起来,让大家更熟悉Langchain中的组件及接口调用。




三、小试牛刀

import os
# gpt 网关调用
os.environ["OPENAI_API_KEY"] = "{申请的集团api key}"
os.environ["OPENAI_API_BASE"] = "{您的url}"

import openai

from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())

openai.api_key = os.environ['OPENAI_API_KEY']

from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatOpenAI
from langchain.schema.output_parser import StrOutputParser

prompt = ChatPromptTemplate.from_template(
    "tell me a short joke about {topic}"
)
model = ChatOpenAI()
output_parser = StrOutputParser()

chain = prompt | model | output_parser

chain.invoke({"topic": "bears"})

输出:

"Why don't bears wear shoes?\nBecause they have bear feet!"

其中 chain = prompt | model | output_parser 按照数据传输顺序将上述声明的 prompt template、大语言模型、输出格式串联起来(Chain),逻辑清晰直接。



代码案例:调用Embedding、Completion、Chat Model

•将文本转化为Embedding : langchain_community.embeddings <-> OpenAIEmbeddings

from langchain_community.embeddings import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(
    model="text-embedding-ada-002",
    openai_api_key=os.environ["OPENAI_API_KEY"],
    openai_api_base=os.environ["OPENAI_API_BASE"]
)

text = "text"
query_result = embeddings.embed_query(text)

•文本补全:langchain_community.llms <-> OpenAI completion

from langchain_community.llms import OpenAI

llm = OpenAI(
    model_name='gpt-35-turbo-instruct-0914',
    openai_api_key=os.environ["OPENAI_API_KEY"],
    base_url=base_url,
    temperature=0
)

llm.invoke("I have an order with order number 2022ABCDE, but I haven't received it yet. Could you please help me check it?")

•对话模型:langchain_openai <-> ChatOpenAI

from langchain_openai import ChatOpenAI

model = ChatOpenAI(model_name="gpt-35-turbo-1106") # "glm-4"
model.invoke("你好,你是智谱吗?")



四、总结

LangChain作为一个使用流程直观的大模型开发框架,掌握它优势多多。希望您可以通过上述内容入门并熟悉LangChain框架,欢迎多多交流!

点赞
收藏
评论区
推荐文章
京东云开发者 京东云开发者
10个月前
把LangChain跑起来的3个方法 | 京东云技术团队
使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来的方法,如有错误欢迎纠正。
京东云开发者 京东云开发者
9个月前
LangChain:打造自己的LLM应用 | 京东云技术团队
1、LangChain是什么LangChain是一个框架,用于开发由LLM驱动的应用程序。可以简单认为是LLM领域的Spring,以及开源版的ChatGPT插件系统。核心的2个功能为:1)可以将LLM模型与外部数据源进行连接。2)允许与LLM模型与环境进行
京东云开发者 京东云开发者
5个月前
TS版LangChain实战:基于文档的增强检索(RAG) | 京东云技术团队
LangChainLangChain是一个以LLM(大语言模型)模型为核心的开发框架,LangChain的主要特性:可以连接多种数据源,比如网页链接、本地PDF文件、向量数据库等允许语言模型与其环境交互封装了ModelI/O(输入/输出)、Retrieva
高耸入云 高耸入云
4个月前
OJAC近屿智能带你解读:AIGC必备知识之Lang Chain
📖更多AI资讯请👉🏾LangChain,是一种先进的语言模型链技术,旨在通过串联多个专业化的语言模型,以解决复杂的自然语言处理(NLP)任务。这种方法不仅提高了处理特定任务的效率和准确性,还增强了模型的适应性和灵活性。基本原理:在LangChain中
何婆子 何婆子
3个月前
从0到1训练自己的私有大模型,打造属于自己的ChatGPT|网盘高清
从0到1训练自己的私有大模型,打造属于自己的ChatGPT|网盘高清download》chaoxingit.com/2586/从0到1训练自己的私有大模型,打造属于自己的ChatGPT,可以遵循以下步骤:确定模型类型和框架:选择适合的模型类型和框架,如GP
秦朗 秦朗
3个月前
LangChain实战课
//下仔のke:https://yeziit.cn/15289/LangChain是一个帮助在应用程序中使用大型语言模型(LLM)的编程框架。它提供了一些组件和工具,使开发人员能够更轻松地构建基于LLM的应用程序。LangChain的主要特点是简化了与LL
何婆子 何婆子
3个月前
极客时间-AI大模型应用开发实战营
极客时间AI大模型应用开发实战营download》chaoxingit.com/4303/AI大模型应用开发实战:从理论到实践随着人工智能(AI)技术的快速发展,大模型应用开发已成为业界关注的焦点。大模型是指包含大量参数的深度学习模型,具有强大的处理大规模
臧霸 臧霸
4星期前
AI大模型系统实战 | 更新完结
AI大模型系统实战|更新完结download:itzx666.com/8556/如果你说的是一本书名或者一个课程名称,那么我无法提供特定的内容。不过,如果你想了解关于实战中使用AI大模型系统的信息,我可以给你提供一些相关的话题:1.应用场景和案例研究:了解
如何优雅的使用ollama| 京东云技术团队
入门开源大语言模型,最好的工具就是ollama,这是一款简单的大模型本地部署框架,支持基于命令行的方式运行多种大语言模型,并提供了相应的Python和JSSDK,可以基于此方便实现ChatbotUI。这篇文章就以京东云智算平台为例(其他平台也是类似,甚至可
一键部署,玩转AI!天翼云Llama 3大模型学习机来了!
为了方便广大AI技术爱好者与从业者快速上手学习与使用大语言模型技术,天翼云基于开源的MetaLlama38BInstruct模型以及textgenerationwebui框架,搭建了一键部署、开箱即用的云主机镜像。同时,天翼云CPU/GPU云主机近期即将上线Llama3大模型学习机,期望能够成为帮助用户打开大模型领域之门的第一把钥匙,让更多用户从此了解大模型、学习使用大模型,并利用大模型创造更多可能。