Arcee Retriever
This notebook demonstrates how to use the ArceeRetriever class to
retrieve relevant document(s) for Arceeโs Domain Adapted Language Models
(DALMs).
Setupโ
Before using ArceeRetriever, make sure the Arcee API key is set as
ARCEE_API_KEY environment variable. You can also pass the api key as a
named parameter.
from langchain.retrievers import ArceeRetriever
retriever = ArceeRetriever(
    model="DALM-PubMed",
    # arcee_api_key="ARCEE-API-KEY" # if not already set in the environment
)
Additional Configurationโ
You can also configure ArceeRetrieverโs parameters such as
arcee_api_url, arcee_app_url, and model_kwargs as needed. Setting
the model_kwargs at the object initialization uses the filters and
size as default for all the subsequent retrievals.
retriever = ArceeRetriever(
    model="DALM-PubMed",
    # arcee_api_key="ARCEE-API-KEY", # if not already set in the environment
    arcee_api_url="https://custom-api.arcee.ai",  # default is https://api.arcee.ai
    arcee_app_url="https://custom-app.arcee.ai",  # default is https://app.arcee.ai
    model_kwargs={
        "size": 5,
        "filters": [
            {
                "field_name": "document",
                "filter_type": "fuzzy_search",
                "value": "Einstein",
            }
        ],
    },
)
Retrieving documentsโ
You can retrieve relevant documents from uploaded contexts by providing a query. Hereโs an example:
query = "Can AI-driven music therapy contribute to the rehabilitation of patients with disorders of consciousness?"
documents = retriever.get_relevant_documents(query=query)
Additional parametersโ
Arcee allows you to apply filters and set the size (in terms of
count) of retrieved document(s). Filters help narrow down the results.
Hereโs how to use these parameters:
# Define filters
filters = [
    {"field_name": "document", "filter_type": "fuzzy_search", "value": "Music"},
    {"field_name": "year", "filter_type": "strict_search", "value": "1905"},
]
# Retrieve documents with filters and size params
documents = retriever.get_relevant_documents(query=query, size=5, filters=filters)