news 2026/4/23 16:15:18

GLM-4-9B-Chat-1M Chainlit定制教程:品牌Logo+主题色+隐私政策弹窗集成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GLM-4-9B-Chat-1M Chainlit定制教程:品牌Logo+主题色+隐私政策弹窗集成

GLM-4-9B-Chat-1M Chainlit定制教程:品牌Logo+主题色+隐私政策弹窗集成

1. 环境准备与快速部署

在开始定制Chainlit前端之前,我们需要先确保GLM-4-9B-Chat-1M模型已经成功部署。使用vLLM部署的模型可以通过以下命令检查服务状态:

cat /root/workspace/llm.log

如果看到类似下面的输出,说明模型已成功加载并准备好接收请求:

Model loaded successfully Server started on port 8000

2. Chainlit基础配置

2.1 安装Chainlit

确保你的Python环境已安装Chainlit:

pip install chainlit

2.2 创建基础应用

创建一个名为app.py的文件,包含最基本的Chainlit应用代码:

import chainlit as cl @cl.on_message async def main(message: cl.Message): # 这里将添加与GLM-4-9B-Chat-1M的交互逻辑 await cl.Message(content=f"收到消息: {message.content}").send()

3. 品牌Logo集成

3.1 准备Logo文件

将你的品牌Logo图片(建议尺寸200x200像素)放在项目目录的assets文件夹中,命名为logo.png

3.2 配置Chainlit使用自定义Logo

修改app.py文件,添加Logo配置:

import chainlit as cl @cl.on_chat_start async def start(): await cl.Avatar( name="Your Brand", path="./assets/logo.png" ).send() @cl.on_message async def main(message: cl.Message): # 模型交互逻辑 pass

4. 主题色定制

4.1 创建主题配置文件

在项目根目录创建chainlit.md文件,添加以下内容配置主题色:

# 主题配置 theme: primaryColor: "#4F46E5" # 主色调 backgroundColor: "#FFFFFF" # 背景色 textColor: "#1F2937" # 文字颜色

4.2 可用颜色变量

Chainlit支持以下CSS颜色变量定制:

  • primaryColor: 按钮、链接等主要交互元素
  • backgroundColor: 应用背景色
  • textColor: 主要文本颜色
  • secondaryBackgroundColor: 次要背景区域
  • borderColor: 边框颜色

5. 隐私政策弹窗实现

5.1 创建隐私政策内容

assets文件夹中创建privacy_policy.html文件,包含你的隐私政策内容:

<div> <h2>隐私政策</h2> <p>我们重视您的隐私...</p> <!-- 详细隐私政策内容 --> </div>

5.2 添加弹窗逻辑

修改app.py,在聊天开始时显示隐私政策弹窗:

@cl.on_chat_start async def start(): # 显示Logo await cl.Avatar(name="Your Brand", path="./assets/logo.png").send() # 隐私政策弹窗 with open("./assets/privacy_policy.html", "r") as f: policy = f.read() actions = [ cl.Action(name="accept", value="accept", label="同意"), cl.Action(name="decline", value="decline", label="拒绝") ] res = await cl.AskUserMessage( content=policy, actions=actions, timeout=300 ).send() if res and res.get("value") == "decline": await cl.Message(content="您需要同意隐私政策才能继续使用服务").send() raise cl.Error("用户拒绝隐私政策")

6. 连接GLM-4-9B-Chat-1M模型

6.1 添加模型交互逻辑

更新app.py中的消息处理函数,连接vLLM部署的GLM模型:

import requests @cl.on_message async def main(message: cl.Message): # 调用GLM-4-9B-Chat-1M API response = requests.post( "http://localhost:8000/v1/chat/completions", json={ "model": "glm-4-9b-chat-1m", "messages": [{"role": "user", "content": message.content}] } ) if response.status_code == 200: result = response.json() await cl.Message(content=result["choices"][0]["message"]["content"]).send() else: await cl.Message(content="模型请求失败").send()

6.2 添加对话历史支持

为了支持多轮对话,我们需要维护对话上下文:

