main
jinja 20 lines 823 Bytes
Raw
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('') }}