首页 > 其他分享 >把langchain跑起来的3个方法

把langchain跑起来的3个方法

时间:2023-07-04 17:12:33浏览次数:67  
标签:load 起来 tools agent langchain llm import 方法

使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来的方法,如有错误欢迎纠正。

Langchain官方文档地址:
https://python.langchain.com/

基础功能

LLM 调用

  • 支持多种模型接口,比如 OpenAI、HuggingFace、AzureOpenAI …
  • Fake LLM,用于测试
  • 缓存的支持,比如 in-mem(内存)、SQLite、Redis、SQL
  • 用量记录
  • 支持流模式(就是一个字一个字的返回,类似打字效果)

Prompt管理,支持各种自定义模板

拥有大量的文档加载器,比如 Email、Markdown、PDF、Youtube …

对索引的支持

  • 文档分割器
  • 向量化
  • 对接向量存储与搜索,比如 Chroma、Pinecone、Qdrand

Chains

  • LLMChain
  • 各种工具Chain
  • LangChainHub

详细地址可参考:
https://www.langchain.cn/t/topic/35

测试Langchain工程的3个方法:

1 使用Langchian提供的FakeListLLM

为了节约时间,直接上代码

import os
from decouple import config
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.agents import load_tools

这里mock下ChatGPT,使用mockLLm

#from langchain.llms import OpenAI
from langchain.llms.fake import FakeListLLM
os.environ["OPENAI_API_KEY"] = config('OPENAI_API_KEY')

REPL 是 “Read–Eval–Print Loop”(读取-求值-打印-循环)的缩写,它是一种简单的、交互式的编程环境。

在 REPL 环境中,用户可以输入一条或多条编程语句,系统会立即执行这些语句并输出结果。这种方式非常适合进行快速的代码试验和调试。

tools = load_tools(["python_repl"])
responses=[
    "Action: Python REPL\nAction Input: chatGpt原理",
    "Final Answer: mock答案"
]
llm = FakeListLLM(responses=responses)
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("chatGpt原理2")

2 使用Langchian提供的HumanInputLLM,访问维基百科查询

from langchain.llms.human import HumanInputLLM
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from wikipedia import set_lang

使用维基百科工具

tools = load_tools(["wikipedia"])

这里必须要设置为中文url前缀,不然访问不了

set_lang("zh")

初始化LLM

llm = HumanInputLLM(prompt_func=lambda prompt: print(f"\n===PROMPT====\n{prompt}\n=====END OF PROMPT======"))

初始化agent

agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("喜羊羊")

使用huggingface

https://huggingface.co/docs

1.注册账号

2.创建Access Tokens

Demo: 使用模型对文档进行摘要

from langchain.document_loaders import UnstructuredFileLoader
from langchain.chains.summarize import load_summarize_chain
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain import HuggingFaceHub
import os
from decouple import config

from langchain.agents import load_tools

这里mock下ChatGPT,使用HUGGINGFACEHUB

os.environ["HUGGINGFACEHUB_API_TOKEN"] = config('HUGGINGFACEHUB_API_TOKEN')

导入文本

loader = UnstructuredFileLoader("docment_store\helloLangChain.txt")

将文本转成 Document 对象

document = loader.load()
print(f'documents:{len(document)}')

初始化文本分割器

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size = 500,
    chunk_overlap = 0
)

切分文本

split_documents = text_splitter.split_documents(document)
print(f'documents:{len(split_documents)}')

加载 LLM 模型

overal_temperature = 0.1
flan_t5xxl = HuggingFaceHub(repo_id="google/flan-t5-xxl", 
                         model_kwargs={"temperature":overal_temperature, 
                                       "max_new_tokens":200}
                         ) 

llm = flan_t5xxl
tools = load_tools(["llm-math"], llm=llm)

创建总结链

chain = load_summarize_chain(llm, chain_type="refine", verbose=True)

执行总结链

chain.run(split_documents)

作者:京东科技 杨建

