当前位置: 首页 > news >正文

提示词格式化

利用jinja2,对提示词进行格式输出。以下是qwen2中tokenizer_config.json文件中的chat_template模块定义的提示词转换方式。

(1)查看qwen2的chat_template

{"add_prefix_space": false,"added_tokens_decoder": {"151643": {"content": "<|endoftext|>","lstrip": false,"normalized": false,"rstrip": false,"single_word": false,"special": true},"151644": {"content": "<|im_start|>","lstrip": false,"normalized": false,"rstrip": false,"single_word": false,"special": true},"151645": {"content": "<|im_end|>","lstrip": false,"normalized": false,"rstrip": false,"single_word": false,"special": true}},"additional_special_tokens": ["<|im_start|>", "<|im_end|>"],"bos_token": null,"chat_template": "{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant.<|im_end|
>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>ass
istant\n' }}{% endif %}","clean_up_tokenization_spaces": false,"eos_token": "<|im_end|>","errors": "replace","model_max_length": 32768,"pad_token": "<|endoftext|>","split_special_tokens": false,"tokenizer_class": "Qwen2Tokenizer","unk_token": null
}

(2)提示词格式话

from jinja2 import Template# 定义模板字符串
template_str = """
{% for message in messages %}
{% if loop.first and messages[0]['role'] != 'system' %}
{{ '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }}
{% endif %}
{{ '<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n' }}
{% endfor %}
{% if add_generation_prompt %}
{{ '<|im_start|>assistant\n' }}
{% endif %}
"""# 创建模板对象
template = Template(template_str)# 定义数据
messages = [{'role': 'user', 'content': '你好,我需要帮助。'},{'role': 'assistant', 'content': '你好!我能帮你什么吗?'},{'role': 'user', 'content': '我想了解一下天气。'},{'role': 'assistant', 'content': '今天的天气是晴朗的。'},
]
add_generation_prompt = True  #一个控制标志,用于在需要时向用户或系统提供额外的提示信息,特别是在生成文本或对话的上下文中。它帮助区分不同的发言者或指示接下来的操作步骤# 渲染模板
output = template.render(messages=messages, add_generation_prompt=add_generation_prompt)# 打印输出结果
print(output)

相关文章:

提示词格式化

利用jinja2&#xff0c;对提示词进行格式输出。以下是qwen2中tokenizer_config.json文件中的chat_template模块定义的提示词转换方式。 &#xff08;1&#xff09;查看qwen2的chat_template {"add_prefix_space": false,"added_tokens_decoder": {"…...

JAVA八股文1

1.Java 基础 1.1 语法基础 封装 利用抽象数据类型将数据和基于数据的操作封装在一起&#xff0c;使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部&#xff0c;尽可能地隐藏内部的细节&#xff0c;只保留一些对外接口使之与外部发生联系。用户无需知道对象内…...

yum仓库安装rabbitmq

yum仓库安装rabbitmq 1、配置yum仓库 vim /etc/yum.repos.d/rabbitmq.repo # In /etc/yum.repos.d/rabbitmq.repo## ## Zero dependency Erlang ##[rabbitmq_erlang] namerabbitmq_erlang baseurlhttps://packagecloud.io/rabbitmq/erlang/el/7/$basearch repo_gpgcheck1 gpg…...

go语言中的函数详解

1. 引言 函数是编程中不可或缺的组成部分&#xff0c;无论是在Go语言还是其他编程语言中&#xff0c;函数都扮演着重要的角色。函数能够将一系列的操作封装在一起&#xff0c;使得代码更加模块化、可重用和易于维护。 在本文中&#xff0c;我们将详细介绍Go语言中函数的概念和…...

ubuntu18.04运行OpenPCDet出现的问题

一、概述 在编译成功OpenPCDet的源代码之后&#xff0c;发现在运行demo时候&#xff0c;依旧出现了很多问题&#xff0c;在此对出现的问题进行总结记录。 二、问题分析 &#xff08;一&#xff09;ModuleNotFoundError:No module named av2 如图所示 这个问题比较简单&#x…...

【C++】——继承(下)

【C】——继承&#xff08;下&#xff09; 5 继承与友元6 继承与静态成员7 多继承7.1 继承模型7.2 菱形继承的问题7.3 虚继承7.4 多继承中的指针偏移问题 8 组合与继承 5 继承与友元 友元关系不能被继承。即一个函数是父类的友元函数&#xff0c;但不是子类的友元函数。也就是说…...

Pandas处理时间序列之光谱分析与聚类

