宣布 LlamaCloud 全面上线(以及我们的 1900 万美元 A 轮融资)!
LlamaIndex

Jerry Liu 2023-06-23

Llama Index 与 Prem AI 携手

合著者: Simone Giacomelli (Prem 联合创始人), Jerry Liu (LlamaIndex 联合创始人/首席执行官)

我们很高兴分享 Prem App 与 Llama Index 成功集成,此次合作将为 AI 开发带来全新的隐私水平。Prem 的自托管 AI 模型和 Llama 多功能数据框架增强了以可定制和灵活的方式构建 AI 应用的能力。

集成详情

通过将 Prem 的自托管 AI 模型与 Llama Index 的数据框架相结合,开发者现在可以轻松地将自定义数据源连接到大型语言模型。这简化了数据摄取、索引和查询的过程,从而优化了整个 AI 开发周期。

开始使用

要利用此集成,只需下载 Prem App 并通过 Llama Index 平台连接您的数据源。这使您可以使用 Prem App 自托管您的 AI 模型,并利用 Llama Index 的能力高效管理您的数据。因此,此次集成显著提升了 AI 应用开发效率,让开发者能够更好地控制和灵活处理他们的项目。

开始使用

安装 Prem

您可以通过两种不同的方式运行 Prem

  • MacOS:访问 https://premai.io 并下载 Prem App。
  • 服务器:运行安装脚本:wget -q <https://get.prem.ninja/install.sh> -O install.sh; sudo bash ./install.sh

在 GUI 中运行服务

当 UI 启动并运行时,您可以看到所有可用的服务。只需单击一下,您就可以下载您感兴趣的服务。在后台,与该服务关联的 docker 镜像将根据您的硬件要求进行下载。

在等待下载完成时,您可以在详细视图中阅读有关该服务的更多信息。只需点击卡片,您将被重定向到服务页面。每个服务页面都包含一些通用信息以及完整的文档,详细介绍了所暴露的模型。下载完成后,只需点击“打开”即可启动服务。您可以从 playground 或 API 与服务进行交互。

您可以从服务详细视图中查看服务正在运行的端口。

开始构建您的应用

本快速教程将向您展示如何使用 Prem 登录页面内容构建一个简单的“与您的数据对话”用例。

为了实现这一目标,我们需要运行三个服务

  • Redis:我们将使用 Redis 作为向量存储来存储嵌入。
  • Vicuna 7B Q4:我们将使用 Vicuna,基于使用 Redis 相似性搜索找到的最相似文档,为用户生成适当的响应。
  • All MiniLM L6 V2:我们将使用句子转换器来从我们的文档中生成嵌入。

如果所有必要的服务都在运行,您将看到与下方类似的界面。

您现在可以使用 Llama Index 库开始集成这些服务。在以下代码片段中,我们将向您展示如何使用 Prem 和 Llama Index 构建一个简单的“与您的数据对话”用例。

  1. 导入所有必要的依赖项,并为 OPENAI_API_KEY 环境变量分配一个随机字符串。
import os

from llama_index.vector_stores import RedisVectorStore
from llama_index.storage.storage_context import StorageContext
from llama_index import ListIndex, LLMPredictor, Document

from langchain.chat_models import ChatOpenAI
from langchain.embeddings.openai import OpenAIEmbeddings

from llama_index import LangchainEmbedding, ServiceContext

os.environ["OPENAI_API_KEY"] = "random-string"

2. 加载数据 / 创建一些文档。在此示例中,我使用 Prem 登录页面内容手动创建了一些文档。

doc1 = Document(text="Prem is an easy to use open source AI platform. With Prem you can quickly build privacy preserving AI applications.")
doc2 = Document(text="""
Prem App

An intuitive desktop application designed to effortlessly deploy and self-host Open-Source AI models without exposing sensitive data to third-party.

""")
doc3 = Document(text="""
Prem Benefits

Effortless Integration
Seamlessly implement machine learning models with the user-friendly interface of OpenAI's API.

Ready for the Real World
Bypass the complexities of inference optimizations. Prem's got you covered.

Rapid Iterations, Instant Results
Develop, test, and deploy your models in just minutes.

Privacy Above All
Your keys, your models. We ensure end-to-end encryption.

Comprehensive Documentation
Dive into our rich resources and learn how to make the most of Prem.

Preserve Your Anonymity
Make payments with Bitcoin and Cryptocurrency. It's a permissionless infrastructure, designed for you.
""")

3. 实例化连接到运行服务的 LLM。

# Instantiate a llm predictor using Langchain pointing to vicuna-7b-q4 service
llm_predictor = LLMPredictor(llm=ChatOpenAI(openai_api_base="http://localhost:8111/api/v1", max_tokens=128))

# Instantiate the embeddings object using Langchain pointing to all-MiniLM-L6-v2 service
embeddings = OpenAIEmbeddings(openai_api_base="http://localhost:8444/api/v1")
embed_model = LangchainEmbedding(embeddings)

# define a service context using the embeddings and llm defined above.
service_context = ServiceContext.from_defaults(embed_model=embed_model, llm_predictor=llm_predictor)

4. 配置向量存储

# instantiate the vectorstore connecting to Redis service
vector_store = RedisVectorStore(
    index_name="prem_landing",
    index_prefix="llama",
    redis_url="redis://localhost:6379",
    overwrite=True
)
storage_context = StorageContext.from_defaults(vector_store=vector_store)

5. 索引文档

index = ListIndex.from_documents([doc1, doc2, doc3], storage_context=storage_context)

6. 执行示例查询

query_engine = index.as_query_engine(
    retriever_mode="embedding", 
    verbose=True, 
    service_context=service_context
)
response = query_engine.query("What are Prem benefits?")
print(response)
The benefits of using Prem include: Effortless Integration, Ready for the Real World, Rapid Iterations, Instant Results, Privacy Above All, Comprehensive Documentation, Preserve Your Anonymity, and an intuitive desktop application designed to effortlessly deploy and self-host Open-Source AI models without exposing sensitive data to third-party.

完成 🎉 您现在正在使用 Prem 和 Llama Index。

更多信息

查看我们的文档:https://github.com/premai-io/prem-app

查看一个使用 Llama Index 的简单“与您的数据对话”notebook:https://github.com/premAI-io/prem-daemon/blob/main/resources/notebooks/llama_index.ipynb

查看我们的 YouTube 教程

加入我们

我们的合作基于共同的理解:AI 的未来是开放的、可组合的、以隐私为中心的。

加入我们的旅程!