• LangChain与大型语言模型(LLMs)应用基础教程:神奇的Agent


    原文:LangChain与大型语言模型(LLMs)应用基础教程:神奇的Agent-CSDN博客

    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为当日的收盘价

    1. import pandas as pd
    2. import datetime
    3. import os#加载苹果公司的股票数据
    4. df = pd.read_csv('./data/appl.csv')
    5. df

    定义Openai语言模型LLM,和代理agent 

    这里我们要定义一个openai的语言模型"text-davinci-003"的实例,然后再创建一个代理(agent)。代理就是帮我们做事情的小助手,我们只需要对其发号施令就可以了。

    1. from langchain.agents import create_csv_agent
    2. from langchain.llms import OpenAI,OpenAIChat#你申请的openai的api_key
    3. os.environ["OPENAI_API_KEY"] = "xxxxxxxxxx"#定义openai的语言模型llm
    4. llm=OpenAI(model_name="text-davinci-003",temperature=0)
    5. #创建一个csv代理
    6. agent = create_csv_agent(llm=llm,#语言模型path = './data/appl.csv', #数据路径verbose=False)

    使用语言指令来进行数据分析

    我们可以通过agent.run方法,来输入语言指令,agent就会根据语言指令做相关的操作,并将最终结果展示出来:

     

    1. #调整横坐标格式,让其更加美观
    2. agent.run('请画一下数据的趋势图,横坐标为ds,横坐标的label旋转30度')

    1. action = '请画一下数据的趋势图,并在趋势图上叠加一个30天移动平均线,\
    2. 横坐标为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('数据一共有多少行?')

      

    1. action='请画一下数据的趋势图,并在趋势图上叠加一个30天移动平均线,\
    2. 横坐标为ds,横坐标的label旋转30度'agent.run(action)

    1. action='请用prophet包预测一下未来7天每一天的Close值,\
    2. 不是fbprophet,并注明每一天的日期'agent.run(action)

     

     总结

    今天我们学习了LangChain的agent功能,它可以通过语言指令的方式执行各种数据分析、汇总、统计以及预测等功能,如果你是一个不会编程的小白,那可以尝试一下agent。

  • 相关阅读:
    Type List(C++ 模板元编程)
    pnpm快速创建 Vue.js 项目(npm类似)
    网络编程之多播
    【Linux】线程池
    word文档编辑受限制怎么解除?
    XGBoost算法原理详解与参数详解
    新能源电动汽车安全性能检测中采集车架号及BMS电池数据的难点
    CentOS7.9 离线安装 PostgreSQL9.5 数据库
    10.30刷题笔记
    1.4.21 实验21:vrrp主备
  • 原文地址:https://blog.csdn.net/javastart/article/details/133850619