资讯动态

Nanbeige 4.1-3B保姆级教程:Streamlit自定义CSS注入+4px像素边框实现

发布时间:2026/8/15 12:52:26 来源:尧图企业网站定制
Nanbeige 4.1-3B保姆级教程Streamlit自定义CSS注入4px像素边框实现1. 项目介绍与效果预览Nanbeige 4.1-3B像素冒险聊天终端是一款为对话大模型设计的复古风格前端界面。它将传统AI对话转化为JRPG游戏体验主要特点包括4px像素边框所有UI元素都带有明显的像素风格边框高饱和度配色采用阳光草原风格的明亮色调角色化对话框区分用户(蓝色)和AI(绿色)的对话气泡动态文字效果模拟老式游戏机的文字逐个出现效果2. 环境准备与快速部署2.1 基础环境要求Python 3.8Streamlit 1.25Transformers 4.30至少16GB内存(运行3B模型)2.2 一键安装命令pip install streamlit transformers torch2.3 快速启动创建app.py文件复制以下最小示例import streamlit as st from transformers import AutoModelForCausalLM, AutoTokenizer st.cache_resource def load_model(): return AutoModelForCausalLM.from_pretrained(nanbeige/nanbeige-4.1-3B) model load_model() tokenizer AutoTokenizer.from_pretrained(nanbeige/nanbeige-4.1-3B) st.title(Nanbeige RPG Chat)运行应用streamlit run app.py3. 核心样式实现3.1 像素边框CSS注入在Streamlit中注入自定义CSS实现4px像素边框def inject_css(): st.markdown( style .pixel-border { border: 4px solid #2C2C2C !important; border-image: none !important; } /style , unsafe_allow_htmlTrue)应用边框到所有组件inject_css() st.markdown(div classpixel-border你的内容/div, unsafe_allow_htmlTrue)3.2 对话气泡样式实现玩家和AI的区分气泡.player-bubble { background-color: #4D96FF; border-radius: 8px; padding: 12px; margin: 8px 0; } .bot-bubble { background-color: #6BCB77; border-radius: 8px; padding: 12px; margin: 8px 0; }4. 完整功能实现4.1 对话历史管理if messages not in st.session_state: st.session_state.messages [] for message in st.session_state.messages: with st.chat_message(message[role]): st.markdown(message[content])4.2 流式响应处理if prompt : st.chat_input(输入你的冒险指令...): st.session_state.messages.append({role: user, content: prompt}) with st.chat_message(assistant): message_placeholder st.empty() full_response for response in model.generate(prompt, streamTrue): full_response response message_placeholder.markdown(full_response ▌) message_placeholder.markdown(full_response) st.session_state.messages.append({role: assistant, content: full_response})4.3 重置按钮实现if st.button(RESET, typeprimary): st.session_state.messages [] st.rerun()5. 进阶优化技巧5.1 思考标签处理处理模型输出的think标签def process_think_tags(text): if think in text: with st.expander(系统日志): st.code(text.split(think)[1].split(/think)[0]) return text.split(think)[0] text.split(/think)[-1] return text5.2 性能优化缓存模型加载st.cache_resource def load_model(): return AutoModelForCausalLM.from_pretrained(nanbeige/nanbeige-4.1-3B)限制token长度model.generate(inputs, max_new_tokens2048)6. 总结与效果展示通过本教程我们实现了复古像素风格界面4px边框高饱和度配色角色化对话系统区分玩家和AI的对话气泡流式响应效果模拟游戏机文字显示完整对话管理历史记录一键重置最终效果如下图所示获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价