初始化项目,由ModelHub XC社区提供模型
Model: connect211/RRULE_Extractor Source: Original Platform
This commit is contained in:
138
chat_template.jinja
Normal file
138
chat_template.jinja
Normal file
@@ -0,0 +1,138 @@
|
||||
{%- set image_placeholder = '<|vision_start|><|image_pad|><|vision_end|>' -%}
|
||||
{%- for message in messages -%}
|
||||
{%- if message['role'] == 'system' -%}
|
||||
{{- '<|im_start|>system
|
||||
' -}}
|
||||
{%- if message['content'] is string -%}
|
||||
{{- message['content'] | trim -}}
|
||||
{%- endif -%}
|
||||
{{- '<|im_end|>
|
||||
' -}}
|
||||
{%- elif message['role'] == 'user' -%}
|
||||
{%- if loop.first -%}
|
||||
{{- '<|im_start|>system
|
||||
' -}}
|
||||
{%- if template -%}
|
||||
{#--- If template, extraction task ---#}
|
||||
{{- 'You are NuExtract, an information extraction tool created by NuMind.' -}}
|
||||
{%- else -%}
|
||||
{#--- Else, template generation task ---#}
|
||||
{{- 'You are a helpful assistant.' -}}
|
||||
{%- endif -%}
|
||||
{{ '<|im_end|>
|
||||
' }}
|
||||
{%- endif -%}
|
||||
{{- '<|im_start|>' + message['role'] + '
|
||||
' -}}
|
||||
{%- if template -%}
|
||||
{#--- Template Section ---#}
|
||||
{{- '# Template:
|
||||
' -}}
|
||||
{{- template -}}
|
||||
{{- '
|
||||
' -}}
|
||||
|
||||
{%- if examples -%}
|
||||
{#--- Examples can only exist in the extraction task ---#}
|
||||
{{- '# Examples:
|
||||
' -}}
|
||||
{%- for example in examples -%}
|
||||
{{- '## Input:
|
||||
' -}}
|
||||
{%- if example['input'] is mapping and (example['input']['type'] == 'image' or example['input']['type'] == 'image_url') -%}
|
||||
{{- image_placeholder | trim -}}
|
||||
{%- elif example['input'] == '<image>' -%}
|
||||
{#--- Keep compatibility with <image> for now ---#}
|
||||
{{- image_placeholder | trim -}}
|
||||
{%- else -%}
|
||||
{#--- Text input example ---#}
|
||||
{{- example['input'] -}}
|
||||
{%- endif -%}
|
||||
{{- '
|
||||
' -}}
|
||||
{{- '## Output:
|
||||
' -}}
|
||||
{{- example['output'] -}}
|
||||
{{- '
|
||||
' -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- '# Context:
|
||||
' -}}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if message['content'] is string -%}
|
||||
{#--- Simple string content ---#}
|
||||
{{- message['content'] | trim -}}
|
||||
{%- elif message['content'] is mapping and (message['content']['type'] == 'image' or message['content']['type'] == 'image_url') -%}
|
||||
{{- image_placeholder | trim -}}
|
||||
{%- else -%}
|
||||
{#--- List of content items (mixed text/images) ---#}
|
||||
{#--- First, determine what the actual input content is (not ICL images) ---#}
|
||||
{%- set ns = namespace(has_text_input=false, text_content='') -%}
|
||||
|
||||
{#--- Count content types and identify actual input document ---#}
|
||||
{%- for content in message['content'] -%}
|
||||
{%- if content is mapping and content.get('type') == 'text' -%}
|
||||
{%- if content.get('text') != '<image>' -%}
|
||||
{#--- Keep compatibility with <image> for now ---#}
|
||||
{%- set ns.has_text_input = true -%}
|
||||
{%- set ns.text_content = content['text'] -%}
|
||||
{%- endif -%}
|
||||
{%- elif content is string -%}
|
||||
{%- if content != '<image>' -%}
|
||||
{#--- Keep compatibility with <image> for now ---#}
|
||||
{%- set ns.has_text_input = true -%}
|
||||
{%- set ns.text_content = content -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
|
||||
{#--- Determine what to output based on actual input type ---#}
|
||||
{%- if ns.has_text_input -%}
|
||||
{#--- Main input is text, so output the text content ---#}
|
||||
{{- ns.text_content | trim -}}
|
||||
{%- else -%}
|
||||
{#--- Main input is image or <image> placeholder ---#}
|
||||
{%- set ns2 = namespace(found_image=false) -%}
|
||||
{%- for content in message['content'] -%}
|
||||
{%- if content is mapping and (content.get('type') == 'image' or content.get('type') == 'image_url') and not ns2.found_image -%}
|
||||
{{- image_placeholder | trim -}}
|
||||
{%- set ns2.found_image = true -%}
|
||||
{%- elif content is mapping and content.get('type') == 'text' and content.get('text') == '<image>' and not ns2.found_image -%}
|
||||
{#--- Keep compatibility with <image> for now ---#}
|
||||
{{- image_placeholder | trim -}}
|
||||
{%- set ns2.found_image = true -%}
|
||||
{%- elif content is string and content == '<image>' and not ns2.found_image -%}
|
||||
{#--- Keep compatibility with <image> for now ---#}
|
||||
{{- image_placeholder | trim -}}
|
||||
{%- set ns2.found_image = true -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{{- '<|im_end|>
|
||||
'}}
|
||||
|
||||
{%- elif message['role'] == 'assistant' -%}
|
||||
{{- '<|im_start|>assistant
|
||||
' -}}
|
||||
{%- if message['content'] is string -%}
|
||||
{{- message['content'] | trim -}}
|
||||
{%- elif message['content'] is iterable and message['content'] is not string -%}
|
||||
{%- for content in message['content'] -%}
|
||||
{%- if content is mapping and content.get('type') == 'text' -%}
|
||||
{{- content['text'] | trim -}}
|
||||
{%- elif content is string -%}
|
||||
{{- content | trim -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- '<|im_end|>
|
||||
' -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if add_generation_prompt -%}
|
||||
{{- '<|im_start|>assistant
|
||||
' -}}
|
||||
{%- endif -%}
|
||||
Reference in New Issue
Block a user