import matplotlib.pylab as plt %matplotlib inline import numpy as np from numpy import fft import pandas as pd 一、光谱分析 • 将时间序列分解为许多正弦或余弦函数的总和 • 这些函数的系数应该具有不相关的值 • 对正弦函数进行回归 光谱分析应用场景 基于光谱的…...

【WebGIS】Cesium:GeoJSON加载

GeoJSON 是一种常用的地理空间数据格式&#xff0c;它用于表示简单的地理要素及其属性&#xff0c;并且被广泛应用于 Web 地图和 GIS 系统中。在 Cesium 中&#xff0c;GeoJSON 文件可以很方便地加载到三维场景中展示&#xff0c;并且可以添加样式和事件处理。本文将为你提供详…...

PageHelper实现分页查询

前端发送的请求参数 后端返回的对象类型 Controller类实现 /*** 员工分页查询* param employeePageQueryDTO* return*/GetMapping("/page")ApiOperation("员工分页查询")public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO)…...

边缘检测评估方法:FOM、RMSE、PSNR和SSIM对比实验和理论研究

图像分割与边缘检测是密切相关的计算机视觉任务。以下图1展示了一个海岸线分割模型的输出示例: 图1: 分割掩码到边缘图的转换过程(数据集:LICS) 模型将每个像素分类为陆地或海洋(分割掩码)。随后,海岸线被定义为分类发生变化的像素位置(边缘图)。边缘检测可以通过提取图像分割…...

MySql 多表查询

多表查询&#xff1a;指从多张表中查询数据。 笛卡儿积&#xff1a;笛卡儿积是指在数学中&#xff0c;两个集合&#xff08;A集合 和 B集合&#xff09;的所有组合情况。 连接查询 内连接&#xff1a;相当于查询A、B交集部分数据外连接 左外连接&#xff1a;查询左表所有数据…...

数学建模算法与应用 第11章 偏最小二乘回归及其方法

目录 11.1 偏最小二乘回归概述 11.2 Matlab 偏最小二乘回归命令 Matlab代码示例&#xff1a;偏最小二乘回归 11.3 案例分析&#xff1a;化学反应中的偏最小二乘回归 Matlab代码示例&#xff1a;光谱数据的PLS回归 习题 11 总结 偏最小二乘回归&#xff08;Partial Least …...

【MATLAB代码】TDOA定位,4个基站、3个时间差、三维定位(可直接复制粘贴到MATLAB上运行)

文章目录 程序结构源代码运行结果代码结构输入输出解析该MATLAB代码实现了基于时间差定位(TDOA, Time Difference of Arrival)的方法,使用最小二乘法在三维空间中估计一个未知点的位置。该算法利用一个主锚点和三个副锚点的已知位置,通过计算信号传播时间差来推算出目标位置…...

uniapp引入ThorUI的方法

1、下载文件 2、复制相应的文件除了pages 3、往项目中复制即可 4、引入即可实现 5、添加easycome自动引入...

面试官:手写一个New

在JavaScript中&#xff0c;new操作符主要用于创建一个对象示例。通过new操作符&#xff0c;可以创建一个新的对象&#xff0c;并将这个对象的原型链只想一个构造函数的原型对象&#xff0c;然后执行构造函数中的代码初始化这个新对象。 常见的new的使用为 new Array() new Set…...

merlion的dashboard打开方法

安装好merlion包后&#xff0c;在anaconda prompt中进行如下图操作&#xff1a; 先进入创建好的虚拟环境&#xff1a;conda activate merlion再执行命令&#xff1a;python -m merlion.dashboard在浏览器中手动打开图中的地址&#xff1a; http://127.0.0.1:8050 打开后的界面…...

自监督学习:引领机器学习的新革命

引言 自监督学习&#xff08;Self-Supervised Learning&#xff09;近年来在机器学习领域取得了显著进展&#xff0c;成为人工智能研究的热门话题。不同于传统的监督学习和无监督学习&#xff0c;自监督学习通过利用未标注数据生成标签&#xff0c;从而大幅降低对人工标注数据…...

Web安全常用工具 (持续更新)

前言 本文虽然是讲web相关工具&#xff0c;但在在安全领域&#xff0c;没有人是先精通工具&#xff0c;再上手做事的。鉴于web领域繁杂戎多的知识点&#xff08;工具是学不完的&#xff0c;哭&#xff09;&#xff0c;如果你在本文的学习过程中遇到没有学过的知识点&#xff0…...

不踩坑,青龙面板小问题解决方案~

