Couchbase
Couchbase 是一款屡获殊荣的分布式 NoSQL 云数据库, 可为您的所有云、移动、AI 和边缘计算应用提供无与伦比的通用性、性能、可扩展性和财务价值。
安装和设置
我们需要安装 langchain-couchbase 包。
pip install langchain-couchbase
Vector Store
请参阅使用示例。
from langchain_couchbase import CouchbaseSearchVectorStore
import getpass
# 连接常量
COUCHBASE_CONNECTION_STRING = getpass.getpass(
"请输入 Couchbase 集群的连接字符串: "
)
DB_USERNAME = getpass.getpass("请输入 Couchbase 集群的用户名: ")
DB_PASSWORD = getpass.getpass("请输入 Couchbase 集群的密码: ")
# 创建 Couchbase 连接对象
from datetime import timedelta
from couchbase.auth import PasswordAuthenticator
from couchbase.cluster import Cluster
from couchbase.options import ClusterOptions
auth = PasswordAuthenticator(DB_USERNAME, DB_PASSWORD)
options = ClusterOptions(auth)
cluster = Cluster(COUCHBASE_CONNECTION_STRING, options)
# 等待集群准备好使用。
cluster.wait_until_ready(timedelta(seconds=5))
vector_store = CouchbaseSearchVectorStore(
cluster=cluster,
bucket_name=BUCKET_NAME,
scope_name=SCOPE_NAME,
collection_name=COLLECTION_NAME,
embedding=my_embeddings,
index_name=SEARCH_INDEX_NAME,
)
# 添加文档
texts = ["Couchbase 是一个 NoSQL 数据库", "LangChain 是一个用于 LLM 应用的框架"]
vectorstore.add_texts(texts)
# 搜索
query = "什么是 Couchbase?"
docs = vectorstore.similarity_search(query)
API 参考:CouchbaseSearchVectorStore
文档加载器
请参阅使用示例。
from langchain_community.document_loaders.couchbase import CouchbaseLoader
connection_string = "couchbase://localhost" # 有效的 Couchbase 连接字符串
db_username = (
"Administrator" # 具有要查询的桶的读取访问权限的有效数据库用户
)
db_password = "Password" # 数据库用户的密码
# query 是一个有效的 SQL++ 查询
query = """
SELECT h.* FROM `travel-sample`.inventory.hotel h
WHERE h.country = 'United States'
LIMIT 1
"""
loader = CouchbaseLoader(
connection_string,
db_username,
db_password,
query,
)
docs = loader.load()
API Reference:CouchbaseLoader
LLM 缓存
CouchbaseCache
使用 Couchbase 作为提示和响应的缓存。
请参阅使用示例。
导入此缓存:
from langchain_couchbase.cache import CouchbaseCache
在您的 LLM 中使用此缓存:
from langchain_core.globals import set_llm_cache
cluster = couchbase_cluster_connection_object
set_llm_cache(
CouchbaseCache(
cluster=cluster,
bucket_name=BUCKET_NAME,
scope_name=SCOPE_NAME,
collection_name=COLLECTION_NAME,
)
)
API Reference:set_llm_cache
API 参考:CouchbaseCache
CouchbaseSemanticCache
语义缓存允许用户根据用户输入和先前缓存的输入之间的语义相似性来检索缓存的提示。在底层,它将 Couchbase 同时用作缓存和向量存储。 CouchbaseSemanticCache 需要已定义的 Search Index 才能工作。请参阅使用示例了解如何设置索引。
请参阅使用示例。
导入此缓存:
from langchain_couchbase.cache import CouchbaseSemanticCache
在您的 LLM 中使用此缓存:
from langchain_core.globals import set_llm_cache
# 使用任何 embedding 提供商...
from langchain_openai.Embeddings import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
cluster = couchbase_cluster_connection_object
set_llm_cache(
CouchbaseSemanticCache(
cluster=cluster,
embedding = embeddings,
bucket_name=BUCKET_NAME,
scope_name=SCOPE_NAME,
collection_name=COLLECTION_NAME,
index_name=INDEX_NAME,
)
)
API Reference:set_llm_cache
API 参考:CouchbaseSemanticCache
Chat Message History
使用 Couchbase 作为聊天消息的存储。
请参阅使用示例。
在您的应用程序中使用聊天消息历史记录:
from langchain_couchbase.chat_message_histories import CouchbaseChatMessageHistory
message_history = CouchbaseChatMessageHistory(
cluster=cluster,
bucket_name=BUCKET_NAME,
scope_name=SCOPE_NAME,
collection_name=COLLECTION_NAME,
session_id="test-session",
)
message_history.add_user_message("hi!")
API 参考:CouchbaseChatMessageHistory