ChatGPT LLM结合Langchain的使用场景展望

861 阅读3分钟

介绍

众所周知,目前ChatGPT的使用场景很多,但是都局限于对话、提示词、上下文相关,今天介绍一个开源库Langchain,以下是官方给出的langchain是干什么的?

总的来说,类似ChatGPT只是它的chains链中的一部分,它不仅可以和LLM大语言模型交互,还可以使语言模型可以连接到其他数据源,比如文件、数据库、api等等。这样我们的使用场景就多了。下面我介绍几个使用场景。

LangChain is a framework for developing applications powered by language models. We believe that the most powerful and differentiated applications will not only call out to a language model, but will also be:

  1. Data-aware: connect a language model to other sources of data
  2. Agentic: allow a language model to interact with its environment The LangChain framework is designed around these principles.

使用场景一:非结构性文件对话

比如我们有一些文件例如txt、pdf、md等等,这些文件我不想一一去看了,或者我只想知道我想要的,其他的我不关心,那么我可以通过langchain达到这个目的,简单来说就是,我使用自然语言问一下问题,langhchain能够根据我的问题,找到最相关的部分,然后通过llm整理语言回答我。我给出下图大家就明白了。

ai1.PNG

ai2.PNG 大家仔细看看这两张图,其中包含了Langchain、LLM和VectorStore,VectorStore是一个向量数据库,我们使用DeepLake,当然还有很多其他的都可以,比如FAISS、Qdrant、Chroma等等,向量数据库天生对大数据模型友好,向量数据库在这里负责的事情就是存储我们的非结构化的文件为向量表示的内容,当我们提问时,我们会查询向量数据库,向量数据库返回给我们相关性文本,一句哈就是:

存储:文本到向量

查询:向量到文本

这样我们拿到相关性文本之后,拿来做llm的prompt,即提示词上下文,这样llm就可以利用他的优势根据上下文来组织语言,最终给我们作答。这里给一个简单例子,不做过多解释。

使用场景二:结构性文件对话

我们也可以针对结构性文件对话,比如csv、excel等等,这些文件是标准的、有结构的,规律的,一般针对这些文件我们可能需要一些统计图表之类的,那么有了langchain之后,我们也可以把它们统统喂给向量数据库,然后利用python的pandas库处理最终给出结果,当然这里有人就直接提出了,为什么不直接使用pandas库,因为直接使用pandas库你需要自己去分析这些结构性文件,如果使用langchain的话,你只要直接提问你想问的问题即可。这里也给一个简单示例,剩下的大家自行摸索。

PS: 这里推荐一个可以针对csv文件画图表的库Pandas-AI,这样不仅可以文本作答,也可以图表形式作答了。

使用场景三:对数据库提问

平常我们使用数据库,想要查询一些数据,都是直接使用sql脚本,那么有了langchain之后,我们也可以以自然语言对话形式提问,然后拿到想要的答案了,当然这里需要注意的一点是,数据库接入llm和langchain是有风险的,大家谨慎使用。简答示例

总结

这里只是举了一些常见的使用场景,更多的使用场景大家还是自己去到Langchain的官网查看,发挥自己的想象力,做出更多的使用场景出来。比如对langchain中的tools的使用,这个tools可以自己发挥想象,比如获取当前时间,调用自己的api,查询数据库等等。总之,langchain给了一切可能,让你能够任意玩转LLM!