赞
踩
LangChain 作为一个大语言模型(LLM)集成框架,旨在简化使用大语言模型的开发过程,包括如下组件:
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语言开发。
•Prompt【可选】
◦告知LLM内system服从什么角色
◦占位符:设置{input}以便动态填补后续用户输入
•Retriever【可选】
◦LangChain一大常见应用场景就是RAG(Retrieval-Augmented Generation),RAG 为了解决LLM中语料的通用和时间问题,通过增加最新的或者垂类场景下的外部语料,Embedding化后存入向量数据库,然后模型从外部语料中寻找相似语料辅助回复
•Models
◦可做 Embedding化,语句补全,对话等
支持的模型选择,OpenAI为例
•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 : 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作为一个使用流程直观的大模型开发框架,掌握它优势多多。
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/914406
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。