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 to3
.fts (
bool
, optional): If you want to use FTS instead of keyword search. Defaults toFalse
. To use FTS you need to enable FTS on your BerryDB database, see how to enable herenumber_of_search_docs (
int
, optional): Number of results to be fetched from FTS or Keyword search in k documentstracing_api_key (
str
, optional): langsmith API key to trace and evaluate a model with parameterstracing_project_name (
str
, optional): A name for for tracingsimilarity_search_type (
str
, optional): The type of vector search you want to perform'Cosine'
,'Dot'
or'L2'
. Defaults toCosine
.
- 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_actionjsonata_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 providertemperature (
float
, optional): Controls the randomness of responses. Between 0 to 2Lower 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")