把LangChain跑起来的3个方法 | 京东云技术团队

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

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

Langchain官方文档地址: 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

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

测试Langchain工程的3个方法:

1 使用Langchian提供的FakeListLLM

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

把LangChain跑起来的3个方法 | 京东云技术团队

javascript
复制代码
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

javascript
复制代码
#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 环境中,用户可以输入一条或多条编程语句,系统会立即执行这些语句并输出结果。这种方式非常适合进行快速的代码试验和调试。

ini
复制代码
tools = load_tools(["python_repl"]) responses=[ "Action: Python REPLnAction 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,访问维基百科查询

把LangChain跑起来的3个方法 | 京东云技术团队

javascript
复制代码
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

使用维基百科工具

ini
复制代码
tools = load_tools(["wikipedia"])

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

scss
复制代码
set_lang("zh")

初始化LLM

swift
复制代码
llm = HumanInputLLM(prompt_func=lambda prompt: print(f"n===PROMPT====n{prompt}n=====END OF PROMPT======"))

初始化agent

ini
复制代码
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True) agent.run("喜羊羊")

使用huggingface

huggingface.co/docs

1.注册账号

2.创建Access Tokens

把LangChain跑起来的3个方法 | 京东云技术团队

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

把LangChain跑起来的3个方法 | 京东云技术团队

javascript
复制代码
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

lua
复制代码
os.environ["HUGGINGFACEHUB_API_TOKEN"] = config('HUGGINGFACEHUB_API_TOKEN')

导入文本

ini
复制代码
loader = UnstructuredFileLoader("docment_storehelloLangChain.txt")

将文本转成 Document 对象

python
复制代码
document = loader.load() print(f'documents:{len(document)}')

初始化文本分割器

ini
复制代码
text_splitter = RecursiveCharacterTextSplitter( chunk_size = 500, chunk_overlap = 0 )

切分文本

python
复制代码
split_documents = text_splitter.split_documents(document) print(f'documents:{len(split_documents)}')

加载 LLM 模型

ini
复制代码
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)

创建总结链

ini
复制代码
chain = load_summarize_chain(llm, chain_type="refine", verbose=True)

执行总结链

scss
复制代码
chain.run(split_documents)

作者:京东科技 杨建

来源:京东云开发者社区

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
人工智能

Wolfram深度测评: 让ChatGPT拥有专家级的超强大脑

2024-4-26 9:38:17

人工智能

《现代生成式人工智能与ChatGPT和OpenAI模型》第一章:生成式人工智能简介

2024-4-26 13:31:42

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索