llm
, embedding model
, or vector database
) through a simple yaml configuration that Embedchain offers. Here is a generic full-stack example of the yaml config:
Embedchain applications are configurable using YAML file, JSON file or by directly passing the config dictionary. Checkout the docs here on how to use other formats.
app
Section:config
:name
(String): The name of your full-stack application.id
(String): The id of your full-stack application.Only use this to reload already created apps. We recommend users to not create their own ids.collect_metrics
(Boolean): Indicates whether metrics should be collected for the app, defaults toTrue
log_level
(String): The log level for the app, defaults toWARNING
llm
Section:provider
(String): The provider for the language model, which is set to ‘openai’. You can find the full list of llm providers in our docs.config
:model
(String): The specific model being used, ‘gpt-3.5-turbo’.temperature
(Float): Controls the randomness of the model’s output. A higher value (closer to 1) makes the output more random.max_tokens
(Integer): Controls how many tokens are used in the response.top_p
(Float): Controls the diversity of word selection. A higher value (closer to 1) makes word selection more diverse.stream
(Boolean): Controls if the response is streamed back to the user (set to false).prompt
(String): A prompt for the model to follow when generating responses, requires$context
and$query
variables.system_prompt
(String): A system prompt for the model to follow when generating responses, in this case, it’s set to the style of William Shakespeare.stream
(Boolean): Controls if the response is streamed back to the user (set to false).number_documents
(Integer): Number of documents to pull from the vectordb as context, defaults to 1api_key
(String): The API key for the language model.model_kwargs
(Dict): Keyword arguments to pass to the language model. Used foraws_bedrock
provider, since it requires different arguments for each model.
vectordb
Section:provider
(String): The provider for the vector database, set to ‘chroma’. You can find the full list of vector database providers in our docs.config
:collection_name
(String): The initial collection name for the vectordb, set to ‘full-stack-app’.dir
(String): The directory for the local database, set to ‘db’.allow_reset
(Boolean): Indicates whether resetting the vectordb is allowed, set to true.We recommend you to checkout vectordb specific config here
embedder
Section:provider
(String): The provider for the embedder, set to ‘openai’. You can find the full list of embedding model providers in our docs.config
:model
(String): The specific model used for text embedding, ‘text-embedding-ada-002’.vector_dimension
(Integer): The vector dimension of the embedding model. Defaultsapi_key
(String): The API key for the embedding model.deployment_name
(String): The deployment name for the embedding model.title
(String): The title for the embedding model for Google Embedder.task_type
(String): The task type for the embedding model for Google Embedder.
chunker
Section:chunk_size
(Integer): The size of each chunk of text that is sent to the language model.chunk_overlap
(Integer): The amount of overlap between each chunk of text.length_function
(String): The function used to calculate the length of each chunk of text. In this case, it’s set to ‘len’. You can also use any function import directly as a string here.min_chunk_size
(Integer): The minimum size of each chunk of text that is sent to the language model. Must be less thanchunk_size
, and greater thanchunk_overlap
.
cache
Section: (Optional)similarity_evaluation
(Optional): The config for similarity evaluation strategy. If not provided, the defaultdistance
based similarity evaluation strategy is used.strategy
(String): The strategy to use for similarity evaluation. Currently, onlydistance
andexact
based similarity evaluation is supported. Defaults todistance
.max_distance
(Float): The bound of maximum distance. Defaults to1.0
.positive
(Boolean): If the larger distance indicates more similar of two entities, set itTrue
, otherwiseFalse
. Defaults toFalse
.
config
(Optional): The config for initializing the cache. If not provided, sensible default values are used as mentioned below.similarity_threshold
(Float): The threshold for similarity evaluation. Defaults to0.8
.auto_flush
(Integer): The number of queries after which the cache is flushed. Defaults to20
.
If you provide a cache section, the app will automatically configure and use a cache to store the results of the language model. This is useful if you want to speed up the response time and save inference cost of your app.