首页 > 其他分享 >LangChain学习三:链-实战

LangChain学习三:链-实战

时间:2023-12-22 23:07:45浏览次数:34  
标签:实战 product prompt chain langchain 学习 LangChain llm import



文章目录

  • 上一节内容:LangChain学习二:提示-实战(下半部分)
  • 学习目标:明白链是什么?有哪些?怎么用?
  • 学习内容一:介绍
  • 学习内容二:有那些
  • 学习内容三:实战
  • 3.1 LLMChain
  • 3.1.1 声明:接入大模型、声明PromptTemplate、LLMChain
  • 3.1.2 送入大模型
  • 3.1.3.多个参数
  • 3.2 顺序链


上一节内容:LangChain学习二:提示-实战(下半部分)

LangChain学习二:提示-实战(下半部分)

学习目标:明白链是什么?有哪些?怎么用?


学习内容一:介绍

  链允许我们将多个组件组合在一起,创建一个单一的、一致的应用程序。

例如,我们可以创建一个链,该链接接受用户输入,使用 PromptTemplate 对其进行格式化,然后将格式化后的响应传递给 LLM。我们可以通过将多个链组合在一起,或者通过将链与其他组件组合在一起,来构建更复杂的链。

学习内容二:有那些

  • LLMChain:是一个简单的链,它接受一个提示模板,使用用户输入对其进行格式化,并从 LLM 返回响应。

学习内容三:实战

3.1 LLMChain

LLMChain:是一个简单的链,它接受一个提示模板,使用用户输入对其进行格式化,并从 LLM 返回响应。

3.1.1 声明:接入大模型、声明PromptTemplate、LLMChain

from langchain.prompts import PromptTemplate

from langchain.chat_models import ChatOpenAI
llm=ChatOpenAI(
            streaming=True,
            verbose=True,
            temperature=0,
            # callbacks=[callback],
            openai_api_key='none',
            openai_api_base='http://localhost:8000/v1',
            model_name="Qwen-7B-Chat"
        )
prompt = PromptTemplate(
    input_variables=["product"],
    template="一个制造{product}产品的公司的好名字是什么?中文",
)

from langchain.chains import LLMChain
# 将llm和prompt 进行和LLMChain关联
chain = LLMChain(llm=llm, prompt=prompt)

3.1.2 送入大模型

#只运行指定输入变量的链
print(chain.run("各种颜色的袜子"))

LangChain学习三:链-实战_chrome


当然上面我们直接用PromptTemplate模板的,如果是聊天模型,可以是以下做法

from langchain.prompts import PromptTemplate

from langchain.chat_models import ChatOpenAI
llm=ChatOpenAI(
            streaming=True,
            verbose=True,
            temperature=0,
            # callbacks=[callback],
            openai_api_key='none',
            openai_api_base='http://localhost:8000/v1',
            model_name="Qwen-7B-Chat"
        )
from langchain.prompts.chat import (
    ChatPromptTemplate,
    HumanMessagePromptTemplate,
)
human_message_prompt = HumanMessagePromptTemplate(
        prompt=PromptTemplate(
            template="一个制造{product}产品的公司的好名字是什么?中文",
            input_variables=["product"],
        )
    )
chat_prompt_template = ChatPromptTemplate.from_messages([human_message_prompt])
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=chat_prompt_template)
print(chain.run("各种颜色的袜子"))

效果也是一样的

LangChain学习三:链-实战_langchain_02

3.1.3.多个参数

在上面的情况我们只是定义了一个product变量,如果我们有多个变量呢,这时候我们可以传一个字典进去
字典格式{‘变量名’:变量值,‘变量名’:变量值}

  • chain.run(字典):直接出结果
  • chain(inputs=字典):变量和结果,可以return_only_outputs=True 只输出结果
from langchain.prompts import PromptTemplate

from langchain.chat_models import ChatOpenAI
llm=ChatOpenAI(
            streaming=True,
            verbose=True,
            temperature=0,
            # callbacks=[callback],
            openai_api_key='none',
            openai_api_base='http://localhost:8000/v1',
            model_name="Qwen-14B-Chat"
        )
from langchain.prompts.chat import (
    ChatPromptTemplate,
    HumanMessagePromptTemplate,
)
human_message_prompt = HumanMessagePromptTemplate(
        prompt=PromptTemplate(
            template="一个制造{product}产品的{name}公司的好名字是什么?中文",
            input_variables=["product","name"],
        )
    )
