Settings

Builder.retrieval_settings(k=3, number_of_search_docs=0, fts=False, similarity_search_type='dot', tracing_api_key=None, tracing_project_name='berrydb')

Parameters:

  • k (int, optional): Total number of documents to be retrieved. Defaults to 3.

  • fts (bool, optional): If you want to use FTS instead of keyword search. Defaults to False. To use FTS you need to enable FTS on your BerryDB database, see how to enable here

  • number_of_search_docs (int, optional): Number of results to be fetched from FTS or Keyword search in k documents

  • tracing_api_key (str, optional): langsmith API key to trace and evaluate a model with parameters

  • tracing_project_name (str, optional): A name for for tracing

  • similarity_search_type (str, optional): The type of vector search you want to perform 'Cosine', 'Dot' or 'L2'. Defaults to Cosine.

Builder.transform_settings(filter_expr=None, filter_action='include', jsonata_expr=None)

Parameters:

  • filter_action (str, optional): Determines how the filter expression is applied. Options: 'include' (keep matching data) or 'exclude' (remove matching data). Defaults to 'include'.

  • filter_expr (List[str], optional): A list of string that you want to filter from each document in your database based on filter_action

  • jsonata_expr (str, optional): A JSONata expression used for advanced transformations of document fields.

Note

JSONata expression is applied on the documents after the filter_expr has been applied (If provided)

Builder.embed_settings(provider='openai', model=None)

Parameters:

  • provider (str, optional): The embedding provider 'OpenAI', 'HuggingFace'. Defaults to 'OpenAI'

  • model (str, optional): The specific embedding model to use

Note

Supported Models:
  • OpenAI: text-embedding-3-small (default), text-embedding-3-large, text-embedding-ada-002

  • HuggingFace: sentence-transformers/all-mpnet-base-v2 (default), sentence-transformers/all-MiniLM-L6-v2, sentence-transformers/all-MiniLM-L12-v2, sentence-transformers/multi-qa-distilbert-dot-v1, sentence-transformers/multi-qa-mpnet-base-dot-v1, sentence-transformers/msmarco-distilbert-base-tas-b

Builder.chat_settings(provider='openai', model='gpt-4o-mini', temperature=0.5, system_prompt='')

Parameters:

  • provider (str, optional): The chat LLM model provider. Defaults to 'OpenAI'

  • model (str, optional): The specific model to use based on the provider

  • temperature (float, optional): Controls the randomness of responses. Between 0 to 2

    • Lower values (0.0 - 0.3) make responses more deterministic.

    • Higher values (0.7 - 1.0) increase variability.

  • system_prompt (str, optional): A custom prompt used to guide the model’s behavior and responses

You can find your BerryDB api_key here.

Example:

from berrydb import Settings

# Initialize a settings builder
settings_builder = Settings.Builder()

# Configure Transformation Settings
settings_builder.transform_settings(
    filter_action="include",
    filter_expr=['content.text']
)

# Configure Retrieval Settings
settings_builder.retrieval_settings(
    k=10,
    number_of_search_docs=2,
    tracing_api_key=None,
    tracing_project_name="berrydb",
    similarity_search_type="cosine",
    fts=False  # Set to True if using Full-Text Search
)

# Configure Embedding Settings
settings_builder.embed_settings(
    provider="openai",
    model="text-embedding-3-small"
)

# Configure Chat Settings
settings_builder.chat_settings(
    provider="openai",
    model="gpt-4o-mini",
    temperature=0.0,
    system_prompt="Answer the question diligently"
)

# Build the settings object
settings = settings_builder.build()

# Save settings to BerryDB
berrydb_api_key = "your_api_key_here"  # Replace with your BerryDB API key
settings.save(berrydb_api_key, "my-settings")