跳到主要内容
Open on GitHub

Couchbase

Couchbase 是一个屡获殊荣的分布式 NoSQL 云数据库,为您的所有云、移动、AI 和边缘计算应用程序提供无与伦比的多功能性、性能、可扩展性和经济价值。

安装与设置

我们需要安装 langchain-couchbase 包。

pip install langchain-couchbase

向量存储

查看使用示例

from langchain_couchbase import CouchbaseSearchVectorStore

import getpass

# Constants for the connection
COUCHBASE_CONNECTION_STRING = getpass.getpass(
"Enter the connection string for the Couchbase cluster: "
)
DB_USERNAME = getpass.getpass("Enter the username for the Couchbase cluster: ")
DB_PASSWORD = getpass.getpass("Enter the password for the Couchbase cluster: ")

# Create Couchbase connection object
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)

# Wait until the cluster is ready for use.
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,
)

# Add documents
texts = ["Couchbase is a NoSQL database", "LangChain is a framework for LLM applications"]
vectorstore.add_texts(texts)

# Search
query = "What is Couchbase?"
docs = vectorstore.similarity_search(query)

API 参考: CouchbaseSearchVectorStore

文档加载器

查看使用示例

from langchain_community.document_loaders.couchbase import CouchbaseLoader

connection_string = "couchbase://" # valid Couchbase connection string
db_username = (
"Administrator" # valid database user with read access to the bucket being queried
)
db_password = "Password" # password for the database user

# query is a valid SQL++ query
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 参考: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 参考:set_llm_cache

API 参考: CouchbaseCache

CouchbaseSemanticCache

语义缓存允许用户根据用户输入和先前缓存输入之间的语义相似性检索缓存的提示。在底层,它使用 Couchbase 作为缓存和向量存储。CouchbaseSemanticCache 需要定义一个搜索索引才能工作。请查看使用示例,了解如何设置索引。

查看使用示例

导入此缓存

from langchain_couchbase.cache import CouchbaseSemanticCache

将此缓存与您的 LLM 配合使用

from langchain_core.globals import set_llm_cache

# use any embedding provider...
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 参考:set_llm_cache

API 参考: CouchbaseSemanticCache

聊天消息历史记录

使用 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