来源:京东云开发者社区

标签:load,起来,tools,agent,langchain,llm,import,方法
From: https://www.cnblogs.com/jingdongkeji/p/17526245.html

相关文章

  • MacBook能连上Wi-Fi,浏览器连接不上网站的解决方法
    MacBook连接上Wi-Fi后,可以使用微信等软件,却无法打开网页,解决办法是1.点击左上方苹果图标>>>系统设置>>>网络>>>点击详细信息点击DNS>>>将DNS服务器进行修改>>>+-号是增加或删除>>>然后就能正常使用浏览器 部分DNS ......
  • 【FPGA基础】COE文件与MIF文件使用方法
    在FPGA开发中,COE文件和MIF文件是常用的存储器初始化文件。COE文件和MIF文件都用于导入存储器ROM或RAM的存储数据,但是它们的格式和语法有些不同。其中COE文件主要用于Vivado,MIF文件主要用于AlteraQuartus软件。本文主要介绍COE文件和MIF文件的使用方法。一、COE文件COE文件是一......
  • java工具类static静态方法读取yml配置
    当我们需要在工具类中获取yml配置的时候,由于变量是staic导致获取不到yml配置因为spring加载静态方法比IOC早,所以不能直接使用@Value注解读取yml配置,读取结果是null。@ComponentpublicclassTestUtil{//使用@Value注解读取yml配置的数据@Value("${test.url}")......
  • AI_MindSpore_先学走路再开跑—开动起来
    AI模型本质是“参数估计”(Learningisparameterestimation梯度消失和梯度爆炸梯度消失和梯度爆炸的产生原因源于神经网络的串联式结构和反向传播优化方法。源于反向传播中梯度的累乘影响,从而导致了浅层网络的参数发生了变化微弱或者震荡较大的问题解决方案一个是从神经......
  • 封装$tryCatch方法(axios请求方法),避免写重复代码
    封装$tryCatch方法(axios请求方法),避免写重复代码:https://blog.csdn.net/qq_41995320/article/details/122621498?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122621498-blog-109624790.235%5Ev38%5Epc_relevant......
  • 在微软官网下载原版Win11镜像ISO文件的方法分享
    Windows11引入了SnapLayouts和SnapGroups,使窗口管理更加方便。SnapLayouts可以快速将应用程序窗口分割为不同的布局,而SnapGroups可以保存和还原多个应用程序窗口的布局.如果你想体验Win11新功能,推荐在微软官网下载原版ISO系统镜像。接下来,我分享下在微软官网下载原版Win11......
  • vscode打开settings.json方法
    cmd+shift+p,输入settingOpenWorkspaceSettings也会打开UI设置界面;OpenUserSettings(JSON)会打开用户设置settings.json文件;OpenWorkspaceSettings(JSON)会打开工作区设置settings.json文件vscode存在两种设置settings.json的方式UserSettings用户设置:......
  • 【AGC】AGC上传文件失败如何定位解决,一起来看下吧
    ​【问题描述】经常有开发者在AGC上传软件包或文件时报错“上传失败,请稍后重试。”或者“上传失败,请检查是否使用代理服务器并且确保网络正常。”等。​​ 【原因分析】这种问题一般是网络不通导致。可以通过抓取浏览器日志来进一步确认:1、按F12打开浏览器日志,选择“networ......
  • python中安装Mayavi的方法
    参考1:https://www.yisu.com/zixun/225865.html(python中安装pyqt4的方法)参考2:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4(python的lib库)参考3:http://www.manongjc.com/detail/64-fcfwoqunffxbskx.html(Windows+Python3.6安装Mayavi工具包(whl方法)......
  • Java方法
    Java方法什么是方法1.方法是语句的集合2.设计方法的原则一个方法就做一件事方法的定义和调用修饰符返回值类型方法名(参数类型参数名){...方法体...return返回值}方法的重载1.同样的方法名通过调整参数的数量类型进行重载(跟返回值类型无关)、2.按......