前言
LLMs是最近点燃了NLP的一把火。GPT3.5、GPT4的快速迭代,模型的优异表现在模型层面让大家隐约看到了理想中人工智能应有的样子;OpenAI的ChatGPT、微软的New Bing和Office Copilot也让我们看到了LLMs落地成产品的无限可能性。因此,国内各大企业也争相构建中文LLMs(比如,百度的文心一言),以及思考LLMs与现有产品融合升级后到底能碰撞出什么样的火花。
模型(LLMs) | 产品(应用) |
---|---|
GPT3.5 | ChatGPT |
ChatGPT是一款构建在GPT3.5模型能力上的产品应用(见上表):比如,GPT3.5模型本身是不支持多轮对话的,ChatGPT其实是在GPT3.5之上植入了Memory实现了多轮对话的能力。
除此之外,LLMs可以支持接入多种模块能力,让模型更顺利地落地成有用的产品:
- Python代码执行能力:计算复杂数学问题;
- 搜索引擎能力:提高模型回答内容的时效性;
- 数据库检索能力:实现自定义数据的分析、总结;
等等。
本文给大家介绍一个LLMs的落地框架(LangChain),给LLMs套上一层盔甲,快速构建自己的新一代人工智能产品。
一、LangChain简介
LangChain是一个近期非常活跃的开源代码库,目前也还在快速发展中,旨在让大家快速构建自己的LLM对话产品。当然,该框架也支持自定义接入其他机构、企业开源的LLMs的API和模型(比如:ChatGLM、文心一言等)。
届时,LangChain的版本已经更新到0.0.123,目前保持着每天1发版的更新速度。
LangChain主要包括以下几个主要的模块:
- Prompt Templates:支持自定义Prompt工程的快速实现以及和LLMs的对接;
- LLMs:提供基于OpenAI API封装好的大模型,包含常见的OpenAI大模型,也支持自定义大模型的封装;
- Utils:大模型常见的植入能力的封装,比如搜索引擎、Python编译器、Bash编译器、数据库等等;
- Chains(重点):大模型针对一系列任务的顺序执行逻辑链;
- Agents(重点):通常Utils中的能力、Chains中的各种逻辑链都会封装成一个个工具(Tools)供Agents进行智能化调用;
其中,Chains和Agents两个模块是LangChain的亮点,也是后续教程中会重点展开的内容。
目前LangChain支持调用的OpenAI模型可以在官方文档([文档, OpenAI, Models]
)中查询;
二、环境准备和简单的Demo
2.1 前置准备:
- Anaconda3;
- OpenAI API KEY;
2.2 开发环境准备
# 准备anaconda虚拟环境
conda create -n langchain python=3.8
conda activate langchain
# 准备langchain开发环境
pip install pip install langchain
pip install openai
2.3 命令行LLM对话系统 Demo
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
"""
@File : simple_llm_demo.py
@Time : 2023/03/23 23:26:12
@Author : ch7au
"""
import os
from langchain.schema import HumanMessage
from langchain.chat_models import ChatOpenAI
# global environment
os.environ["OPENAI_API_KEY"] = "sk-*********************************"
# llm initialization
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)
while True:
human_input = input("(human): ")
human_input = [HumanMessage(content=human_input)]
ai_output = llm(human_input)
print(f"(ai): {ai_output.content}")
运行结果展示:
扫描二维码关注公众号,回复:
15637020 查看本文章
(langchain) $ python simple_chatgpt_demo.py
(human): hello
(ai):
Hello! How can I assist you today?
(human): 你会说中文吗?
(ai):
是的,我会说中文。
Reference
- [Github, LangChain] LangChain
- [文档, LangChain] Langchain Documentation
- [文档, OpenAI, Models] OpenAI Documentation Models
关注我一起学AI 持续更新中