GPT实战系列-搭建LangChain流程简单应用

GPT实战系列-搭建LangChain流程简单应用

LLM大模型:

GPT实战系列-探究GPT等大模型的文本生成

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-大话LLM大模型训练

随着OpenAI的GPT-4这样的大型语言模型(LLMs)已经风靡全球,现在让它们自动执行各种任务,如回答问题、翻译语言、分析文本等。LLMs是在交互上真正体验到像"人工智能"。

如何管理这些LLM呢?

LangChain在这方面发挥重要作用。

LangChain使构建由LLMs驱动的应用程序变得简单,使用LangChain,可以在统一的界面中轻松与不同类型的LLMs进行交互,管理模型版本,管理对话版本,并将LLMs连接在一起。

python 复制代码
from langchain.llms import OpenAI
llm = OpenAI(openai_api_key="...")

LangChain的关键组件

LangChain的优势是它灵活且模块化,可以将语言处理分解为单独的部分,让开发者创建自定义工作流程。以下是它的关键部分:

  • 组件和链:执行语言处理特定任务的模块。链将这些组件连接起来,形成自定义工作流程

  • 提示模板:可重复使用的提示,可以更改其中的特定值。例如,一个询问用户姓名的提示可以被个性化

  • 向量存储:通过文档的数字意义来保存和搜索信息

  • 索引和检索器:存储和查找有关模型训练数据的详细信息,以获得更好的响应

  • 输出解析器:管理和精炼模型的响应,使其更有结构

  • 示例选择器:从模型的训练数据中选择正确的例子,提高响应准确性

  • 代理:具有特定任务的唯一实例,如聊天机器人或移动应用程序

构建LangChain的应用程序

LangChain的LLM类可以连接到不同的模型提供商,如OpenAI和Hugging Face。可以轻松使用LangChain构建一个带有提示的应用程序,并得到输出。例如:

python 复制代码
import os
from langchain.llms import OpenAI
llm = OpenAI(model_name="gpt-3.5-turbo",
             openai_api_key=os.environ["OPENAI_API_KEY"])
print(llm("Tell me a joke about pizza!"))

这可能会得到类似这样的输出:

复制代码
Why did the pizza maker go to art school?
Because they wanted to get a "pizza" the creative action!
Hahahaha..... so funny Mr. gpt-3.5-turbo....

如果想要切换模型,只需简单更改代码。

LangChain管理Prompt

在LangChain中的PromptTemplate通过使用模板生成提示,帮助生成提示。可以在保持主结构的同时轻松更改值。例如:

python 复制代码
from langchain.llms import OpenAI
from langchain import PromptTemplate
import os

USER_INPUT = "chocolate cake"
llm = OpenAI(model_name="gpt-3.5-turbo",
             openai_api_key=os.environ["OPENAI_API_KEY"])

template = """I'm interested in making {dish}. Can you provide me with a simple recipe for it, including the main ingredients and basic instructions?"""
prompt = PromptTemplate(input_variables=["dish"], template=template)
final_prompt = prompt.format(dish=USER_INPUT)
print(f"LLM Output: {llm(final_prompt)}")

这使得管理所有提示并处理动态输入变得非常容易。

结合LLMs和Prompt的工作流

在LangChain中进行链接意味着将LLMs与其他元素组合用于应用程序。可以:

  • 使用一个LLM的输出作为另一个LLM的输入。
  • 将LLMs与模板结合使用。
  • 将LLMs与外部数据或聊天历史结合使用。

例如:

python 复制代码
from langchain.llms import OpenAI
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain import PromptTemplate
import os

llm = OpenAI(model_name="gpt-3.5-turbo",
             openai_api_key=os.environ["OPENAI_API_KEY"])

# 第一步
template = "Can you provide a brief summary of the movie {movie_title}? Please keep it concise."
first_prompt = PromptTemplate(input_variables=["movie_title"],template=template)
chain_one = LLMChain(llm=llm, prompt=first_prompt)

# 第二步
second_prompt = PromptTemplate(input_variables=["actor"],
                               template="Can you list three movies featuring {actor}?")
chain_two = LLMChain(llm=llm, prompt=second_prompt)

# 结合第一和第二链
overall_chain = SimpleSequentialChain(chains=[chain_one, chain_two], verbose=True)
final_answer = overall_chain.run("Inception")

此示例构建了一个两步链,用于查找有关电影的演员信息。

LangChain是一个Python框架,让我们可以使用LLMs构建应用程序。它与各种模型连接,使与LLM和提示管理有关的一切变得简单。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End

GPT专栏文章:

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

大模型查询工具助手之股票免费查询接口

GPT实战系列-简单聊聊LangChain

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

相关推荐
冬奇Lab10 小时前
Agent 系列(13):Agent 安全与防护——提示词注入、工具滥用、数据泄露怎么防
人工智能·llm·agent
装不满的克莱因瓶13 小时前
学习并掌握 LangChain 检索器的作用,实现让 LLM 动态调用知识库功能
人工智能·python·ai·langchain·llm·agent·智能体
惟愿光怪陆离14 小时前
OpenCode 注意事项
llm
摆烂工程师14 小时前
今天 ChatGPT 大规模无差别封号,附上 GPT 官方申诉入口 以及 GPT 聊天记录备份方式
chatgpt·openai·ai编程
janeysj14 小时前
langgraph学习笔记(一)
人工智能·langchain
wuhen_n16 小时前
LangGraph 入门:AI Agent 工作流可视化编排
前端·langchain·ai编程
wuhen_n16 小时前
LangChain Agent 优化:提升智能体决策准确率
前端·langchain·ai编程
初旭save18 小时前
Agent Skill 不是写 Prompt,是给 LLM 做存储分层
llm·agent·claude