跳转到主要内容

【LLM】LangChain TypeScript支持

终于到了。。。LangChain的TypeScript支持。

这是什么意思?这意味着所有您喜欢的提示、链和代理都可以在TypeScript中本地重新创建。Python版本和TypeScript版本都使用相同的可序列化格式,这意味着工件可以在语言之间无缝共享。作为使用它的一个例子,我们还使用TypeScript重新创建了ChatLangChain。

非常感谢社区的帮助。

重要链接:

【LangChain】LangChain和原生矢量存储Chroma

今天,我们宣布LangChain与Chroma的集成,这是迈向现代A.I Stack的第一步。

LangChain-人工智能原生开发者工具包

我们启动LangChain的目的是建立一个模块化和灵活的框架,用于开发a.I原生应用程序。一些立即浮现在脑海中的用例是聊天机器人、问答服务和代理。成千上万的开发人员现在正在使用LangChain灵活、易于使用的框架进行黑客攻击、修补和构建各种LLM驱动的应用程序。

应用程序的关键组件之一是嵌入,以及保存和使用这些嵌入的向量存储。

我们注意到许多现有向量存储的一个痛点是,它们通常涉及连接到存储嵌入的外部服务器。虽然这对于将应用程序投入生产来说很好,但在本地轻松地原型化应用程序确实有点棘手。

我们为本地矢量存储提供的最佳解决方案是使用FAISS,许多社区成员指出,FAISS存在一些棘手的依赖关系,导致安装问题。

Chroma-人工智能原生矢量存储

Chroma的成立是为了构建利用嵌入功能的工具。嵌入是表示任何类型数据的人工智能原生方式,使其非常适合使用各种人工智能工具和算法。

【LangChain】LangChain中的异步支持

我们很高兴能够利用asyncio库在LangChain中推出最初的异步支持。Asyncio使用协程和事件循环来执行非阻塞I/O操作;这些协同程序能够在等待最终结果时“暂停”(等待),并在此期间让其他例程运行。要了解更多关于asyncio的信息,以及它与多线程和多处理的比较,请查看这个很棒的教程。

动机

由于LangChain应用程序往往是相当I/O和网络绑定的(调用LLM API并与数据存储交互),asyncio通过允许您同时运行LLM、链和代理提供了显著的优势:当一个代理正在等待LLM调用或工具完成时,另一个代理可以继续取得进展。LangChain中的异步支持还允许您将异步链和代理更无缝地集成到支持异步的框架中,例如FastAPI。

特别查看异步代理文档,看看并发执行可以在多大程度上加快速度!

用法

作为起点,我们已经实现了对以下各项的异步支持:

LLM via agenerate (see docs):

【LLM】用你的数据聊天挑战

ChatGPT席卷全球。数以百万计的人在使用它。但尽管它对通用知识很有帮助,但它只知道自己接受过哪些培训的信息,即2021年之前普遍可用的互联网数据。它不知道你的私人数据,也不知道最近的数据来源。

如果真的这样做了,那不是很有用吗?这就是LangChain的用武之地。

LangChain的目标是让每个人都更容易开发语言模型应用程序。我们最近在这里发布了一份关于如何通过您的数据创建自己的ChatGPT的指南。其中包括一个示例GitHub repo,用于启动和自定义。但即便如此,仍有一长串数据源需要集成和编写提示。我们在发出呼吁,看看什么是最有趣的集成,并得到了压倒性的回应后意识到了这一点。

在“Chat Your Data”挑战中,我们将发起为期一周的挑战,通过您的数据源创建ChatGPT。

动机

一如既往,这样做的动机是让每个人都更容易开发语言模型应用程序。特别是,我们认为示例对于帮助人们做到这一点至关重要。因此,我们希望为各种数据源提供尽可能多的示例(数据加载程序+提示)。

然后,我们将把数据加载逻辑放在LangChain中,把提示放在LangChainHub中,并把示例放在LangChain文档中,使其他人尽可能容易地开始。

【ChatGPT】教程:通过数据ChatGPT

Tutorial: ChatGPT Over Your DataNote: See the accompanying GitHub repo for this blogpost here.

ChatGPT席卷全球。数以百万计的人在使用它。但尽管它对通用知识很有帮助,但它只知道自己接受过哪些培训的信息,即2021年之前普遍可用的互联网数据。它不知道你的私人数据,也不知道最近的数据来源。

如果真的这样做了,那不是很有用吗?

【LLM】LangChain<>非结构化

LangChain的核心价值支柱之一是能够将大型语言模型与您自己的文本数据相结合。有多种(四种!)不同的方法可以做到这一点,并且可以为许多不同的应用程序提供动力。

使用文本数据的上游一步是将数据转换为文本形式。由于存在多种不同的格式,这可能相当棘手。

unstructured.io

Unstructured是一家致力于将自然语言数据从原始数据转换为可供机器使用的数据的公司。他们实现这一点的主要方法之一是使用开源Python包。此包支持多种不同类型的文件扩展名:.txt、.docx、.pptx、.jpg、.png、.eml、.html和.pdf文档。

【ChatGPT】很棒的ChatGPT提示 (1)

欢迎使用“真棒聊天GPT提示”存储库!这是将与ChatGPT模型一起使用的提示示例的集合。

ChatGPT模型是一个由OpenAI训练的大型语言模型,能够生成类似人类的文本。通过向它提供提示,它可以生成继续对话或扩展给定提示的响应。

在这个存储库中,您会发现可以与ChatGPT一起使用的各种提示。我们鼓励您将自己的提示添加到列表中,并使用ChatGPT生成新的提示。

 

ℹ️ 注意:有时,某些提示可能无法按您的预期工作,或者可能被AI拒绝。请重试,启动新线程,或者注销并重新登录。如果这些解决方案不起作用,请尝试使用自己的句子改写提示,同时保持说明不变。

想写有效的提示吗?

我写了一本名为《聊天GPT提示的艺术:制作清晰有效提示的指南》的免费电子书。

 

想要部署您自己的提示应用程序吗?

Steamship的员工构建了一个框架来托管和共享您的GPT应用程序。他们通过免费(每天最多500个电话)访问最新的GPT模型来赞助此次回购。

👷‍♂️ 构建您自己的GPT提示应用程序

想学习如何使用ChatGPT提示赚钱吗?

【LLM】Langchain跟踪介绍

我们很高兴宣布在LangChain中支持原生追踪!通过在LangChain运行中启用跟踪,您将能够更有效地可视化、逐步完成和调试链和代理。

A view of a more complicated trace at a high level

动机

关于链和代理执行的推理对于故障排除和调试非常重要。然而,对于复杂的链和代理来说,这可能很困难,原因有很多:

  • 可能会有大量的步骤,因此很难跟踪所有步骤
  • 步骤的顺序无法固定,可能会根据用户输入而变化
  • 每个阶段的输入/输出可能不长,需要进行更详细的检查

链或代理的每一步也可能涉及嵌套——例如,代理可能会调用一个工具,该工具使用LLMMathChain,它使用LLMChain,然后调用LLM。如果您注意到来自顶级代理运行的奇怪或不正确的输出,则很难确定它在执行中的确切位置。

通过跟踪,您可以清楚地看到特定链或代理运行中涉及的每个LangChain原语的输入和输出,按照它们被调用的顺序,从而解决了这一问题。