orcalib.orca_chat#
OrcaChat
#
Bases: OrcaModel
A basic wrapper for a chatbot model that uses Orca for memory retrieval, and a base model with a generate method for response generation.
Parameters:
-
database
(OrcaDatabase | str | None
, default:None
) –The database to use for memory retrieval
-
memory_index_name
(str | None
, default:None
) –The name of the index to use for memory retrieval
-
lookup_column_names
(list[str] | None
, default:None
) –The names of the columns to retrieve for each memory
-
num_memories
(int
, default:20
) –The number of memories to retrieve
-
model
(str | PreTrainedModel | Module
, default:'facebook/opt-350m'
) –The model to use for response generation
-
mode
(str
, default:'chat'
) –The mode of the chatbot
-
use_rag
(bool
, default:False
) –Whether to use RAG for response generation
-
use_ground
(bool
, default:False
) –Whether to use grounding for response generation
-
max_context_length
(int
, default:4096
) –The maximum context length for response generation
-
tokenizer
(Optional[PreTrainedTokenizerBase]
, default:None
) –The tokenizer to use for response generation
-
model_id
(str
, default:'orca_public_chatbot_v0'
) –The name for the model for curate tracking of model runs
-
model_version
(str | None
, default:None
) –The version of the model for curate tracking of model runs
-
metadata
(OrcaMetadataDict | None
, default:None
) –The metadata for the model for curate tracking of model runs
-
curate_enabled
(bool
, default:False
) –Whether to enable curate tracking of model runs
-
tags
(set[str] | None
, default:None
) –The tags for the model for curate tracking of model runs
Other Parameters:
-
**kwargs
(Any
) –Additional keyword arguments to pass to the model
lookup_result_transforms
property
writable
#
A list of transforms to apply to the lookup result. NOTE: This will be applied even when lookup_result_override is set.
extra_lookup_column_names
property
writable
#
While set, all lookups will include these additional columns. They may inclue columns on the indexed table as well as index-specific columns, e.g., $score, $embedding.
lookup_query_override
property
writable
#
The query to use instead of performing a lookup. NOTE: This will be ignored if lookup_result_override is also set.
curate_database
property
writable
#
The name of the database to use for saving curate tracking data.
curate_batch_size
property
writable
#
The batch size of the model run to track curate data for, usually inferred automatically.
last_curate_run_ids
property
writable
#
The run ids of the last model run for which curate tracking data was collected.
last_curate_run_settings
property
writable
#
The settings of the last model run for which curate tracking data was collected.
get_effective_lookup_settings
#
Returns the effective lookup settings for this module, with any inherited settings applied.
Returns:
-
LookupSettings
–The effective lookup settings for this module. Practically, this be the lookup settings
-
LookupSettings
–set on this module. For any settings that are not set on this module, the inherited settings
-
LookupSettings
–will be used instead.
get_orca_modules_recursively
#
Recursively yields all children of this module that are instances of the specified filter type.
- All parent nodes will be processed before their children
- This will search through all children —even those that are not a subclass of
the
filter_type
— but it only returns children that are a subclass offilter_type
.
Parameters:
-
max_depth
(int | None
, default:None
) –The maximum depth to search.
- Setting this to
0
will only include this module. - Setting this to
1
will include only this module and its children. - Setting it to
None
(the default) will search through all modules. - Modules that are not of
filter_type or OrcaModule
do not increment the depth.
- Setting this to
-
include_self
(bool
, default:True
) –Whether to include the current OrcaModule in the results.
-
filter_type
(type[ORCA_MODULE_TYPE] | None
, default:None
) –The subtype of
OrcaModule
to filter for. IfNone
, any subtypes ofOrcaModule
will be returned.
Yields:
-
ORCA_MODULE_TYPE
–modules of type
filter_type
that are used in the children of this module.
enable_curate
#
Enable Curate tracking for the model and (if recursive is True) for all its descendants.
Parameters:
-
recursive
(bool
, default:True
) –Whether to enable Curate tracking recursively.
disable_curate
#
Disable Curate tracking for this module and (if recursive is True) for all its descendants.
Parameters:
-
recursive
(bool
, default:True
) –Whether to disable Curate tracking recursively.
update_curate_settings
#
Update curate tracking settings for the module and all its children.
Parameters:
-
model_id
(str | None
, default:None
) –The ID of the model.
-
model_version
(str | None
, default:None
) –The version of the model.
-
tags
(Iterable[str] | None
, default:None
) –The new tags to be added to the model.
-
extra_tags
(Iterable[str] | None
, default:None
) –The extra tags to be added to the model.
-
metadata
(OrcaMetadataDict | None
, default:None
) –The new metadata to be added to the model.
-
extra_metadata
(OrcaMetadataDict | None
, default:None
) –The extra metadata to be added to the model.
-
batch_size
(int | None
, default:None
) –The batch size to be used for the model.
-
seq_id
(UUID | None
, default:None
) –The sequence ID to be used for the model.
record_next_model_memory_lookups
#
Sets up curate tracking for the memory lookups during the next forward pass only.
Parameters:
-
tags
(Iterable[str] | None
, default:None
) –Additional tags to be recorded on the next model run.
-
metadata
(OrcaMetadataDict | None
, default:None
) –Additional metadata to be recorded on the next model run.
-
batch_size
(int | None
, default:None
) –The batch size to be used for the next model run.
-
seq_id
(UUID | None
, default:None
) –The sequence ID to be used for the next model run.
record_model_feedback
#
Records feedback for the last model runs for which memory lookups were recorded by curate.
Parameters:
record_model_input_output
#
get_lookup_setting_summary
#
Returns a summary of the lookup settings for each OrcaLookupLayer
in
this module and its descendants.
prep_next_gen
#
Prepares the next generation by updating the chat history and last user input.
Parameters:
-
last_user_input
(str
) –The last user input
Returns:
retrieve
#
format_context
#
update_grounding_params
#
switch_config
#
Switch the OrcaLookupConfig for the OrcaChat instance, clearing the chat history.
Note
The settings will be propagated to the OrcaLookupLayer, if it exists.
Parameters:
-
database_name
(str | None
) –The name of the database to use for memory retrieval
-
index_name
(str | None
) –The name of the index to use for memory retrieval
-
lookup_column_names
(list[str] | None
) –The names of the columns to retrieve for each memory
-
num_memories
(int | None
) –The number of memories to retrieve