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

Phi-3-mini-128k-instruct实操手册:Chainlit前端添加对话导出为Markdown/PDF

Phi-3-mini-128k-instruct实操手册:Chainlit前端添加对话导出为Markdown/PDF

1. 模型简介

Phi-3-Mini-128K-Instruct是一个38亿参数的轻量级开放模型,属于Phi-3系列。该模型经过专门训练,具备以下特点:

  • 支持128K tokens的长上下文处理
  • 训练数据包含合成数据和精选公开网站数据
  • 经过监督微调和直接偏好优化
  • 在常识、语言理解、数学、编码等方面表现优异

这个模型特别适合需要处理长文本和复杂推理的任务,同时保持了轻量级的优势。

2. 环境准备与部署验证

2.1 检查模型部署状态

使用以下命令检查模型是否部署成功:

cat /root/workspace/llm.log

如果部署成功,您将看到类似以下的输出:

Model loaded successfully Ready for inference

2.2 Chainlit前端验证

2.2.1 启动Chainlit界面

确保模型加载完成后,启动Chainlit前端界面。您将看到一个简洁的聊天界面,可以开始与模型交互。

2.2.2 进行测试提问

在输入框中输入您的问题,例如: "请简要介绍Phi-3-mini-128k-instruct模型的特点"

模型将生成响应,显示在聊天窗口中。

3. 对话导出功能实现

3.1 安装必要依赖

首先确保已安装以下Python包:

pip install chainlit markdown2pdf

3.2 修改Chainlit应用代码

在您的Chainlit应用代码中添加以下功能:

import chainlit as cl from markdown2pdf import convert @cl.on_chat_start async def start_chat(): # 初始化对话历史记录 cl.user_session.set("conversation_history", []) @cl.on_message async def main(message: cl.Message): # 获取用户消息 user_message = message.content # 调用模型生成响应 response = await generate_response(user_message) # 获取当前对话历史 history = cl.user_session.get("conversation_history") history.append(f"用户: {user_message}") history.append(f"助手: {response}") cl.user_session.set("conversation_history", history) # 发送响应给用户 await cl.Message(content=response).send() @cl.action_callback("export_markdown") async def export_markdown(action: cl.Action): history = cl.user_session.get("conversation_history") markdown_content = "\n\n".join(history) # 保存为Markdown文件 with open("conversation.md", "w", encoding="utf-8") as f: f.write(markdown_content) # 提供下载链接 await cl.Message(content="对话已导出为Markdown文件", actions=[cl.Action(name="download_md", value="conversation.md", label="下载Markdown")]).send() @cl.action_callback("export_pdf") async def export_pdf(action: cl.Action): history = cl.user_session.get("conversation_history") markdown_content = "\n\n".join(history) # 转换为PDF convert(markdown_content, "conversation.pdf") # 提供下载链接 await cl.Message(content="对话已导出为PDF文件", actions=[cl.Action(name="download_pdf", value="conversation.pdf", label="下载PDF")]).send() @cl.action_callback("download_md") async def download_md(action: cl.Action): # 实现文件下载逻辑 pass @cl.action_callback("download_pdf") async def download_pdf(action: cl.Action): # 实现文件下载逻辑 pass

3.3 添加导出按钮

在Chainlit界面中添加导出按钮:

@cl.on_chat_start async def start_chat(): # 添加导出按钮 actions = [ cl.Action(name="export_markdown", value="markdown", label="导出为Markdown"), cl.Action(name="export_pdf", value="pdf", label="导出为PDF") ] await cl.Message(content="欢迎使用Phi-3-mini-128k-instruct聊天助手", actions=actions).send()

4. 功能测试与使用

4.1 测试对话导出功能

  1. 在Chainlit界面中进行几轮对话
  2. 点击"导出为Markdown"按钮
  3. 检查生成的Markdown文件是否包含完整对话
  4. 点击"导出为PDF"按钮
  5. 验证PDF文件是否正常生成且内容完整

4.2 常见问题解决

  • 导出失败:检查是否有写入权限和足够磁盘空间
  • 格式问题:确保对话内容不包含特殊字符
  • 中文显示异常:确认文件编码为UTF-8

5. 总结

通过本教程,您已经学会了:

  1. 如何验证Phi-3-mini-128k-instruct模型的部署状态
  2. 使用Chainlit创建交互式前端界面
  3. 实现对话历史记录功能
  4. 添加Markdown和PDF导出功能
  5. 测试和验证导出功能

这些功能特别适合需要保存对话记录的场景,如技术支持、教学辅助或内容创作。

获取更多AI镜像

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

http://www.cnnetsun.cn/news/1429262.html

相关文章:

  • AI 净界企业应用场景:高效生成表情包与贴纸素材
  • nlp_structbert_siamese-uninlu_chinese-base实战手册:schema版本管理与灰度发布策略
  • 仓储空间动态建模与全流程空间认知计算关键技术攻关与系统实现—— 融合镜像视界 Pixel-to-Space、多视角视频融合、动态三维重构、无感定位与轨迹建模的空间计算引擎
  • docxtemplater故障排除指南:5大故障类型与12种解决方案全解析
  • GLM-4.7-Flash应用场景:快速搭建智能问答助手,实测中文优化效果惊艳
  • Git-RSCLIP多场景落地案例:机场识别、港口监测、光伏板定位三合一演示
  • rate-limiter-flexible队列限流:处理突发流量的终极方案
  • 浦语灵笔2.5-7B应用场景:保险理赔中事故现场图自动定损描述
  • Z-Image Turbo部署成本分析:硬件要求与性价比评估
  • uC/OS-II 2.92.10 在 ARM Cortex-M3 上的工程化移植与实践
  • 保姆级教程:用Gemini API + asyncio打造你的智能文档翻译流水线(支持图片自动复制)
  • 还在乱用MySQL Query Cache?其为何从性能神器到历史尘埃
  • 滑模控制实战:如何用Python实现一个简单的二阶系统控制器(附代码)
  • 人脸识别OOD模型真实效果:某政务大厅日均拦截12.7%低质核验请求
  • yz-bijini-cosplay详细步骤:本地化部署下Cosplay生成日志审计与追踪
  • 5分钟搞定AI绘画环境:Anything V5镜像部署全流程解析
  • 3大突破:CD-HIT如何解决百万级序列分析的世纪难题
  • Artisan咖啡烘焙曲线监控软件:免费专业烘焙控制终极指南
  • Pycharm+Python之wxPython环境配置与实战入门
  • 如何用scVelo和Scanpy提升单细胞RNA Velocity分析的可视化效果?
  • ROS机器人路径规划实战:IPA覆盖算法参数调优全指南(附避坑技巧)
  • 计算机毕业设计springboot中小学生错题管理系统 基于SpringBoot的K12阶段错题智能追踪平台 SpringBoot+Vue中小学错题复盘与提分系统
  • Qwen3-0.6B-FP8法律科技实践:类案推送+裁判规则提取+起诉状初稿生成
  • translategemma-4b-it智能助手:Ollama本地部署支持55语种的图文翻译终端
  • ResNet101-MogFace人脸检测部署教程:解决PyTorch 2.6模型加载兼容性问题
  • [免费] ASTM标准合集 American Society for Testing and Materials(美国材料与试验协会)收集约3万个
  • VRRTest:开源可变刷新率测试工具的完整实践指南
  • URDF vs Xacro:机械臂建模效率提升指南(附完整代码示例)
  • MNN llm_demo VLM模型推理源码分析
  • MySQL数据库———二手市场DDL,DML语句(课后练习