Chainlit实现启动页面选择不同的LLM启动器等设置界面
基本概念:启动选择器(Starters)
启动选择器(Starters) 是一种帮助用户开始与您的助手互动的建议。您可以为助手定义最多4个启动建议,并且可以为每个启动建议指定一个图标。
示例代码 (starters.py
)
import chainlit as cl@cl.set_starters
async def set_starters():return [cl.Starter(label="晨间例行程序构思",message="你能帮我创建一个个性化的晨间例行程序来提高我一天中的生产力吗?从询问我的现有习惯和早晨哪些活动能让我精力充沛开始。",icon="/public/idea.svg",),cl.Starter(label="简单解释超导体",message="像对五岁孩子那样解释超导体。",icon="/public/learn.svg",),cl.Starter(label="Python脚本用于自动化发送每日邮件报告",message="编写一个Python脚本来自动发送每日邮件报告,并指导我如何设置。",icon="/public/terminal.svg",),cl.Starter(label="邀请朋友参加婚礼的短信",message="写一条短信邀请一位朋友作为我的伴郎参加下个月的婚礼。我希望保持简短和随意,并提供选择退出的方式。",icon="/public/write.svg",)]
使用聊天配置文件的启动建议
启动建议也可以与**聊天配置文件(Chat Profiles)**一起使用。您可以为不同的聊天配置文件定义不同的启动建议。
示例代码 (starters_with_chat_profiles.py
)
@cl.set_chat_profiles
async def chat_profile(current_user: cl.User):if current_user.metadata["role"] != "ADMIN":return Nonereturn [cl.ChatProfile(name="我的聊天配置文件",icon="https://picsum.photos/250",markdown_description="底层的LLM模型是 **GPT-3.5**,一个 *1750亿参数* 的模型,训练于 410GB 的文本数据。",starters=[cl.Starter(label="晨间例行程序构思",message="你能帮我创建一个个性化的晨间例行程序来提高我一天中的生产力吗?从询问我的现有习惯和早晨哪些活动能让我精力充沛开始。",icon="/public/idea.svg",),cl.Starter(label="简单解释超导体",message="像对五岁孩子那样解释超导体。",icon="/public/learn.svg",),],)]
如果您想让用户从预定义的配置助手列表中进行选择,聊天配置文件非常有用。例如,您可以为支持聊天、销售聊天或特定产品的聊天定义聊天配置文件。
示例代码
import chainlit as cl@cl.set_chat_profiles
async def chat_profile():return [cl.ChatProfile(name="GPT-3.5",markdown_description="The underlying LLM model is **GPT-3.5**.",icon="https://picsum.photos/200",),cl.ChatProfile(name="GPT-4",markdown_description="The underlying LLM model is **GPT-4**.",icon="https://picsum.photos/250",),]@cl.on_chat_start
async def on_chat_start():chat_profile = cl.user_session.get("chat_profile")await cl.Message(content=f"starting chat using the {chat_profile} chat profile").send()
相关文章:

Chainlit实现启动页面选择不同的LLM启动器等设置界面
基本概念:启动选择器(Starters) 启动选择器(Starters) 是一种帮助用户开始与您的助手互动的建议。您可以为助手定义最多4个启动建议,并且可以为每个启动建议指定一个图标。 示例代码 (starters.py) impo…...
SQL - 增、改、删
插入 (insert into) 插入单行 insert into 表名 values ( 对应列的值,用,号间隔) //一般主键值用default,不可填null的不要填null insert into 表名 (需要提供值的列名) values (与之对应的提供的值) //其他的值只需mysql默认提供 insert into 表名 子查…...

怎么屏蔽电脑监控软件?企业管理者的智慧选择——精准定位,合理屏蔽,让监控软件成为助力而非障碍!
电脑监控软件在企业管理中扮演着日益重要的角色,它们能够提升工作效率、保障信息安全、预防内部风险。然而,过度或不当使用监控软件也可能引发员工隐私担忧,影响工作积极性和团队氛围。因此,作为企业管理者,如何精准定…...

Linux·权限与工具-make
1. Makefile/makefile工具 首先展示一下,makefile工具如何使用。我们先写一个C语言程序 然后我们建立一个Makefile/makefile文件,m大小写均可。我们在文件中写入这样两行 wq保存退出后,我们使用 make 命令 可以看到生成了可执行程序ÿ…...

C++的序列容器——数组
前言: 这篇文章我们就开始新的章节,我们之前说的C/C的缺陷那部分内容就结束了。在开始新的章之前我希望大家可以先对着题目思考一下,C的容器是什么?有什么作用?下面让我们开始新的内容: 目录 前言&#x…...
TCC 和 XA 协议之间的区别?
TCC(Two-Phase Commit)协议和XA协议都是用于分布式系统中确保事务原子性的协议。它们在实现分布式事务协调方面有一些相似之处,但也存在一些关键的不同点。 协议的协调者(Coordinator)角色: TCC协议&#x…...