@cl.on_chat_start async def start(): # 初始化对话历史 cl.user_session.set("conversation", []) # 其他初始化代码... @cl.on_message async def main(message: cl.Message): conversation = cl.user_session.get("conversation") conversation.append({"role": "user", "content": message.content}) response = requests.post( "http://localhost:8000/v1/chat/completions", json={ "model": "glm-4-9b-chat-1m", "messages": conversation } ) if response.status_code == 200: result = response.json() assistant_reply = result["choices"][0]["message"]["content"] conversation.append({"role": "assistant", "content": assistant_reply}) await cl.Message(content=assistant_reply).send()

7. 运行与测试

7.1 启动Chainlit应用

使用以下命令启动定制后的Chainlit前端:

chainlit run app.py -w

7.2 测试所有功能

  1. 检查品牌Logo是否正确显示
  2. 验证主题色是否应用成功
  3. 确认隐私政策弹窗在首次访问时出现
  4. 测试与GLM-4-9B-Chat-1M模型的对话功能

8. 总结

通过本教程,我们完成了以下定制工作:

  1. 品牌形象集成:添加了自定义Logo,增强品牌识别度
  2. UI主题定制:配置了符合品牌风格的主题颜色
  3. 隐私合规:实现了隐私政策弹窗,确保合规性
  4. 模型连接:完整对接了GLM-4-9B-Chat-1M大模型

这些定制不仅提升了用户体验,也使你的AI应用更具专业性和品牌一致性。你可以进一步扩展功能,如添加多语言支持、文件上传处理等,打造更强大的AI应用前端。

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 15:01:42

Hunyuan-MT-7B从零开始:新手快速部署多语言翻译模型指南

Hunyuan-MT-7B从零开始&#xff1a;新手快速部署多语言翻译模型指南 1. 为什么这款翻译模型值得你花10分钟试试&#xff1f; 你有没有遇到过这些场景&#xff1a; 收到一封维吾尔语的客户邮件&#xff0c;但手头没有靠谱的翻译工具&#xff1b;需要把一份西班牙语产品说明书…

作者头像 李华
网站建设 2026/4/18 11:59:39

如何在verl中自定义reward函数?附完整示例

如何在verl中自定义reward函数&#xff1f;附完整示例 强化学习训练中&#xff0c;reward函数是驱动模型行为演化的“指挥棒”。在LLM后训练场景下&#xff0c;一个设计得当的reward函数&#xff0c;往往比算法本身更能决定最终效果的上限。verl作为专为大语言模型后训练打造的…

作者头像 李华
网站建设 2026/4/23 14:10:32

VibeVoice Pro开发者控制台详解:实时参数调节与语音质量动态平衡

VibeVoice Pro开发者控制台详解&#xff1a;实时参数调节与语音质量动态平衡 1. 引言&#xff1a;重新定义实时语音合成 VibeVoice Pro正在改变我们对文本转语音&#xff08;TTS&#xff09;技术的认知。传统TTS系统需要等待整个文本处理完成才能播放音频&#xff0c;而VibeV…

作者头像 李华
网站建设 2026/4/23 15:47:13

5秒克隆你的声音!IndexTTS 2.0零样本语音合成保姆级教程

5秒克隆你的声音&#xff01;IndexTTS 2.0零样本语音合成保姆级教程 你有没有过这样的经历&#xff1a;剪完一条30秒的vlog&#xff0c;反复调整配音节奏&#xff0c;只为让“谢谢关注”四个字刚好卡在画面淡出的最后一帧&#xff1f;或者为游戏角色录了20遍“小心背后&#x…

作者头像 李华
网站建设 2026/4/23 15:45:56

Funannotate:实现真核基因组精准注释的突破性实战指南

Funannotate&#xff1a;实现真核基因组精准注释的突破性实战指南 【免费下载链接】funannotate Eukaryotic Genome Annotation Pipeline 项目地址: https://gitcode.com/gh_mirrors/fu/funannotate 当面对新测序的真核基因组数据&#xff0c;如何快速获得准确的基因结构…

作者头像 李华
网站建设 2026/4/23 14:00:19

Flowise精彩呈现:语音输入→文本处理→播报输出

Flowise精彩呈现&#xff1a;语音输入→文本处理→播报输出 1. Flowise简介 Flowise是一个开源的拖拽式LLM工作流平台&#xff0c;它将LangChain的链、工具、向量库等组件封装成可视化节点&#xff0c;让用户无需编写代码就能构建AI应用。这个拥有45k GitHub星标的项目采用MI…

作者头像 李华