chat_prompt_template = ChatPromptTemplate.from_messages([human_message_prompt])
from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=chat_prompt_template)

print(chain.run({'product':"食品",'name':"提供"}))

out=chain(inputs={'product':"食品",'name':"提供"})

print(out)

LangChain学习三:链-实战_langchain_03

out=chain(inputs={'product':"食品",'name':"提供"},return_only_outputs=True)

print(out)

LangChain学习三:链-实战_应用程序_04

3.2 顺序链

未完成待续


标签:实战,product,prompt,chain,langchain,学习,LangChain,llm,import
From: https://blog.51cto.com/u_15854304/8938825

相关文章

  • 2023-2024-1 20231309 《计算机基础与程序设计》第十三周学习总结
    2023-2024-120231309《计算机基础与程序设计》第十三周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十三周作业这个作业的目标自学教材《C语言程序设计》第12章并完成云班课测......
  • PySide6学习笔记(一)VSCode配置
    vscode配置(windows)在vscode中安装Python与QTforPython和coderunner插件(推荐)   Python与QTforPython插件开发PySide必备coderunner(可以右键运行py文件)安装PySide6pipinstallPySide6配置QTforpython插件 点击插件设置-拓展设置找到......
  • openGauss学习笔记-169 openGauss 数据库运维-备份与恢复-导入数据-更新表中数据-使用
    openGauss学习笔记-169openGauss数据库运维-备份与恢复-导入数据-更新表中数据-使用DML命令更新表openGauss支持标准的数据库操作语言(DML)命令,对表进行更新。169.1操作步骤假设存在表customer_t,表结构如下:CREATETABLEcustomer_t(c_customer_skinteger,......
  • java接口自动化测试实战003----fastjson处理传入参数为JSON格式数据
    一、fastjson概述1、概述   fastjson是阿里爸爸开发的一款专门用于Java开发的包,可以方便的实现json对象与JavaBean对象的转换,实现JavaBean对象与json字符串的转换,实现json对象与json字符串的转换。2、常用API   fastjsonAPI入口类是com.alibaba.fastjson.JSON,常......
  • java接口自动化测试实战002----测试数据封装及ExcelUtil优化
    一、利用testNG测试框架进行封装1、封装实现新建测试类,类中新增多个方法,每个方法存储一条测试数据并调用HttpUtl类中的doGet或doPost方法。缺点:代码复杂、繁琐,且不适用测试数据量大的情况。2、封装步骤(1)maven的pom.xml文件中添加testNG测试框架的依赖,如下所示:<!--https://......
  • java接口自动化测试实战004----分表存储接口信息和用例信息之CaseUtil和RestUtil
    一、分表存储用例信息和接口信息1、实现思想  将用例相关信息存储在用例表单中,将接口信息存储在接口信息表单中,创建对应的类存储表单中的信息。2、实现步骤(1)修改表格文件,分表存储用例信息和接口信息,如下图所示:     (2)修改ExcelUtil中的读取函数datas,让表单名称......
  • Python+Selenium框架实战系列003----测试数据分离与ddt技术&断言
    一、测试数据分离1、新建testData文件夹,新建login_data.py文件,如下所示:   2、在login_datas.py文件中存放测试用例数据,如下所示:#正常场景success_data={"mobile":"17839196010","pwd":"duhui94619"}#异常用例--手机号异常phone_data=[{"mobile":&......
  • python自动化学习笔记5-----allure测试报告
    1、运行测试报告 2、allure注解的使用  3、优化测试报告之添加对应的标签 4、注解的使用     5、yaml文件格式 6、更改logo(1)allure目录下找到allure.yml的文件,增加插件    (2)在插件目录下添加要展示的图片    (3)修改styles.cs......
  • python自动化学习笔记6-----jekins环境搭建及使用
        msi版本安装后,要去电脑服务里面设置为自启动,否则重启电脑后使用不了。  web自动化1、实现linux部署jekins,window运行自动化代码,不在同一个机器上运行在执行机(自己的电脑上)访问jekins网址进行相应设置        运行后,进行连接,连接成功后,小......
  • python自动化学习笔记4-----pytest单元测试框架
            ......