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模版: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
  1. pip install langchain
复制代码
设置openai的api key环境变量
环境变量key
OPENAI_API_KEY
或者在申明的时候直接把api key传进去
如果在国内的话需要一个中转站
我用的是这个
https://ai.nengyongai.cn/study
  1. # 引入langchain聊天场景的提示词模版from langchain_core.prompts import ChatPromptTemplate
  2. # 引入langchain openai sdkfrom langchain_openai import ChatOpenAI
  3. from langchain_core.output_parsers import StrOutputParser
  4. llm = ChatOpenAI(
  5.     api_key="xxx",# 国内中转站
  6.     base_url="https://ai.nengyongai.cn/v1")# 定义提示词模版# 根据message生成提示词模版
  7. prompt = ChatPromptTemplate.from_messages([# 给ai做一个定义,让ai以 世界级的技术专家 角度来回答("system","你是世界级的技术专家"),# 参数模版;这里user代表用户输入的问题("user","{input}")])# 创建1个字符串输出解析器;格式化输出
  8. output_parser = StrOutputParser()# 通过langchain的链式调用,生成一个chain# 类似linux的pipeline,从左到右的顺序执行# 先执行prompt完成提示词模版(prompt template)格式化处理
  9. chain = prompt | llm | output_parser
  10. 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