乐趣区

关于人工智能:把LangChain跑起来的3个方法-京东云技术团队

应用 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)

作者:京东科技 杨建

起源:京东云开发者社区

退出移动版