LangChain是Python和JavaScript/Typescript的功能强大库,可让您快速原型制作大型语言模型应用程序。它允许您将LLM任务链接在一起(因此名称),甚至允许您快速,轻松地运行自主座位。今天,我们将介绍连锁店的基础知识,因此您可以使用最新的LLM项目来跑步!
先决条件
- python 3.9
- 3.10及以上的一些Langchain的模块存在一些问题。
- An OpenAI API Key
入门
我们将创建一个python虚拟环境并以这种方式安装依赖项。
mkdir myproject
cd myproject
# or python3, python3.9, etc depending on your setup
python -m venv env
source env/bin/activate
一旦完成,我们就可以安装依赖项。本教程我们唯一需要的是Langchain和Openai。最后,python-dotenv
将用于将OpenAI API键加载到环境中。
pip install langchain openai python-dotenv
Langchain是一个非常大的图书馆,因此可能需要几分钟。在下载时,创建一个名为.env
的新文件并粘贴了您的API键。这是一个示例:
OPENAI_API_KEY=Your-api-key-here
一旦完成,我们就可以制作第一个链!
快速概念
您需要了解一些基本概念才能开始。
-
链条可以被认为是列表中使用LLM或多个LLM调用的动作列表。链由3个简单的零件组成。
- Prompt Template - 因此您可以快速更改输入而不更改提示。
- LLM - 实际运行您提示的AI。
- Output Parsers - 将输出转换为有用的东西,通常只是另一个字符串。
写链
在此示例中,我们将写一条链,该链为教育渠道生成一个Tiktok脚本(我毕竟是Zoomer)。首先,我们需要为Tiktok生成描述。我们将使用及时的模板,以便以后重复使用提示。
# prompts.py
from langchain.prompts import PromptTemplate
description_prompt = PromptTemplate.from_template(
"Write me a description for a TikTok about {topic}")
然后可以在链中使用。在定义链条之前,我们需要定义一个LLM以供链条使用。 Langchain建议大多数用户应该使用ChatOpenAI
类来获得Chatgpt API的成本优势和简单性。
# chain.py
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
from dotenv import load_dotenv
from prompts import description_prompt
# loads the .env file
load_dotenv()
llm = ChatOpenAI(model_name="gpt-3.5-turbo")
一旦完成,我们就可以创建链条。
description_chain = LLMChain(llm=llm, prompt=description_prompt, verbose=True)
现在我们可以用.predict
调用新链3
output = description_chain.predict(topic="Cats are cool")
print(output)
这是输出:
ð»释放您的内部猫咪爱好者!从他们迷人的眼睛到纯粹的神秘方式,猫都是凉爽的缩影。 ð¾观看他们毫不费力地拥有自己的空间,教我们放松和演奏的艺术。无论他们是掌握杂技演员还是为猫纳普cur缩,他们的凉爽共鸣都是不可否认的。 ð加入猫的热潮,拥抱这些四足潮流引领者的惊人! ð±ð«#catsrule #coolcats #felinevibes
现在我们有了描述,我们需要将其编写一个脚本。这是链接进来的地方 - 我们可以使用略有不同的提示再次依次调用LLM。首先,让我们为下一个链条定义一个新的提示。
# add to prompts.py
script_prompt = PromptTemplate.from_template(
"Write me a script for a TikTok given the following description: {description}")
这是您的chain.py
现在应该看起来的样子。
# chain.py
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
from dotenv import load_dotenv
# this line changed!!!!!
from prompts import description_prompt, script_prompt
# loads the .env file
load_dotenv()
llm = ChatOpenAI(model_name="gpt-3.5-turbo")
description_chain = LLMChain(llm=llm, prompt=description_prompt, verbose=True)
output = description_chain.predict(topic="Cats are cool")
print(output)
# new code below this line
script_chain = LLMChain(llm=llm, prompt=script_prompt)
script = description_chain.predict(description=output, verbose=True)
print(script)
这是新输出:
[开镜头:猫迷人的眼睛的特写,慢慢眨眼。]
旁白(Voiceover):“ð»释放您的内心猫咪爱好者!”
[切成一个时尚的猫,自信地穿过房间,尾巴优雅地摇动。]
叙述者(旁白):“从他们迷人的眼睛到他们的神秘方式……”
[过渡到以不同松弛姿势闲逛的猫的蒙太奇。]
叙述者(旁白):“猫是凉爽的缩影。ð¾”
[显示一只猫毫不费力地跳到高架上,精确着陆。]
叙述者(旁白):“看着他们毫不费力地拥有自己的空间……”
[切成一个躺在沙发上的人,而一只猫在嬉戏的弦玩具上嬉戏蝙蝠。]
叙述者(旁白):“教我们放松和娱乐的艺术。”
[在追逐羽毛玩具时,展示一只猫做一个优雅的中空翻转。]
叙述者(Voiceover):“他们是否掌握杂技...
[过渡到一个猫的舒适场景,在阳光明媚的地方curl缩,眼睛半闭塞。]
旁白(Voiceover):“或cur缩为猫……”
[切成各种个性和皮毛模式的一组猫。]
旁白(Voiceover):“他们的凉爽共鸣是不可否认的。”
[展示一个抚摸内容猫的人,既有片刻的联系。]
叙述者(旁白):“ð加入猫的热潮并拥抱令人敬畏的……”
[切成一只嬉戏的猫追着尾巴,伴随着开朗的笑声。]
叙述者(Voiceover):“ ...在这些四足潮流引诱器中!”
[以一只猫坐着的镜头而结束,自信地注视着相机。]
叙述者(Voiceover):“ð±ð«#Catsrule #CoolCats #felinevibes”
[淡出猫的眼睛的最后一瞥。]
叙述者(旁白):“因为酷时,猫写了这本书。”
[结束屏幕:“跟随更多猫般的乐趣!”]
[随着Tiktok视频总结,背景音乐逐渐消失。]
这样使用它们是 fine ,但是如果我们想将它们连接在一起怎么办?这就是Sequential Chains所在的位置。这些允许您将多个链条连接到一个单个功能调用中,并在定义的顺序下执行它们。有两种类型的顺序链,我们将重点关注简单的顺序链。编辑链导入线以下:
from langchain.chains import LLMChain, SimpleSequentialChain
将LLM链移到文件的顶部,然后删除打印语句和.predict
调用。
# chain.py
from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain, SimpleSequentialChain
from dotenv import load_dotenv
# this line changed!!!!!
from prompts import description_prompt, script_prompt
# loads the .env file
load_dotenv()
llm = ChatOpenAI(model_name="gpt-3.5-turbo")
description_chain = LLMChain(llm=llm, prompt=description_prompt)
script_chain = LLMChain(llm=llm, prompt=script_prompt)
tiktok_chain = SimpleSequentialChain(chains=[description_chain, script_chain], verbose=True)
script = tiktok_chain.run("cats are cool")
print(script)
这是输出:
标题:#CoolCatsrule
int。客厅 - 天
随着摄像机在一个时尚装饰的客厅中,一首时尚,乐观的歌曲开始播放。可以看到各种以猫为主题的装饰,为展示猫的不可否认的凉爽树立了完美的氛围。
切成:
int。卧室 - 天
一个年轻的女人,在她二十多岁的时候,站在全长的镜子前。她穿着时尚的衣服,拿着一只猫,她的怀里同样很酷。
年轻女人
(看镜子)
准备向世界展示为什么猫统治!当相机放大猫科动物时,年轻女子将猫轻轻地放在地上。
切成:
int。厨房 - 天
一只猫坐在厨房的柜台上,戴着太阳镜时毫不费力地在一个爪子上平衡。相机周围摇晃,捕捉其凉爽的举止。
切成:
int。后院 - 天
一只猫在吊床上闲逛,戴着一顶小帽子,读书。摄像机捕捉了它放松而精致的氛围。
切成:
int。客厅 - 天
年轻女子坐在沙发上,周围是一群酷猫。每只猫都展示了它们独特的凉爽度,就像一件穿着皮夹克和另一只弹吉他的猫一样。
年轻女人
(指向猫)
看?猫规则!摄像机放大了猫,显示了他们不可否认的猫科动物。
切成:
int。客厅 - 天
年轻的女人和她的酷猫聚集在桌子旁,在那里他们喜欢一个迷你猫聚会。有猫主题的零食,时髦的饮料,甚至还有DJ猫刮擦乙烯基记录。
切成:
int。客厅 - 天
年轻女子举起一个标语,上面写着“ #coolcatsrule”,因为猫在她旁边摆姿势。摄像机摇晃以露出一个有趣,充满活力的舞蹈常规,因为它们都陷入了节奏。
切成:
int。客厅 - 天
年轻的女人和她的酷猫打出了最后的姿势,相机捕捉了他们不可否认的凉爽。
年轻女人
(看相机)
记住,伙计,猫规则!屏幕随着#CoolCatsrule的主题逐渐消失。
淡出。
结论
Langchain是一个改变游戏规则的人,对于希望快速原型大型语言模型应用程序的任何人来说。在短短几分钟之内,我们就完成了创建链条,定义提示,甚至连接多个LLM调用的过程,以创建动态的Tiktok脚本。
Langchain的力量在于其简单性和灵活性。无论您是经验丰富的开发人员还是刚开始,Langchain的直观设计都可以使您利用前所未有的大型语言模型的功能。从生成创意内容到运行自主代理,可能性是无限的。
那为什么要等?今天深入Langchain,并在您的项目中释放AI的潜力。如果您想将AI集成到现有的工作流程或产品中,那么时间范围实验室将在这里提供帮助。我们的热情AI专家团队专门研究AI咨询,开发,内部工具和LLM托管,致力于建立AI的未来,并帮助您的业务在这个快速变化的行业中蓬勃发展。 Contact us今天!
通过稳定扩散产生的封面图像。