
Yi Ding • 2023-07-24
介绍 LlamaIndex.TS
我们非常兴奋地宣布 LlamaIndex.TS v0.0.1 版本发布,这是一个优先考虑 Typescript 的库,专注于帮助您将私有数据与大型语言模型一起使用。
什么是 LlamaIndex?
我们对 LlamaIndex 的核心目标是帮助开发者轻松地将他们的数据与大型语言模型 (LLM) 集成。LLMs,比如 ChatGPT,彻底改变了我们处理文本输入和数据的方式,但它们都有访问数据方面的限制。除了“知识截止日期”(ChatGPT 最新数据的训练时间已接近两周年)之外,LLMs 也无法访问来自您公司、您的个人分析或您的用户生成的数据。
借助 LlamaIndex.TS,我们希望通过满足开发者(也是我)选择的语言(在本例中是 Typescript)来实现这一目标。我们致力于将此库打造成最易于使用、最强大的解决方案,以便将数据与 LLMs 结合使用。
背景故事
在 Pete Huang 和 Rachel Woods 主办的紧急 ChatGPT 黑客马拉松上,我遇到了 Jerry。我在 JS 世界工作了 8 年,我的第一个问题是“你为什么不用 Javascript 构建这个?” 他犹豫了一下,然后非常耐心地指导我设置 Python 开发环境。(我想我们花了 20 分钟才完全搞明白!)所以,当 Jerry 提议让我构建 LlamaIndex.TS 时,我显然不能拒绝。迫不及待想看看你会用它构建出什么!
设计
在较高层面,LlamaIndex.TS 首先接收文件输入,将它们加载成标准化格式,然后创建一个索引(知识库)。

然后我们从索引中检索相关信息,并在向 LLM 发出查询时使用这些信息,以生成更具依据性的响应。

查看我们的文档以获取更深入的解释!
演示环境
我们正在为 LlamaIndex.TS 构建一个开源演示环境。请访问 https://llama-playground.vercel.app/ 查看。欢迎在这里提交 PR!https://github.com/run-llama/ts-playground
与 LlamaIndex Python 的主要区别
- 所有函数名都使用 🐪 驼峰式命名。
- 提示接口更简单,并使用原生的 javascript 模板字面量。
- 我们不提供函数的非异步版本。请使用 await 或 .then 回调。
- 在合适的地方,我们使用接口和 POJO 代替类。例如,ChatEngine 在 Python 中是一个基类,在 JS 中是一个接口。ServiceContext 在 Python 中是一个类,在 JS 中是一个接口/POJO。
运行时
目前,我们支持 NodeJS v18 及以上版本。在这方面还有很多计划。敬请期待!
贡献
目前只构建了核心功能,因此在加载器和集成方面还有很多工作要做。如果您有兴趣贡献,请给我们留言,或者更好的是,提交一个 PR!