当今在ChatGPT出现后,商业化大模型领域得到了一个全新的突破
而对我们应用开发人员,如何使用这类大模型是一个新的问题
而在这个节点上,LangChain作为一个以大模型为引擎的全新应用开发框架从天而降,让我们利用大模型的便捷,开发出令人惊叹的智能应用
那么LangChain作为一个大模型开发的框架,如何理解呢?
其可以通过API调用其他诸如ChatGPT等大型语言模型
除此之外,还提供了其他的特性进行使用

比如将语言模型与其他数据源连接起来,从而实现对更丰富、更多样化数据的理解和利用。
让语言模型与其环境进行交互,使得模型能够对其环境有更深入的理解,并能够进行有效的响应。
本次学习也会先从对LangChain的基本使用
再到其中涉及的组件,诸如模型,提示模板,数据检索,记忆,链,代理这几个组件来说。
之后是一个融会贯通,将上面遇到的组件进行连接,尝试使用不同的方案来完成任务。
那么我们即将开始第一阶段,也就是对LangChain的基本使用
简单来说,就是使用LangChain连接到GPT
第一步就是安装相关的包
pip install langchain 来安装LangChain
pip install openai 来安装OpenAI
然后就是声明使用这个OpenAIKey
之后我再看关于其中agent的简单实用
| pip install –upgrade langchain
pip install transformers pip install pillow pip install torch torchvision torchaudio |
| import osos.environ[“OPENAI_API_KEY”] = ‘你的OpenAI Key’
from langchain.llms import OpenAI llm = OpenAI(model_name=”text-davinci-003″,max_tokens=200) text = llm(“请给我写一句情人节红玫瑰的中文宣传语”) print(text) |
先导入了OpenAI的key,并且初始化了OpenAI的对象
把相关的需求传递给了模型,并尝试获取到结果
| #—- Part 0 导入所需要的类
import os import requests from PIL import Image from transformers import BlipProcessor, BlipForConditionalGeneration from langchain.tools import BaseTool from langchain import OpenAI from langchain.agents import initialize_agent, AgentType #—- Part I 初始化图像字幕生成模型# 指定要使用的工具模型(HuggingFace中的image-caption模型) hf_model = “Salesforce/blip-image-captioning-large” # 初始化处理器和工具模型# 预处理器将准备图像供模型使用 processor = BlipProcessor.from_pretrained(hf_model) # 然后我们初始化工具模型本身 model = BlipForConditionalGeneration.from_pretrained(hf_model) #—- Part II 定义图像字幕生成工具类 class ImageCapTool(BaseTool): name = “Image captioner” description = “为图片创作说明文案.” def _run(self, url: str): # 下载图像并将其转换为PIL对象 image = Image.open(requests.get(url, stream=True).raw).convert(‘RGB’) # 预处理图像 inputs = processor(image, return_tensors=”pt”) # 生成字幕 out = model.generate(**inputs, max_new_tokens=20) # 获取字幕 caption = processor.decode(out[0], skip_special_tokens=True) return caption def _arun(self, query: str): raise NotImplementedError(“This tool does not support async”) #—- PartIII 初始化并运行LangChain智能代理 # 设置OpenAI的API密钥并初始化大语言模型(OpenAI的Text模型) os.environ[“OPENAI_API_KEY”] = ‘你的OpenAI API Key’ llm = OpenAI(temperature=0.2) # 使用工具初始化智能代理并运行它 tools = [ImageCapTool()] agent = initialize_agent(agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, tools=tools, llm=llm, verbose=True,) img_url = ‘https://mir-s3-cdn-cf.behance.net/project_modules/hd/eec79e20058499.563190744f903.jpg’ agent.run(input=f”n请给出合适的中文文案”) |
这样就是利用传入的图片,让模型生成对应的文案
在使用模型的时候,指定使用了temperature,还制定了参数0.2,意味着保留一定的随机性。
那么作为开篇,我们所讲述的就这么多,主要是关于LangChain的整体一个简介。
我们在接下来将会按照上面开篇讲述的路线,一步步的剖析LangChain的使用。