| 1 | {%- if messages | length > 1 -%} |
| 2 | {{ raise_exception('Embedding models should only embed one message at a time') }} |
| 3 | {%- endif -%} |
| 4 | |
| 5 | {% set vars = namespace(prefix='', images=[], texts=[]) %} |
| 6 | {%- for message in messages -%} |
| 7 | {%- if message['role'] == 'query' -%} |
| 8 | {%- set vars.prefix = 'query: ' %} |
| 9 | {%- elif message['role'] == 'document' -%} |
| 10 | {%- set vars.prefix = 'passage: ' %} |
| 11 | {%- endif -%} |
| 12 | {%- for content in message['content'] -%} |
| 13 | {%- if content['type'] == 'text' -%} |
| 14 | {%- set vars.texts = vars.texts + [content['text']] %} |
| 15 | {%- elif content['type'] == 'image' -%} |
| 16 | {%- set vars.images = vars.images + ['<image> '] %} |
| 17 | {%- endif -%} |
| 18 | {%- endfor -%} |
| 19 | {%- endfor -%} |
| 20 | {{- bos_token }}{{ vars.prefix }}{{ (vars.images + vars.texts) | join('') }} |