generative_ai.information_retrieval.step_2_retrieval module#
Define functionalities to fetch and use relevant information from database.
- create_database_retriever(embedding_database: Chroma, search_type: RetrievalType, number_of_documents: int, initial_number_of_documents: int, diversity_level: float) VectorStoreRetriever#
Prepare a vector store retriever for the retrieval database.
- Parameters:
embedding_database (
Chroma) -- vector storesearch_type (
RetrievalType) -- kind of retrieval algorithm for searching vector storenumber_of_documents (
int) -- number of documents to retrieveinitial_number_of_documents (
int) -- initial number of documents to considerdiversity_level (
float) -- similarity between retrieved documents
- Returns:
vector store retriever
- Return type:
VectorStoreRetriever- Raises:
ValueError -- if retrieval type is not supported
Notes
If
search_typeissimilarity, onlynumber_of_documentsis used.For maximal marginal relevance (
MMR),diversity_levelmust be in [0, 1].0means minimum diversity.1means maximum diversity.
- create_llm(language_model: QuantisedModel | StandardModel) CTransformers | HuggingFacePipeline#
Prepare a large language model.
- Parameters:
language_model (
LanguageModel) -- details of large language model- Returns:
loaded large language model
- Return type:
CTransformers | HuggingFacePipeline- Raises:
ValueError -- if language model type is not supported
Notes
At most 256 new tokens will be generated.
Deterministic behaviour is ensured for both types of large language models.
For
transformerscompatible models,top_kis set to 1.For
ctransformerscompatible models,temperatureis set to 0.
- generate_retrieval_chain(database_retriever: VectorStoreRetriever, llm: CTransformers | HuggingFacePipeline) BaseRetrievalQA#
Prepare a retrieval chain for question answering.
- Parameters:
database_retriever (
VectorStoreRetriever) -- vector store retrieverllm (
CTransformers | HuggingFacePipeline) -- large language model
- Returns:
retrieval chain
- Return type:
BaseRetrievalQA
Notes
The prompt template instructs the model to not answer if it is missing in the context.
It also instructs the model to keep the answer as concise as possible.