大家好,我是章北海mlpy

最近在浅学LangChain,在大模型时代,感觉这玩意很有前途。

LangChain是一个开源的应用开发框架,目前支持Python和TypeScript两种编程语言。

它赋予LLM两大核心能力:数据感知,将语言模型与其他数据源相连接;代理能力,允许语言模型与其环境互动。

LangChain的主要应用场景包括个人助手、基于文档的问答、聊天机器人、查询表格数据、代码分析等。

之前大火的ChatPDF应该就是用LangChain实现的

昨晚又看到一个有趣的实例:Chat with CSV&Excel using LangChain and OpenAI,蛮粗糙的,感觉可以用Gradio加个前端,或许有点意思。

https://github.com/amrrs/csvchat-langchain

源代码有TypeError的bug,我改了一下,可以跑通了,有感兴趣的可以直接复制。

# -*- coding: utf-8 -*-

from langchain.document_loaders import CSVLoader
from langchain.indexes import VectorstoreIndexCreator
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI
import os
os.environ["OPENAI_API_KEY"] = "sk-你的API"
!wget https://gist.githubusercontent.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6/raw/92200bc0a673d5ce2110aaad4544ed6c4010f687/pokemon.csv
# Load the documents
import csv
loader = CSVLoader(file_path='/Users/huhaiyang/projs/myrepo/pokemon.csv', csv_args={
'delimiter': ','})
# Create an index using the loaded documents
index_creator = VectorstoreIndexCreator()
docsearch = index_creator.from_loaders([loader])
# Create a question-answering chain using the index
chain = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff", retriever=docsearch.vectorstore.as_retriever(), input_key="question") # Pass a query to the chain
query = "Do you have a column called age?"
response = chain({"question": query})
print(response['result'])

我简单测试了,胡说八道含量很高。

后期再深入研究吧,看是否可以达到简单统计,甚至实现透视表的程度。

基于ChatGPT,论文写作工具

围绕 ChatGPT,赚了点小钱

国内可用 ChatGPT 客户端下载

数据分析入门:统计学基础知识总结

可能是全网最全的速查表:Python Numpy Pandas Matplotlib 机器学习 ChatGPT

ChatExcel?的更多相关文章

  1. 打工人都在用的AI工具(第二期)

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 上周更新的打工人都在用的AI工具(第一期)收到了小伙伴们的高度好评,于是很多小伙伴们急急忙忙的催更,技术 ...

随机推荐

  1. 一篇文章带你了解Python常用自动化测试框架——Pytest

    一篇文章带你了解Python常用自动化测试框架--Pytest 在之前的文章里我们已经学习了Python自带测试框架UnitTest,但是UnitTest具有一定的局限性 这篇文章里我们来学习第三方框 ...

  2. 面试题——为什么 Vue 中不要用 index 作为 key?(diff 算法详解)

    前言 在vue中使用v-for时需要,都会提示或要求使用  :key,有的的开发者会直接使用数组的 index 作为 key 的值,但不建议直接使用 index作为 key 的值,有时我们面试时也会遇 ...

  3. WPF应用框架中工作流模块的介绍

    在前面的随笔,我对我们开发的审批工作流做了不少的介绍,其中有包括WInform的.Vue+Element.Bootstrap Asp.net的,在各个框架上,我们都尽量争取界面能够一致化,以便客户能够 ...

  4. unsafe类和varhandle类讲解

    Java的Unsafe类是一个非常特殊的类,它提供了一组原始.底层的操作,可以跳过Java的限制,直接操作内存和对象.这些操作可能会破坏Java的安全机制,所以Unsafe类被标记为不安全的. Uns ...

  5. 如何生成core文件进行项目调试

    由于项目前期的调试错误比较多,或者有某些隐藏危险:例如内存泄漏:偶尔才出现一次,如果没有捕捉错误的手段可能好不容易出现的机会就溜走了,所以生成core文件是必要的,发生段错误会生成相应的core文件, ...

  6. .NET Conf China 2023 活动纪实 抢先看

    ​ 今天2023年12月16日.NET Conf China 2023举办的日子,北京昨天上午还在飘起雪花,到今天早上的天气就有了极大的改观,大清早就能看到外面徐徐升起的朝阳,这也预示着今天将是一个大 ...

  7. 为什么要重写equals()?

    为什么要重写equals()? Equals和 == 的区别: ==:是个运算符, 判断是否相等,基本数据类型进行判断 也可判断两个对象相等,比较两个对象的哈希码值 Equals:是个Object类的 ...

  8. ASR项目实战-交付过程中遇到的内核崩溃问题

    当前参与交付的语音识别产品服务,算法模块基于经典的Kaldi,算法中的一部分运行在GPU之上. 算法团队采用的是声学模型+语言模型的1-pass方案.这个方案的特点在于,语言模型数据文件(HCLG文件 ...

  9. 【csharp】抽象类与接口有哪些不同?什么时候应该使用抽象类?

    抽象类与接口有哪些不同? 抽象类和接口是在面向对象编程中两个不同的概念,它们有一些重要的区别.以下是抽象类和接口的主要不同点: 抽象类(Abstract Class): 成员类型: 抽象类可以包含抽象 ...

  10. python 之 LDAP 用户统一认证登录

    pip install ldap3 # 环境安装 from ldap3 import Server, Connection,SUBTREE ldap_host = 'xx.xx.x.x' #ldap服 ...