AI创想
标题:
langChain入门demo
[打印本页]
作者:
亦落的客
时间:
昨天 23:16
标题:
langChain入门demo
作者:CSDN博客
概述
针对多个ai,如果想统一方便的调用,那必然需要一套框架;
langchain可以方便的已链式调用的方式,整合各个组件和ai资源
环境
python:3.10.11
langchain特性介绍
LLM和提示(Prompt):对所有LLM大模型进行了API抽象,统一了大模型访问API,同时提供了Prompt提示模版管理机制
链(Chain):对常见的场景封装了一些现成的模块;比如基于上下文的问答;自然语言生成sql查询等等;这些任务可以像流一样,一步一步的执行,串起来像链一样,所以叫做链(Chain)
LCEL:LangChain Expression Language(LCEL), langchain新版本的核心特性,用于解决工作流编排问题,通过LCEl表达式,可以灵活的自定义任务处理链
RAG(数据增强生成):将新的信息导入到LLM,增强其生成的内容的质量
Agents:利用LLM的自然语言理解和推理能力,依据用户的需求自动调用外部系统、设备去共同完成任务;比如:用户输入“明天请假一天”,LLM自动调用请假系统,发起请假申请
memory(模型记忆):让LLM记住之前的对话内容;
langchain框架组成
LangChain库:python和JavaScript库;包含接口和集成多种组件的运行时基础,以及现成的链和代理的实现
LangChain-core:基础抽象和LangChain表达语言langchain community:第三方集成,主要包括LangChain集成的第三方组件LangChain:主要包括chain(链),agent(代理)和retriever(检索)
LangChain模版:LangChain官方提供的一些AI任务模版
LangServer:基于FastAPI可以将LangChain定义的chain发布成rest api
LangSmith:开发平台,是个云服务,支持LangChain debug,任务监控
调用流程
(, 下载次数: 0)
上传
点击文件名下载附件
LangChain对大模型的封装主要包括LLM和Chat Model两种类型
LLM:问答模型,模型接收1个文本输入,然后返回1个文本结果
Chat Model:对话模型,接收一组对话消息,然后返回对话消息,类似聊天消息一样
组成简介概括
langSmith:链路追踪,监控应用
langServer:通过langchain开发一个应用后,通过fast api库可以对外暴露rest api接口给第三方服务调用
template:模版定义
langchain:
chains:链式调用
Agents:智能体开发
retrieval strategies:检索策略;比如检索向量数据库
langchain community
:langchain社区
model i/o:大模型对接
model:模型参数
Prompt:提示词模版
example selector:样例
output parser:输出格式化
retrieval:针对rag组件的设计
retriever:向量数据库检索;
document loader:文档加载;即喂数据;
vector store:将数据转成向量后存储
text splitter:文本分割:比如1个100MB的pdf要分割后丢进去,不能整个塞进去
embedding model:调用大模型
agent tooling
:工具调用,比如问大模型查询天气情况,调用天气工具的api
tool
toolkit
langchain core
LCEL-language expression language
用一套语法方便的去调用接口,回调,跟踪,异步,组合调用等;
入门demo
安装LangChain
pip install langchain
复制代码
设置openai的api key环境变量
环境变量key
OPENAI_API_KEY
或者在申明的时候直接把api key传进去
如果在国内的话需要一个中转站
我用的是这个
https://ai.nengyongai.cn/study
# 引入langchain聊天场景的提示词模版from langchain_core.prompts import ChatPromptTemplate
# 引入langchain openai sdkfrom langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
llm = ChatOpenAI(
api_key="xxx",# 国内中转站
base_url="https://ai.nengyongai.cn/v1")# 定义提示词模版# 根据message生成提示词模版
prompt = ChatPromptTemplate.from_messages([# 给ai做一个定义,让ai以 世界级的技术专家 角度来回答("system","你是世界级的技术专家"),# 参数模版;这里user代表用户输入的问题("user","{input}")])# 创建1个字符串输出解析器;格式化输出
output_parser = StrOutputParser()# 通过langchain的链式调用,生成一个chain# 类似linux的pipeline,从左到右的顺序执行# 先执行prompt完成提示词模版(prompt template)格式化处理
chain = prompt | llm | output_parser
result = chain.invoke({"input":"帮我写一篇关于AI的技术文章,100个字"})print(result)
复制代码
运行成功后会打印信息在控制台上
(, 下载次数: 0)
上传
点击文件名下载附件
原文地址:https://blog.csdn.net/weixin_43944305/article/details/148483875
欢迎光临 AI创想 (https://www.llms-ai.com/)
Powered by Discuz! X3.4