萌啦数据插件使用情况分析,萌啦数据插件下载
在当今数字化时代,数据已成为企业决策与个人分析不可或缺的重要资源。随着数据分析工具的日益丰富,一款高效、易用的数据插件成为了众多用户的心头好。其中,“萌啦数据插件”凭借其独特的优势,在众多竞品中脱颖而出,成…...

C++初学(13)
13.1、for循环的组成部分 for循环的组成部分完成下面这些步骤: (1)设置初始值。 (2)执行测试,看看循环是否应当继续。 (3)执行循环操作。 (4)更新用于测试的值。 C循环设计中包含这要素,很容易识别,初始化、测试和更新操作工…...

目标检测之数据增强
一、概述 数据增强是一种通过人工或自动方式对数据进行修改或变换,以增加数据集规模和多样性的技术。在机器学习中,数据增强被广泛应用于解决数据稀缺、数据不平衡、数据噪声等问题,提高模型的泛化能力和鲁棒性。 二、为什么需要数据增强 …...

本地下载安装WampServer结合内网穿透配置公网地址远程访问详细教程
文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境,是一组常用来…...

一篇文章理清Java持久化脉络(关于JDBC、JPA、Hibernate、Spring Data JPA)
Java持久化 一、JDBC、JPA、Spring Data JPA 的定义及关系二、JDBC(古老的东西,只需简单知道是啥)1.1 JDBC概念1.2 JDBC示例 三、JPA(第二代持久化,代表是Hibernate等框架)3.1 JPA概念3.2 JPA示例 四、Spri…...

【数学分析笔记】第2章第1节实数系的连续性(1)
2. 数列极限 2.1 实数系的连续性 人类对数系认识的历史: 人类最早对数系的认识是自然数集合 N \mathbb{N} N,自然数系对加法和乘法是封闭的(这里的封闭是指:若 m ∈ N , n ∈ N ⇒ m n ∈ N , m n ∈ N m\in\mathbb{N},n\in\ma…...

Speech Synthesis (LASC11062)
大纲 Module 1 – introductionModule 2 - unit selectionModule 3 - unit selection target cost functionsModule 4 - the databaseModule 5 - evaluationModule 6 - speech signal analysis & modellingModule 7 - Statistical Parametric Speech Synthesis (SPSS)Modu…...

拟合与插值|线性最小二乘拟合|非线性最小二乘拟合|一维插值|二维插值
挖掘数据背后的规律是数学建模的重要任务,拟合与插值是常用的分析方法 掌握拟合与插值的基本概念和方法熟悉Matlab相关程序实现能够从数据中挖掘数学规律 拟合问题的基本提法 拟合问题的概念 已知一组数据(以二维为例),即平面上n个点 ( x i , y i ) …...

《python语言程序设计》2018版第7章第05题几何:正n边形,一个正n边形的边都有同样的长度。角度同样 设计RegularPolygon类
结果和代码 这里只涉及一个办法 方法部分 def main():rX, rY eval(input("Enter regular polygon x and y axis:"))regular_num eval(input("Enter regular number: "))side_long eval(input("Enter side number: "))a exCode07.RegularPol…...

使用Virtio Driver实现一个计算阶乘的小程序——QEMU平台
目录 一、概述 二、代码部分 1、Virtio 前端 (1) User Space (2) Kernel Space 2、Virtio 后端 三、运行 QEMU Version:qemu-7.2.0 Linux Version:linux-5.4.239 一、概述 本篇文章的主要内容是使用Virtio前后端数据传输的机制实现一个计算阶乘的…...

【PyCharm】配置“清华镜像”地址
文章目录 前言一、清华镜像是什么?二、pip是什么?三、具体步骤1.复制镜像地址2.打开PyCharm,然后点击下图红框的选项3.在弹出的新窗口点击下图红框的选项进行添加4.在URL输入框中粘贴第一步复制的地址,名字可以不更改,…...
IO器件性能评估
整体逻辑:需要先了解到读写速率的差异,在明确使用场景。比如应用启动过程中的IO主要是属于随机读的io 评估逻辑: UFS 与 eMMC主要差别在io读写能力: 1,对比UFS、eMMC的规格书标注的io读写能力 ufs spec : sequentia…...
在js中判断对象是空对象的几种方法
使用 Object.keys() 方法 Object.keys() 方法返回对象自身的可枚举属性名称组成的数组。如果数组的长度为 0,那么对象是空的。 function isEmptyObject(obj) {return Object.keys(obj).length 0 && obj.constructor Object; }const obj1 {}; const obj2…...
【整理】后端接口设计和优化相关思路汇总
文章目录 明确的接口定义和文档化使用RESTful设计规范分页和过滤合理使用缓存限流与熔断机制安全性设计异步处理与后台任务接口参数校验(入参和出参)接口扩展性考虑核心接口,线程池隔离关键接口,日志打印接口功能单一性原则接口查…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...

JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...