好久没写了&#xff0c;随手记录一下。 1. 新建目录 很多人跟我一样入坑的手机免root青龙面板&#xff0c;一般用的都是2.10.13版本。这个版本比较早&#xff0c;似乎没有新建目录的功能&#xff08;也可能是我不会用哈哈&#xff09;&#xff0c;以下是对比图&#xff1a; 大家…...

2025秋招倒计时---招联金融

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…...

UE5新手必看:给你的自定义Pawn加上碰撞,别再让它“穿墙”了!

UE5碰撞系统实战&#xff1a;从零构建防穿墙Pawn的完整指南 当你在UE5中第一次创建自定义Pawn时&#xff0c;最令人沮丧的莫过于看着自己精心设计的角色像幽灵一样穿过墙壁和障碍物。这种"穿模"现象不仅破坏游戏体验&#xff0c;更会导致后续游戏逻辑的全面崩溃。本文…...

UniMcp开源项目:构建音乐教育应用的标准化数据协议与开发实践

1. 项目概述&#xff1a;一个为音乐学习应用打造的开发者工具如果你是一名开发者&#xff0c;正在为“Yousician”这类音乐学习应用构建功能&#xff0c;或者你是一个对音乐教育技术感兴趣的程序员&#xff0c;那么你很可能遇到过这样的困境&#xff1a;如何高效地管理那些复杂…...

MATLAB许可不够用?自动回收闲置,算法开发团队告别等待

MATLAB许可证不够用&#xff1f;我来告诉你2026年最新解决方案&#xff1a;用自动回收闲许可&#xff0c;让团队飞起来&#xff01;我上周帮一家做自动驾驶算法的公司整活&#xff0c;他们2026年用的是MATLAB R2026a版本。这位老大难问题&#xff1a;20个开发席位&#xff0c;八…...

手把手教你用ADS 2023设计433MHz低噪放大器(附ATF54143模型下载)

手把手教你用ADS 2023设计433MHz低噪放大器&#xff08;附ATF54143模型下载&#xff09; 在射频电路设计中&#xff0c;低噪声放大器&#xff08;LNA&#xff09;是接收机前端的关键部件&#xff0c;其性能直接影响整个系统的灵敏度。433MHz频段广泛应用于物联网、遥控器和工业…...

AI与XR融合实战:Mosaic-Bridge中间件架构与性能调优

1. 项目概述&#xff1a;一个连接AI与XR世界的桥梁 最近在探索AI与扩展现实&#xff08;XR&#xff09;融合的落地场景时&#xff0c;我遇到了一个非常有意思的开源项目—— MosaicXR-AI/mosaic-bridge 。乍一看这个标题&#xff0c;你可能会觉得它只是一个普通的“桥接”工…...

Git提交规范自动化:Husky与Commitlint提升团队协作效率

1. 项目概述&#xff1a;一个被低估的开发者效率神器 如果你和我一样&#xff0c;每天都要在终端里敲下几十次 git commit -m “fix: xxx” &#xff0c;并且每次都要纠结于提交信息的格式、规范&#xff0c;甚至因为一个拼写错误而不得不重新修改提交&#xff0c;那么你一定…...

别再手动点选了!用Python脚本5分钟搞定Abaqus批量加载节点力(附完整代码)

Python自动化赋能Abaqus&#xff1a;高效批量加载节点力的工程实践 在有限元分析领域&#xff0c;Abaqus作为行业标杆软件&#xff0c;其强大的计算能力与灵活的二次开发接口深受工程师青睐。然而&#xff0c;当面对需要为数百甚至上千个节点分别施加不同载荷的复杂工况时&…...

40希尔排序 - 以递减间距进行插入排序

希尔排序 - 以递减间距进行插入排序 040希尔排序&#xff1a;用长距离跳跃打破速度壁垒&#x1f4f0; 5W1H 发明者故事 Who&#xff08;何人&#xff09;- 发明者是谁&#xff1f; 发明者&#xff1a;唐纳德希尔&#xff08;Donald L. Shell&#xff09; 背景&#xff1a;希尔…...

嵌入式音频开发避坑指南:如何用一颗模组搞定AEC、ANS与啸叫抑制

摘要&#xff1a;在智能门禁、会议终端、车载语音等嵌入式产品中&#xff0c;回声消除&#xff08;AEC&#xff09;、噪声抑制&#xff08;ANS&#xff09;和啸叫抑制&#xff08;AFC&#xff09;是三大“硬骨头”。本文将深入解析A-59F多功能语音处理模组的架构与特性&#xf…...

终极Koikatu游戏增强补丁:200+模组与完整汉化一键安装指南

终极Koikatu游戏增强补丁&#xff1a;200模组与完整汉化一键安装指南 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch KK-HF Patch是专为Koikatu&a…...