【误区揭示】OpenAI 插件联网:LangChain 仍闪耀光芒,你了解这背后的合作共赢之道吗?
昨日,OpenAI 官方宣布支持插件功能,使得 ChatGPT 能够联网。这一消息引发了全球各种不同的看法。
各种声音
有人认为嵌入(embedding)和 LangChain 等技术已经没有太大价值了。
有些人觉得之前为 LLM 开发者们的付出都白费了,那些做文档摘要、问答系统以及个人知识库的应用都需要重新洗牌。
有些人则认为这是个利好消息,并开始着手开发可联网的插件。有的甚至给出了网站地址,让 ChatGPT 重写一个,说不定三天时间就能仿制一个京东网站。
比尔·盖茨认为 GPT-4 的发布堪比 80 年代计算机图形界面的出现,而 OpenAI 首席科学家 Ilya Sutskever 则解释说,未公开 GPT-4 的训练细节是因为 AGI(通用人工智能)将会非常强大,开源并不明智。
无论如何,每个人的立场和利益不同,对同一事件的看法也会有所不同。我始终认为,世界应该是多样的,开源的方案免费且可控。我们不能阻止 OpenAI 变得不那么开放,但也不能完全依赖它。
合则共赢
例如,OpenAI开源的 chatgpt-retrieval-plugin 里需要获取各种格式的数据, LangChain已有强大的DocumentLoader,只需几行代码chatgpt-retrieval-plugin 也使用了嵌入(embeddings)技术,这些信息存储在向量数据存储中。简单来说,过去第三方开发的应用可以被视为野生的,现在第三方开发的产品可以添加到 "ChatGPT Plugin Store" 中。然而,底层开发的基本原理并没有改变,只是现在需要遵循 OpenAI 的规范。,就可以集成到Plugin开发中。via
# STEP 1: Load
# Load documents using LangChain's DocumentLoaders
# This is from https://langchain.readthedocs.io/en/latest/modules/document_loaders/examples/csv.html
from langchain.document_loaders.csv_loader import CSVLoader
loader = CSVLoader(file_path='./example_data/mlb_teams_2012.csv')
data = loader.load()
# STEP 2: Convert
# Convert Document to format expected by https://github.com/openai/chatgpt-retrieval-plugin
from typing import List
from langchain.docstore.document import Document
import json
def write_json(path: str, documents: List[Document])-> None:
results = [{"text": doc.page_content} for doc in documents]
with open(path, "w") as f:
json.dump(results, f, indent=2)
write_json("foo.json", data)
# STEP 3: Use
# Ingest this as you would any other json file in https://github.com/openai/chatgpt-retrieval-plugin/tree/main/scripts/process_json
LangChain也快速应对,更新了Chain: VectorDBQA
-> RetrievalQA
via 。 所以,文档一定要看最新的哦。
chatgpt-retrieval-plugin 中也是用到embeddings,存放在 vector datastore。 打个简单的比喻,以前第三方开发出的应用算野生的,现在第三方开发的东西可以上加到 "ChatGPT Plugin Store"了。但开发底层的东西没根本改变,只是现在按照它的规范来了。
写在最后
说了这么多,只是想说明,LangChain还没过时,想做大语言集成开发,学它,学它。
后续还会有更多AI应用,AI集成开发的分享。 欢迎关注公众号”越山集“,多交流。让我们保持好奇心,不断探索,共同进步。