当前位置:首页 > 科技  > 软件

把LangChain跑起来的三个方法

来源: 责编: 时间:2023-08-05 11:44:41 5063观看
导读使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来的方法,如有错误欢迎纠正。Langchain官方文档

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

Langchain官方文档地址:https://python.langchain.com/QkE28资讯网——每日最新资讯28at.com

基础功能

LLM 调用QkE28资讯网——每日最新资讯28at.com

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

Prompt管理,支持各种自定义模板QkE28资讯网——每日最新资讯28at.com

拥有大量的文档加载器,比如 Email、Markdown、PDF、Youtube …QkE28资讯网——每日最新资讯28at.com

对索引的支持QkE28资讯网——每日最新资讯28at.com

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

ChainsQkE28资讯网——每日最新资讯28at.com

  • LLMChain
  • 各种工具Chain
  • LangChainHub

详细地址可参考:https://www.langchain.cn/t/topic/35QkE28资讯网——每日最新资讯28at.com

测试Langchain工程的3个方法:

1 使用Langchian提供的FakeListLLM

为了节约时间,直接上代码QkE28资讯网——每日最新资讯28at.com

QkE28资讯网——每日最新资讯28at.com

import osfrom decouple import configfrom langchain.agents import initialize_agentfrom langchain.agents import AgentTypefrom langchain.agents import load_tools

这里mock下ChatGPT,使用mockLLmQkE28资讯网——每日最新资讯28at.com

#from langchain.llms import OpenAIfrom langchain.llms.fake import FakeListLLMos.environ["OPENAI_API_KEY"] = config('OPENAI_API_KEY')

REPL 是 “Read–Eval–Print Loop”(读取-求值-打印-循环)的缩写,它是一种简单的、交互式的编程环境。QkE28资讯网——每日最新资讯28at.com

在 REPL 环境中,用户可以输入一条或多条编程语句,系统会立即执行这些语句并输出结果。这种方式非常适合进行快速的代码试验和调试。QkE28资讯网——每日最新资讯28at.com

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,访问维基百科查询

QkE28资讯网——每日最新资讯28at.com

from langchain.llms.human import HumanInputLLMfrom langchain.agents import load_toolsfrom langchain.agents import initialize_agentfrom langchain.agents import AgentTypefrom wikipedia import set_lang

使用维基百科工具QkE28资讯网——每日最新资讯28at.com

tools = load_tools(["wikipedia"])

这里必须要设置为中文url前缀,不然访问不了QkE28资讯网——每日最新资讯28at.com

set_lang("zh")

初始化LLMQkE28资讯网——每日最新资讯28at.com

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

初始化agentQkE28资讯网——每日最新资讯28at.com

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

使用huggingfacehttps://huggingface.co/docs

1)注册账号QkE28资讯网——每日最新资讯28at.com

2)创建Access TokensQkE28资讯网——每日最新资讯28at.com

QkE28资讯网——每日最新资讯28at.com

Demo: 使用模型对文档进行摘要QkE28资讯网——每日最新资讯28at.com

QkE28资讯网——每日最新资讯28at.com

from langchain.document_loaders import UnstructuredFileLoaderfrom langchain.chains.summarize import load_summarize_chainfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom langchain import HuggingFaceHubimport osfrom decouple import configfrom langchain.agents import load_tools

这里mock下ChatGPT,使用HUGGINGFACEHUBQkE28资讯网——每日最新资讯28at.com

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

导入文本QkE28资讯网——每日最新资讯28at.com

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

将文本转成 Document 对象QkE28资讯网——每日最新资讯28at.com

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

初始化文本分割器QkE28资讯网——每日最新资讯28at.com

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

切分文本QkE28资讯网——每日最新资讯28at.com

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

加载 LLM 模型QkE28资讯网——每日最新资讯28at.com

overal_temperature = 0.1flan_t5xxl = HuggingFaceHub(repo_id="google/flan-t5-xxl",                          model_kwargs={"temperature":overal_temperature,                                        "max_new_tokens":200}                         ) llm = flan_t5xxltools = load_tools(["llm-math"], llm=llm)

创建总结链QkE28资讯网——每日最新资讯28at.com

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

执行总结链QkE28资讯网——每日最新资讯28at.com

chain.run(split_documents)

作者:京东科技 杨建QkE28资讯网——每日最新资讯28at.com

来源:京东云开发者社区QkE28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-84-0.html把LangChain跑起来的三个方法

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Automa-通过连接块来自动化你的浏览器

下一篇: 一文看懂为苹果Vision Pro开发应用程序

标签:
  • 热门焦点
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • 7月安卓手机好评榜:三星S23Ultra好评率第一

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年7月1日至7月31日,仅限国内市场。第一名:三星Galaxy S23 Ultra好评率:95.71%在即将迎来新
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 如何通过Python线程池实现异步编程?

    线程池的概念和基本原理线程池是一种并发处理机制,它可以在程序启动时创建一组线程,并将它们置于等待任务的状态。当任务到达时,线程池中的某个线程会被唤醒并执行任务,执行完任
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    Tech星球(微信ID:tech618)文 | 陈桥辉 Tech星球独家获悉,拼多多在其APP内上线了“本地生活”入口,位置较深,位于首页的“充值中心”内,目前主要售卖美食相关的
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。“提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 小米汽车电池信息疑似曝光:容量101kWh,支持800V高压快充

    7月14日消息,今日一名博主在社交媒体发布了一张疑似小米汽车电池信息的照片,显示该电池包正是宁德时代麒麟电池,容量为101kWh,电压为726.7V,可以预测小
Top