Skip to main content

An integration package connecting Couchbase and LangChain

Project description

langchain-couchbase

This package contains the LangChain integration with Couchbase

Installation

pip install -U langchain-couchbase

Vector Store

CouchbaseVectorStore class enables the usage of Couchbase for Vector Search.

from langchain_couchbase import CouchbaseVectorStore

To use this in an application:

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 = CouchbaseVectorStore(
    cluster=cluster,
    bucket_name=BUCKET_NAME,
    scope_name=SCOPE_NAME,
    collection_name=COLLECTION_NAME,
    embedding=my_embeddings,
    index_name=SEARCH_INDEX_NAME,
)

See a usage example

LLM Caches

CouchbaseCache

Use Couchbase as a cache for prompts and responses.

See a usage example.

To import this cache:

from langchain_couchbase.cache import CouchbaseCache

To use this cache with your LLMs:

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,
    )
)

CouchbaseSemanticCache

Semantic caching allows users to retrieve cached prompts based on the semantic similarity between the user input and previously cached inputs. Under the hood it uses Couchbase as both a cache and a vectorstore. The CouchbaseSemanticCache needs a Search Index defined to work. Please look at the usage example on how to set up the index.

See a usage example.

To import this cache:

from langchain_couchbase.cache import CouchbaseSemanticCache

To use this cache with your LLMs:

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,
    )
)

Chat Message History

Use Couchbase as the storage for your chat messages.

See a usage example.

To use the chat message history in your applications:

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!")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_couchbase-0.2.2.dev0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

langchain_couchbase-0.2.2.dev0-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file langchain_couchbase-0.2.2.dev0.tar.gz.

File metadata

  • Download URL: langchain_couchbase-0.2.2.dev0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.8 Darwin/23.6.0

File hashes

Hashes for langchain_couchbase-0.2.2.dev0.tar.gz
Algorithm Hash digest
SHA256 4a9adb7971a586baa926907a22c22a9b1aff8167551ee55bbeb6f25830de2570
MD5 6f4e48fd68db09fcaac56b977d4ed5f1
BLAKE2b-256 e3c0a4f11d8f2b861d3d88c6c717fd9547bf831bf57e3585e06bb7e9ef9e4375

See more details on using hashes here.

File details

Details for the file langchain_couchbase-0.2.2.dev0-py3-none-any.whl.

File metadata

File hashes

Hashes for langchain_couchbase-0.2.2.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 0ef21e9360c75e81377a2f7ac6e3b6352f280847592dcc1f476791230b4b503c
MD5 ba1dd75f357f318a4d1d25adf64f8da3
BLAKE2b-256 c185c45ff128f7b2a7c6612379cb91292a9c7fcb7189499594c69c777aeb5f5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page