使用 Upstash 实现 LangChain 的无服务器数据库和消息平台集成

随着无服务器架构的流行,开发者越来越希望在不增加数据库管理复杂性的情况下,构建强大的应用程序。Upstash 正好提供了这样的解决方案。其无服务器数据库和消息平台不仅支持 HTTP 通信,还能完美运行在不支持 TCP 连接的平台上,如边缘计算平台。

在与 LangChain 的集成方面,Upstash 提供了两种主要服务:Upstash Vector 和 Upstash Redis。Upstash Vector 用于向量嵌入数据库,而 Upstash Redis 则被用作缓存和内存存储服务。

Upstash Vector 的核心功能

Upstash Vector 是一个无服务器的向量数据库,支持向量的存储和查询。其安装和集成过程如下。

安装及配置

首先,在 Upstash 控制台上创建一个新的无服务器向量数据库,并根据模型选择适合的距离度量和维度。

pip install upstash-vector

创建 UpstashVectorStore 对象,同时传入从 Upstash 控制台获取的凭据,并需要一个将文本转换为向量嵌入的 Embeddings 对象:

from langchain_community.vectorstores.upstash import UpstashVectorStore
import os

os.environ["UPSTASH_VECTOR_REST_URL"] = "<UPSTASH_VECTOR_REST_URL>"
os.environ["UPSTASH_VECTOR_REST_TOKEN"] = "<UPSTASH_VECTOR_REST_TOKEN>"

store = UpstashVectorStore(
    embedding=True  # 自动处理文本的嵌入
)

使用命名空间

命名空间可以帮助在索引中分区数据,以提高查询速度。当处理大量数据时尤其有用。

store = UpstashVectorStore(
    embedding=True,
    namespace="my_namespace"
)

插入与查询向量

向量可以通过文本查询或其他向量进行查询。下例展示了通过文本进行相似性搜索:

result = store.similarity_search(
    "The United States of America",
    k=5
)

也可以通过向量进行查询:

vector = embeddings.embed_query("Hello world")
result = store.similarity_search_by_vector(
    vector,
    k=5
)

Upstash Redis 的集成

Upstash Redis 可以用作 LLM 提示和响应的缓存。安装及设置如下:

pip install upstash-redis

配置 LangChain 使用 Upstash Redis 进行缓存:

import langchain
from upstash_redis import Redis

URL = "<UPSTASH_REDIS_REST_URL>"
TOKEN = "<UPSTASH_REDIS_REST_TOKEN>"

langchain.llm_cache = UpstashRedisCache(redis_=Redis(url=URL, token=TOKEN))

此外,Upstash Redis 也支持作为聊天信息存储,具体使用方式如下:

from langchain_community.chat_message_histories import (
    UpstashRedisChatMessageHistory,
)

利用 Upstash 的这些服务,开发者可以轻松实现高效、无服务器的数据库和消息平台集成,以支持广泛的应用场景。如果遇到问题欢迎在评论区交流。

—END—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值