LangChain是大型语言模型(LLM)的应用框架,LangChain可以直接与 OpenAI 的 text-davinci-003、gpt-3.5-turbo 模型以及 Hugging Face 的各种开源语言模如 Google 的 flan-t5等模型集成。通过使用LangChain可以开发出更为强大和高效的LLM的各种应用。
今天我们就来实现一个神奇的功能,如何你是一个不会编程的小白,那么只要你借助LangChain和ChatGPT,你也能成为一个优秀的数据分析师和预测专家。
我们要实现的功能是,让LangChain集成Openai的语言模型如"text-davinci-003",然后创建一个代理(agent),最后我们通过语言指令,一步一步让agent完成数据的统计分析以及时间序列的预测,正个过程而无需python代码。
查看苹果公司的股票数据
我们从雅虎网站上下载了苹果公司的股票价格数据,数据中的ds为日期,Close为当日的收盘价
import pandas as pd
import datetime
import os
#加载苹果公司的股票数据
df = pd.read_csv('./data/appl.csv')
df
定义Openai语言模型LLM,和代理agent
这里我们要定义一个openai的语言模型"text-davinci-003"的实例,然后再创建一个代理(agent)。代理就是帮我们做事情的小助手,我们只需要对其发号施令就可以了。
from langchain.agents import create_csv_agent
from langchain.llms import OpenAI,OpenAIChat
#你申请的openai的api_key
os.environ["OPENAI_API_KEY"] = "xxxxxxxxxx"
#定义openai的语言模型llm
llm=OpenAI(model_name="text-davinci-003",temperature=0)
#创建一个csv代理
agent = create_csv_agent(llm=llm,#语言模型
path = './data/appl.csv', #数据路径
verbose=False)
使用语言指令来进行数据分析
我们可以通过agent.run方法,来输入语言指令,agent就会根据语言指令做相关的操作,并将最终结果展示出来:
#调整横坐标格式,让其更加美观
agent.run('请画一下数据的趋势图,横坐标为ds,横坐标的label旋转30度')
action = '请画一下数据的趋势图,并在趋势图上叠加一个30天移动平均线,\
横坐标为ds,横坐标的label旋转30度'
agent.run(action)
详细查看agent的执行过程
如果你想查看agent的执行过程的细节,那只需要在创建agent时,将verbose参数设置为True,即可。
agent = create_csv_agent(llm=OpenAI(temperature=0),
path='./data/appl.csv',
verbose=True)
agent.run('数据一共有多少行?')
action='请画一下数据的趋势图,并在趋势图上叠加一个30天移动平均线,\
横坐标为ds,横坐标的label旋转30度'
agent.run(action)
action='请用prophet包预测一下未来7天每一天的Close值,\
不是fbprophet,并注明每一天的日期'
agent.run(action)
总结
今天我们学习了LangChain的agent功能,它可以通过语言指令的方式执行各种数据分析、汇总、统计以及预测等功能,如果你是一个不会编程的小白,那可以尝试一下agent。