File size: 7,742 Bytes
4d1de3e fd29476 4d1de3e fd29476 4d1de3e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
---
license: mit
---
# Table of Contents
* [\_\_init\_\_](#__init__)
* [DemonstrationsAtomicFlow](#DemonstrationsAtomicFlow)
* [DemonstrationsAtomicFlow](#DemonstrationsAtomicFlow.DemonstrationsAtomicFlow)
* [instantiate\_from\_config](#DemonstrationsAtomicFlow.DemonstrationsAtomicFlow.instantiate_from_config)
* [run](#DemonstrationsAtomicFlow.DemonstrationsAtomicFlow.run)
* [ChatWithDemonstrationsFlow](#ChatWithDemonstrationsFlow)
* [ChatWithDemonstrationsFlow](#ChatWithDemonstrationsFlow.ChatWithDemonstrationsFlow)
<a id="__init__"></a>
# \_\_init\_\_
<a id="DemonstrationsAtomicFlow"></a>
# DemonstrationsAtomicFlow
<a id="DemonstrationsAtomicFlow.DemonstrationsAtomicFlow"></a>
## DemonstrationsAtomicFlow Objects
```python
class DemonstrationsAtomicFlow(AtomicFlow)
```
This class implements a Demonstrations Atomic Flow. It is a flow which is usually used to pass demonstrations (of user assistant interactions)
to the ChatAtomicFlow.
*Configuration Parameters*:
- `name` (str): The name of the flow. Default: "DemonstrationsAtomicFlow"
- `description` (str): A description of the flow. This description is used to generate the help message of the flow.
Default: "A flow that passes demonstrations to the ChatFlow"
- `data` (List[Dict[str, Any]]): The data of the demonstrations.
If data is None, the data is loaded from the file specified in the params["data_dir"].
Default: No default value this field must be set.
- `params` (Dict[str, Any]): The parameters specific to the dataset of the demonstrations. Its default parameters are:
- `data_dir` (str): The directory where the demonstrations are stored. If the data is not directly passed to the flow through `data` then
the data is loaded from this directory. Default: No default value this field must be set.
- `demonstrations_id` (str): The id of the demonstrations (name of the data file). If the data is not directly passed to the flow through `data` then
the data is loaded from this file. Default: No default value this field must be set.
- `demonstrations_k` (int): The number of demonstrations to pass to the ChatFlow.
If None, all the demonstrations are passed to the ChatFlow. Default: None
- `query_prompt_template` (Dict[str, Any]): The prompt template used to generate the query of the demonstrations.
By default its of type aiflows.prompt_template.JinjaPrompt. None of the parameters of the prompt are defined by default and therefore need to be defined if one
wants to use the query_prompt_template. Default parameters are defined in aiflows.prompt_template.jinja2_prompts.JinjaPrompt.
- `response_prompt_template` (Dict[str, Any]): The prompt template used to generate the response of the demonstrations. By default its of type aiflows.prompt_template.JinjaPrompt.
None of the parameters of the prompt are defined by default and therefore need to be defined if one
wants to use the response_prompt_template. Default parameters are defined in aiflows.prompt_template.jinja2_prompts.JinjaPrompt.
*Input Interface*:
- The input interface expected by its successor flow (e.g. typically ChatAtomicFlow so the input interface is the one expected by ChatAtomicFlow)
*Output Interface*:
- The input interface expected by its successor flow (e.g. typically ChatAtomicFlow so the input interface expected by ChatAtomicFlow))
- `demonstrations` (List[Dict[str, Any]]): A list of demonstrations. Each demonstration is a dictionary with the following keys:
- idx (int): The index of the demonstration
- query (str): The query of the demonstration
- response (str): The response of the demonstration
**Arguments**:
- `params` (`Dict[str, Any]`): The parameters specific to the dataset of the demonstrations. It must sould contain the following keys:
- 'data_dir' (str): The directory where the demonstrations are stored. This field is used if the data is not directly passed to the flow through the 'data' field.
- 'demonstrations_id' (str): The id of the demonstrations (name of the data file). This field is used if the data is not directly passed to the flow through the 'data' field.
- 'demonstrations_k' (int): The number of demonstrations to pass to the ChatFlow. If None, all the demonstrations are passed to the ChatFlow.
- 'ids_to_keep' (Optional[Union[str, List[str]]]): The ids of the demonstrations to keep. If None, all the demonstrations are kept.
- `query_prompt_template` (`JinjaPrompt`): The prompt template used to generate the query of the demonstrations.
- `response_prompt_template` (`JinjaPrompt`): The prompt template used to generate the response of the demonstrations.
- `data` (`Optional[List[Dict[str, Any]]]`): The data of the demonstrations. If None, the data is loaded from the file specified in the params.
<a id="DemonstrationsAtomicFlow.DemonstrationsAtomicFlow.instantiate_from_config"></a>
#### instantiate\_from\_config
```python
@classmethod
def instantiate_from_config(cls, config)
```
This method instantiates the flow from a config file.
**Arguments**:
- `config` (`Dict[str, Any]`): The configuration of the flow.
**Returns**:
`Flow`: The instantiated flow.
<a id="DemonstrationsAtomicFlow.DemonstrationsAtomicFlow.run"></a>
#### run
```python
def run(input_data: Dict[str, Any]) -> Dict[str, Any]
```
This method runs the flow. It returns the input data of the flow with the demonstrations added to it.
**Arguments**:
- `input_data` (`Dict[str, Any]`): The input data of the flow.
**Returns**:
`Dict[str, Any]`: The input data of the flow with the demonstrations added to it.
<a id="ChatWithDemonstrationsFlow"></a>
# ChatWithDemonstrationsFlow
<a id="ChatWithDemonstrationsFlow.ChatWithDemonstrationsFlow"></a>
## ChatWithDemonstrationsFlow Objects
```python
class ChatWithDemonstrationsFlow(SequentialFlow)
```
A Chat with Demonstrations Flow. It is a flow that consists of multiple sub-flows that are executed sequentially.
It's parent class is SequentialFlow.
It Contains the following subflows:
- A Demonstration Flow: It is a flow that passes demonstrations to the ChatFlow
- A Chat Flow: It is a flow that uses the demonstrations to answer queries asked by the user/human.
An illustration of the flow is as follows:
-------> Demonstration Flow -------> Chat Flow ------->
*Configuration Parameters*:
- `name` (str): The name of the flow. Default: "ChatAtomic_Flow_with_Demonstrations"
- `description` (str): A description of the flow. This description is used to generate the help message of the flow.
Default: "A sequential flow that answers questions with demonstrations"
- `subflows_config` (Dict[str,Any]): A dictionary of subflows configurations of the sequential Flow. Default:
- `Demonstration Flow`: The configuration of the Demonstration Flow. By default, it a DemonstrationsAtomicFlow.
Its default parmaters are defined in DemonstrationsAtomicFlow).
- `Chat Flow`: The configuration of the Chat Flow. By default, its a ChatAtomicFlow.
Its default parmaters are defined in ChatAtomicFlowModule (see Flowcard, i.e. README.md, of ChatAtomicFlowModule).
- `topology` (str): The topology of the flow which is "sequential". By default, the topology is the one shown in the
illustration above (the topology is also described in ChatWithDemonstrationsFlow.yaml).
*Input Interface*:
- `query` (str): A query asked to the flow (e.g. "What is the capital of France?")
Output Interface:
- `answer` (str): The answer of the flow to the query
**Arguments**:
- `\**kwargs`: Arguments to be passed to the parent class SequentialFlow constructor.
|