[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-pdsuwwz--chatgpt-vue3-light-mvp":3,"tool-pdsuwwz--chatgpt-vue3-light-mvp":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",143909,2,"2026-04-07T11:33:18",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":73,"owner_website":80,"owner_url":81,"languages":82,"stars":103,"forks":104,"last_commit_at":105,"license":106,"difficulty_score":32,"env_os":107,"env_gpu":108,"env_ram":107,"env_deps":109,"category_tags":121,"github_topics":123,"view_count":32,"oss_zip_url":144,"oss_zip_packed_at":144,"status":17,"created_at":145,"updated_at":146,"faqs":147,"releases":188},5021,"pdsuwwz\u002Fchatgpt-vue3-light-mvp","chatgpt-vue3-light-mvp","💭 一个可二次开发 Chat Bot 单轮对话 Web 端 MVP 原型模板, 基于 Vue 3, Vite7, TypeScript, Naive UI, Pinia(v3), UnoCSS 等主流技术构建, 🧤简单集成大模型 API, 采用单轮 AI 问答对话模式, 每次提问独立响应, 无需上下文, 支持 SSE 打字机效果流式输出, 集成 markdown-it  Mermaid\u002FKaTex\u002FLaTex 公式高亮预览, 星火, 智谱, 硅基流动, Deepseek V3\u002FR1 深度思考推理模型预览, 兼容 \u003Cthink> 标签, 💼 易于定制和快速搭建 Chat  类大语言模型产品 (附示例截图)","chatgpt-vue3-light-mvp 是一个专为快速构建 AI 聊天机器人而设计的 Web 端原型模板。它专注于解决开发者在从零搭建大语言模型应用时面临的重复造轮子问题，提供了一个开箱即用的单轮对话解决方案，让用户能迅速验证产品想法或展示技术概念。\n\n该项目非常适合前端开发者、全栈工程师以及希望快速落地 AI 对话功能的创业团队使用。无论是需要内部演示原型，还是作为二次开发的基础底座，它都能大幅缩短开发周期。普通用户若具备基础编程知识，也可借此学习现代前端技术与 AI 接口的集成方式。\n\n在技术实现上，chatgpt-vue3-light-mvp 基于 Vue 3、Vite 6、TypeScript 和 Naive UI 等主流技术栈构建，确保了代码的现代性与高性能。其独特亮点在于极简的架构设计：支持 SSE 流式输出带来的“打字机”效果，内置 Markdown、Mermaid 图表及 LaTeX 数学公式的高亮渲染，并能兼容 DeepSeek、星火、月之暗面等多种大模型 API。项目采用模块化设计，提供本地模拟模式，无需真实密钥即可启动开发，让创作者能更专注于业务逻辑而非底层","chatgpt-vue3-light-mvp 是一个专为快速构建 AI 聊天机器人而设计的 Web 端原型模板。它专注于解决开发者在从零搭建大语言模型应用时面临的重复造轮子问题，提供了一个开箱即用的单轮对话解决方案，让用户能迅速验证产品想法或展示技术概念。\n\n该项目非常适合前端开发者、全栈工程师以及希望快速落地 AI 对话功能的创业团队使用。无论是需要内部演示原型，还是作为二次开发的基础底座，它都能大幅缩短开发周期。普通用户若具备基础编程知识，也可借此学习现代前端技术与 AI 接口的集成方式。\n\n在技术实现上，chatgpt-vue3-light-mvp 基于 Vue 3、Vite 6、TypeScript 和 Naive UI 等主流技术栈构建，确保了代码的现代性与高性能。其独特亮点在于极简的架构设计：支持 SSE 流式输出带来的“打字机”效果，内置 Markdown、Mermaid 图表及 LaTeX 数学公式的高亮渲染，并能兼容 DeepSeek、星火、月之暗面等多种大模型 API。项目采用模块化设计，提供本地模拟模式，无需真实密钥即可启动开发，让创作者能更专注于业务逻辑而非底层配置。","\u003Cp style=\"text-align:center;\" align=\"center\">\u003Ca href=\"https:\u002F\u002Fbotkit.likemashang.com\">\u003Cpicture align=\"center\">\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fi.stardots.io\u002Fwisdom\u002F1747723353145.png\"  width=\"100%\" align=\"center\" style=\"margin-bottom:20px;\">\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_0d62fb78bef9.png\" width=\"100%\" align=\"center\" style=\"margin-bottom:20px;\">\n  \u003Cimg alt=\"color mode\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_0d62fb78bef9.png\" width=\"100%\" align=\"center\" style=\"margin-bottom:20px;\">\n\u003C\u002Fpicture>\u003C\u002Fa>\u003Cbr \u002F>\u003Cbr \u002F>\u003C\u002Fp>\n\n\n# chatgpt-vue3-light-mvp\n\n[![Deploy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpassing-black?style=flat&logo=Netlify&label=Netlify&color=3bb92c&labelColor=black)](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fdeployments)\n[![GitHub Workflow Status (branch)](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpassing-black?style=flat&label=build&color=3bb92c)](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fdeployments\u002FProduction)\n[![thanks](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_51245fca1e11.png)](https:\u002F\u002Fgithub.com\u002Fpdsuwwz)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp?color=466fe8)](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002FLICENSE)\n\n💭 一个可二次开发 Chat Bot 对话 Web 端原型模板, 基于 Vue3、Vite 6、TypeScript、Naive UI、Pinia、UnoCSS 等主流技术构建, 🧤简单集成大模型 API, 采用单轮 AI 问答对话模式, 每次提问独立响应, 无需上下文, 支持打字机效果流式输出, 集成 markdown-it, highlight.js, 数学公式, Mermaid 图表语法高亮预览, 💼 易于定制和快速搭建 Chat 类大语言模型产品\n\n\n__[🌈 Live Demo 在线体验](https:\u002F\u002Fpdsuwwz.github.io\u002Fchatgpt-vue3-light-mvp)__\n\n> [!IMPORTANT]\n> 本项目为最小可行产品 `(MVP)`, 仅支持**单轮对话模式**（每次提问独立响应，不保留上下文）\n> \n> 未来有机会支持多轮对话，目前暂无具体计划。💡 如有需求，可基于此项目自行扩展 ~\n\n## 🎉 特性\n\n* 🛠️ **核心技术栈**：__Vite 6 + Vue 3 + TypeScript + Pinia(v3) + ESLint (v9)__\n* 🎨 **UI 框架**：__Naive UI 2.x__\n* 🪄 **解放双手**：内置 **Unplugin Auto Import**，支持组件按需自动导入，提升开发效率\n* 🌟 **图标支持**：内置 **UnoCSS + Iconify**，实现原子化样式内联和图标按需自动导入\n* 💬 **AI 对话**：支持单轮对话，用户输入即得 AI 独立响应回复，无需上下文\n* 📝 **Markdown 预览**：支持多种编程语言代码高亮，集成 `markdown-it` 和 `highlight.js`\n* 📊 **可视化支持**：内置 `Mermaid` 解析，轻松绘制流程图和时序图等；支持 KaTex\u002FLaTeX 数学公式渲染，助力技术文档编写\n* 🧪 **模拟开发模式**：提供本地模拟开发模式，无需真实 API 即可开始开发\n* 🔑 **环境变量管理**：通过 `.env` 文件管理 API 密钥，支持不同大模型的配置\n* 🌍 **大语言模型 API**：兼容 Deepseek V3\u002FR1, Spark 星火认知大模型、Kimi Moonshot 月之暗面大模型、SiliconFlow、Ollama 等，允许自由扩展\n* 🚀 **灵活扩展**：轻量级模块化 MVP 设计，纯前端开发，项目结构清晰，快速搭建 AI 对话原型\n\n### 🧠 已支持的模型\n\n详见 [这里](#-大模型响应处理)\n\n| 模型名称 | 模型标识符 | 需要 API Key | 可否本地运行 | 备注 |\n|----------|----------|----------|----------|----------|\n| （默认类型）模拟数据模型 | `standard` | × | ✅ | 开发环境默认使用 |\n| Ollama (Llama 3) 大模型 | `ollama3` | × | ✅ | 需本地安装运行 Ollama 服务 |\n| DeepSeek-V3 | `deepseek-v3` | ✅ | × | 需配置 `VITE_DEEPSEEK_KEY` |\n| DeepSeek-R1 (推理模型) | `deepseek-deep` | ✅ | × | 需配置 `VITE_DEEPSEEK_KEY` |\n| Spark 星火大模型 | `spark` | ✅ | × | 需配置 `VITE_SPARK_KEY` |\n| SiliconFlow 硅基流动大模型 | `siliconflow` | ✅ | × | 需配置 `VITE_SILICONFLOW_KEY` |\n| Kimi Moonshot 月之暗面大模型 | `moonshot` | ✅ | × | 需配置 `VITE_MOONSHOT_KEY` |\n\n\n## 前置条件\n\n* Vue 3.x\n* Node >= 22.12.x\n* Pnpm 10.x\n* **VS Code 插件 `dbaeumer.vscode-eslint` >= v3.0.5 (pre-release)**\n\n## 运行效果\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_e94feb76230a.png)\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_7a14a1b6c8f6.png)\n\n* Deepseek 深度思考响应结果\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_ebe4c766ff3e.png)\n\n\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F01063217-13ae-4ecd-b451-5b2e4e954afc\n\n\n\n\n## 安装和运行\n\n* 安装依赖\n\n```bash\npnpm i\n```\n\n* 本地开发\n\n```bash\npnpm dev\n```\n\n本地运行后，可以通过访问 `http:\u002F\u002Flocalhost:2048` 来查看应用。\n\n\n## 🔑 配置 API 密钥\n\n在运行项目之前，需要设置大语言模型的 API 密钥：\n\n1. 执行以下命令，自动创建环境变量模板文件 `.env` 文件：\n    ```sh\n    cp .env.template .env\n    ```\n\n2. 编辑 `.env` 文件，填入你的 API 密钥\n\n  ```sh\n  VITE_SPARK_KEY=你的_星火_API_Key # 需要用冒号拼接key和secret，格式如 `key123456:secret123456`\n  VITE_SILICONFLOW_KEY=你的_SiliconFlow_API_Key # 通常以 `sk-` 开头，如 `sk-xxxxxx`\n  VITE_MOONSHOT_KEY=你的_Moonshot_API_Key # 通常以 `sk-` 开头，如 `sk-xxxxxx`\n  VITE_DEEPSEEK_KEY=你的_DeepSeek_API_Key # 通常以 `sk-` 开头，如 `sk-xxxxxx`\n  ```\n\n\n## 🛠️ API 代理配置说明\n\n本项目采用纯前端架构，所有后端服务均由外部或本地其他服务提供。为解决开发环境中的跨域问题，项目使用了 `Vite` 的代理功能 `server.proxy`（详见[官方文档](https:\u002F\u002Fvite.dev\u002Fconfig\u002Fserver-options.html#server-proxy)）\n\n以下是当前仓库的[代理配置](.\u002Fvite.config.ts#L23)\n\n```ts\nserver: {\n  \u002F\u002F ...\n  proxy: {\n    '\u002Fspark': {\n      target: 'https:\u002F\u002Fspark-api-open.xf-yun.com',\n      changeOrigin: true,\n      ws: true,\n      rewrite: (path) => path.replace(\u002F^\\\u002Fspark\u002F, '')\n    },\n    '\u002Fsiliconflow': {\n      target: 'https:\u002F\u002Fapi.siliconflow.cn',\n      changeOrigin: true,\n      ws: true,\n      rewrite: (path) => path.replace(\u002F^\\\u002Fsiliconflow\u002F, '')\n    },\n    '\u002Fmoonshot': {\n      target: 'https:\u002F\u002Fapi.moonshot.cn',\n      changeOrigin: true,\n      ws: true,\n      rewrite: (path) => path.replace(\u002F^\\\u002Fmoonshot\u002F, '')\n    },\n    '\u002Fdeepseek': {\n      target: 'https:\u002F\u002Fapi.deepseek.com',\n      changeOrigin: true,\n      ws: true,\n      rewrite: (path) => path.replace(\u002F^\\\u002Fdeepseek\u002F, '')\n    }\n  }\n},\n\u002F\u002F ...\n```\n\n### 注意事项\n\n1. **环境限制**: 该代理配置仅在开发环境（`development`）中生效。若生产环境部署时请根据实际情况调整服务器配置\n\n2. **路径匹配**: 请求路径需要与配置的代理路径前缀匹配，例如本地访问 `\u002Fspark\u002Fv1\u002Fchat\u002Fcompletions` 会被直接代理到 `https:\u002F\u002Fspark-api-open.xf-yun.com\u002Fv1\u002Fchat\u002Fcompletions`\n\n### 生产环境部署\n\n生产环境建议使用以下方案之一：\n\n- 配置正确的 `CORS` 响应头\n- 使用 `Nginx` 反向代理\n- 统一域名和端口，避免跨域问题\n\n\n## 🌍 模拟\u002F真实 API 模式切换\n\n本项目提供了一个模拟开发模式，用于在本地开发环境或 Github 等部署环境中模拟调用大模型相关策略，无需调用真实 API 接口。该模式在 [src\u002Fconfig\u002Fenv.ts](src\u002Fconfig\u002Fenv.ts) 文件中定义，由以下代码控制：\n\n```ts\n\u002F\u002F src\u002Fconfig\u002Fenv.ts\n\n\u002F**\n * TODO: 若是 Github 演示部署环境，则仅模拟大模型相关策略，不调接口\n *\u002F\nexport const isGithubDeployed = process.env.VITE_ROUTER_MODE === 'hash'\n\n```\n### 默认配置\n\n默认情况下，在开发环境，`isGithubDeployed` 会被设置为 `false`, 这意味着应用将默认使用模拟数据，但也可按照需求自行切换其他大模型 API 接口。\n\n当部署在演示环境时，也就是本项目在线预览地址中，则使用 `hash` 路由模式, `isGithubDeployed` 会被设置为 `true`, 这意味着真实的大模型 API 接口将被禁用。\n\n### 切换至真实 API\n\n如果想在所有环境中使用真实的 API，你有两个选择：\n\n1. **取消注释**：将最后一行的代码注释取消，设置 `isGithubDeployed = false`\n\n2. **修改逻辑**：全局搜索 `isGithubDeployed`, 并修改相应的 if 判断逻辑，使其默认使用真实接口\n\n**请注意，无论选择哪种方式，都需要确保项目已经正确配置了 `.env` API 密钥**\n\n### 接口函数修改\n\n请求的函数已经针对目前项目内置的所有模型的响应结果做了统一处理，在（[src\u002Fstore\u002Fbusiness\u002Findex.ts](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002Fsrc\u002Fstore\u002Fbusiness\u002Findex.ts#L30)）的 [`createAssistantWriterStylized`](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002Fsrc\u002Fstore\u002Fbusiness\u002Findex.ts#L30) 函数，一般情况下，不需要修改此函数，除非遇到极个别模型比较特殊的响应结果格式，需要再额外处理下。\n\n\n---\n\n## 🦙 接入大语言模型 API\n\n\u003Cdetails>\n\u003Csummary>国内在线大模型配置\u003C\u002Fsummary>\u003Cbr>\n\n\n**1. DeepSeek 深度求索大模型**：\n- **官方开放平台**：访问 [DeepSeek 官方文档](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn) 查看使用手册\n- **注册**：访问 [DeepSeek 开放平台控制台](https:\u002F\u002Fplatform.deepseek.com\u002Fusage) 进行注册登录\n- **模型 & 价格**：访问 [模型 & 价格](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn\u002Fquick_start\u002Fpricing) 查看模型价格\n- **Token 购买**：访问 [账户信息 - Top up 管理](https:\u002F\u002Fplatform.deepseek.com\u002Ftop_up) 请按需购买 API 所需 Token（一般 10 块就够了，能用好久）\n- **创建 API 密钥**：访问 [账户信息 - API Key 管理](https:\u002F\u002Fplatform.deepseek.com\u002Fapi_keys) 新建 API 密钥\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_acc14b63a69b.png)\n\n- **接口说明**：[首次调用 API](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn)\n- **在线调试**：[官方 Chat Completions 在线调试](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn\u002Fapi\u002Fcreate-chat-completion)\n- **配置到本仓库**：将创建的 API 密钥填入 `.env` 文件中的 `VITE_DEEPSEEK_KEY` 环境变量\n- **DeepSeek 现已支持的大模型**：[模型 & 价格](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn\u002Fquick_start\u002Fpricing)\n- **DeepSeek 现已支持的大模型-接口调用查看**：[通过接口查看](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn\u002Fapi\u002Flist-models)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_fe5e55769156.png)\n\n\n**2. Spark 星火认知大模型**：\n\n- **注册**：访问 [星火大模型 API](https:\u002F\u002Fxinghuo.xfyun.cn\u002Fsparkapi) 进行注册并登录\n- **获取 API 密钥**：访问 [控制台](https:\u002F\u002Fconsole.xfyun.cn\u002Fservices\u002Fbm4) 获取 `APIKey` 和 `APISecret`\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_4300dca1153b.png)\n\n- **接口说明**：[spark HTTP 调用文档](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fspark\u002FHTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html#_1-%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_064dada987ff.png)\n\n- **配置到本仓库**：将创建的 `APIKey` 和 `APISecret` 密钥用冒号 `:` 拼接填入到 `.env` 文件中的 `VITE_SPARK_KEY` 环境变量\n\n\n**3. SiliconFlow 大模型**：\n- **注册**：访问 [SiliconFlow 官网](https:\u002F\u002Fsiliconflow.cn\u002Fzh-cn\u002Fsiliconcloud) 进行注册登录并创建 API 密钥\n- **创建 API 密钥**：访问 [账户管理 - API 密钥](https:\u002F\u002Fcloud.siliconflow.cn\u002Faccount\u002Fak) 创建新 API 密钥\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_475a319b336e.png)\n\n- **接口说明**：[官方 Chat Completions 在线调试](https:\u002F\u002Fdocs.siliconflow.cn\u002Freference\u002Fchat-completions-3)\n- **配置到本仓库**：将创建的 API 密钥填入 `.env` 文件中的 `VITE_SILICONFLOW_KEY` 环境变量\n- **SiliconFlow现已支持的大模型**：[模型列表](https:\u002F\u002Fsiliconflow.cn\u002Fzh-cn\u002Fmodels)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_fcaac19200de.png)\n\n\n**4. Kimi Moonshot 月之暗面大模型**：\n- **官方开放平台**：访问 [Moonshot 开放平台](https:\u002F\u002Fplatform.moonshot.cn\u002Fdocs\u002Fintro) 查看使用手册\n- **注册**：访问 [Moonshot 开放平台控制台](https:\u002F\u002Fplatform.moonshot.cn\u002Fconsole) 进行注册登录\n- **创建 API 密钥**：访问 [账户信息 - API Key 管理](https:\u002F\u002Fplatform.moonshot.cn\u002Fconsole\u002Fapi-keys) 新建 API 密钥\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_ee92f7d17632.png)\n\n\n- **接口说明**：[官方示例代码 Chat Completion](https:\u002F\u002Fplatform.moonshot.cn\u002Fdocs\u002Fapi\u002Fchat#chat-completion)\n- **配置到本仓库**：将创建的 API 密钥填入 `.env` 文件中的 `VITE_MOONSHOT_KEY` 环境变量\n- **Moonshot现已支持的大模型**：[模型列表](https:\u002F\u002Fplatform.moonshot.cn\u002Fdocs\u002Fapi\u002Fchat#list-models)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_95e81ed4339e.png)\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>使用本地 Ollama 大模型\u003C\u002Fsummary>\u003Cbr>\n\n**Ollama 大模型**：\n- **安装**：Ollama3 不需要 API 密钥，只需要在本地安装并运行 Ollama 即可。请参考 Ollama 官方文档进行安装：[Ollama GitHub](https:\u002F\u002Fgithub.com\u002Follama\u002Follama)\n- **Ollama现已支持的大模型**：[模型列表](https:\u002F\u002Follama.com\u002Fsearch)\n- **运行**：运行 Ollama3 服务，直接执行 `ollama run \u003C模型名称>`, 如： `ollama run llama3`, 运行后确保其在 `http:\u002F\u002Flocalhost:11434` 运行\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_9f48c5f01941.png)\n\n- **查看运行状态**：执行 `ollama list`命令可查看当前正在运行的 Ollama 模型\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_c773d0c8953b.png)\n\n\n\u003C\u002Fdetails>\n\n---\n\n## 🔌 大模型响应处理\n\n由于不同大模型的 API 响应数据结构存在差异，本项目通过**统一的模型映射机制**和**响应转换函数**实现了多模型的无缝集成。核心逻辑封装在 [详见代码](src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts#L85) 中，支持灵活扩展和定制\n\n### 核心设计\n\n\u003Cdetails>\n\u003Csummary>1、模型映射机制\u003C\u002Fsummary>\u003Cbr>\n\n通过 `modelMappingList` 定义支持的模型列表，每个模型包含以下关键属性：\n\n| 属性名称 | 类型 | 说明\n|----------|----------|----------|\n| label | string | 模型展示名称（仅用于 UI 显示） |\n| modelName | string | 模型唯一标识符（用于逻辑判断）|\n| transformStreamValue | TransformFunction | 流式响应数据的转换函数，用于解析不同模型的响应结构 |\n| chatFetch | (text: string) => Promise\u003CResponse> | 模型 API 请求函数，封装了请求参数和调用逻辑 |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>2、响应转换函数\u003C\u002Fsummary>\u003Cbr>\n\n每个模型通过 `transformStreamValue` 函数处理流式响应数据，核心逻辑包括：\n\n* 解析原始响应数据（`Uint8Array` 或 `string`）\n* 提取有效内容字段（如 `content`）\n* 处理特殊终止信号（如 `[DONE]`）\n\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary>3、统一接口\u003C\u002Fsummary>\u003Cbr>\n\n通过 `createAssistantWriterStylized` 方法封装模型调用逻辑，不用太关心底层实现细节，只需通过 `modelName` 切换模型。\n\n* 解析原始响应数据（`Uint8Array` 或 `string`）\n* 提取有效内容字段（如 `content`）\n* 处理特殊终止信号（如 `[DONE]`）\n\n\u003C\u002Fdetails>\n\n👉 可在 [src\u002Fstore\u002Fbusiness\u002Findex.ts](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002Fsrc\u002Fstore\u002Fbusiness\u002Findex.ts) 中查看更多实现细节\n\n### 🧠 已支持的模型\n\n| 模型名称 | 模型标识符 | 需要 API Key | 可否本地运行 | 备注 |\n|----------|----------|----------|----------|----------|\n| （默认类型）模拟数据模型 | `standard` | × | ✅ | 开发环境默认使用 |\n| Ollama (Llama 3) 大模型 | `ollama3` | × | ✅ | 需本地安装运行 Ollama 服务 |\n| DeepSeek-V3 | `deepseek-v3` | ✅ | × | 需配置 `VITE_DEEPSEEK_KEY` |\n| DeepSeek-R1 (推理模型) | `deepseek-deep` | ✅ | × | 需配置 `VITE_DEEPSEEK_KEY` |\n| Spark 星火大模型 | `spark` | ✅ | × | 需配置 `VITE_SPARK_KEY` |\n| SiliconFlow 硅基流动大模型 | `siliconflow` | ✅ | × | 需配置 `VITE_SILICONFLOW_KEY` |\n| Kimi Moonshot 月之暗面大模型 | `moonshot` | ✅ | × | 需配置 `VITE_MOONSHOT_KEY` |\n\n\n### 🔬 主要实现\n\n- **modelMappingList**: 定义了支持的每个大模型的 modelName, 响应结果的处理以及请求 API 函数，[详见代码](src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts#L199)\n  - **transformStreamValue**: 包含了针对各种模型的响应结果转换函数，[详见代码](src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts#L199)\n- **MarkdownPreview 组件**: 接收 `model` 和 `transformStreamFn` props 属性，根据不同模型类型处理流式响应，[详见代码](src\u002Fcomponents\u002FMarkdownPreview\u002Findex.vue#L9)\n\n> 本项目的 `MarkdownPreview` 组件接收 `model` props 属性是为了回显不同的 `Placeholder`，如果你不需要可直接删掉该 props 参数及对应的回显逻辑\n\n### 📚 使用示例\n\n在使用 [`MarkdownPreview`](src\u002Fcomponents\u002FMarkdownPreview\u002Findex.vue) 组件时，通过设置 `model` 和 `transformStreamFn` 属性来指定当前使用的大模型类型：\n\n```html\n\u003CMarkdownPreview\n  ref=\"refReaderMarkdownPreview\"\n  v-model:reader=\"outputTextReader\"\n  :model=\"businessStore.currentModelItem?.modelName\"\n  :transform-stream-fn=\"businessStore.currentModelItem?.transformStreamValue\"\n  @failed=\"onFailedReader\"\n  @completed=\"onCompletedReader\"\n\u002F>\n```\n\n其中 `model` 和 `transformStreamFn` 的值会根据用户选择的下拉框选项自动映射到对应的模型，并实时由全局 pinia [src\u002Fstore\u002Fbusiness\u002Findex.ts](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002Fsrc\u002Fstore\u002Fbusiness\u002Findex.ts#L22) 状态管理来管控：\n\n```ts\nexport const useBusinessStore = defineStore('business-store', {\n  state: (): BusinessState => {\n    return {\n      systemModelName: defaultModelName\n    }\n  },\n  getters: {\n    currentModelItem (state) {\n      return modelMappingList.find(v => v.modelName === state.systemModelName)\n    }\n  },\n  actions: {\n    \u002F\u002F ...\n  }\n})\n```\n\n在模拟开发环境下，默认使用 `standard` 模型，同时也可以自定义修改为指定模型（尝试基于本项目二次开发的话，可以重点看下这个文件 [models\u002Findex.ts](src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts#L190)），具体的模型类型可以根据需求进行自己二次配置:\n\n```ts\n\u002F**\n * Mock 模拟模型的 name\n *\u002F\nexport const defaultMockModelName = 'standard'\n\n\u002F**\n * 项目默认使用模型，按需修改此字段即可\n *\u002F\n\n\u002F\u002F export const defaultModelName = 'spark'\nexport const defaultModelName = defaultMockModelName\n```\n\n\n#### 💡 提示\n\n> `currentModelItem` 计算属性会根据模型映射自动选择对应的模型，也可以手动指定模型\n> \n> 如果后端返回的是可直接渲染的纯字符串（而非 JSON），`standard` 模型将适用于所有这种情况\n\n## 🌹 支持\n\n如果你喜欢这个项目或发现有用，可以点右上角 [`Star`](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp) 支持一下，你的支持是我们不断改进的动力，感谢！ ^_^ \n\n\n## 🌟 相关项目\n\n以下是一些开发者和团队正在使用、参考或受本项目启发的项目：\n\n| 项目名                                                | 简介                                                                                          |\n| ----------------------------------------------------- | --------------------------------------------------------------------------------------------- |\n| [大模型数据助手](https:\u002F\u002Fgithub.com\u002Fapconw\u002Fsanic-web) | 一个轻量级的开源大模型应用项目，支持多模型适配、数据问答和 RAG 检索，旨在简化大模型应用开发。 |\n\n### 📢 社区贡献\n\n💡 如果您的项目也在使用或借鉴了本项目，我们诚挚欢迎您：\n\n- 通过提交 [Issue](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues) 分享您的项目链接\n- 提交 Pull Request (PR) 将您的项目添加到列表中\n\n\n## 🚨 免责声明\n\n本模板作为 AI 对话原型技术参考方案，使用者需知悉以下风险及义务：\n\n- **技术风险**：依赖框架（Vue3\u002FVite\u002FNaive UI等）存在版本迭代风险，第三方组件（MarkdownIt\u002FMermaid\u002FKaTex等）以原始仓库规范为准，API 服务商条款变更可能导致功能异常  \n- **技术局限性**：当前实现方案存在功能边界（如对话模式限制），技术选型需根据实际场景评估\n- **使用限制**：禁止用于违反大模型服务条款或数据隐私法规的场景，使用者需自行完成 API 密钥安全管理\n- **责任免除**：不承诺大模型输出准确性及业务场景适配性，因使用\u002F二次开发导致的后果由使用者自行承担\n\n使用本 AI 模板即视为已阅读并同意上述条款，且自愿承担所有技术及法律风险\n\n## License\n\n[MIT](.\u002FLICENSE) License | Copyright © 2020-PRESENT [Wisdom](https:\u002F\u002Fgithub.com\u002Fpdsuwwz)\n\n","\u003Cp style=\"text-align:center;\" align=\"center\">\u003Ca href=\"https:\u002F\u002Fbotkit.likemashang.com\">\u003Cpicture align=\"center\">\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fi.stardots.io\u002Fwisdom\u002F1747723353145.png\"  width=\"100%\" align=\"center\" style=\"margin-bottom:20px;\">\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_0d62fb78bef9.png\" width=\"100%\" align=\"center\" style=\"margin-bottom:20px;\">\n  \u003Cimg alt=\"color mode\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_0d62fb78bef9.png\" width=\"100%\" align=\"center\" style=\"margin-bottom:20px;\">\n\u003C\u002Fpicture>\u003C\u002Fa>\u003Cbr \u002F>\u003Cbr \u002F>\u003C\u002Fp>\n\n\n# chatgpt-vue3-light-mvp\n\n[![Deploy](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpassing-black?style=flat&logo=Netlify&label=Netlify&color=3bb92c&labelColor=black)](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fdeployments)\n[![GitHub Workflow Status (branch)](https:\u002F\u002Fimg.shields.io\u002Fbadge-passing-black?style=flat&label=build&color=3bb92c)](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fdeployments\u002FProduction)\n[![thanks](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_51245fca1e11.png)](https:\u002F\u002Fgithub.com\u002Fpdsuwwz)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp?color=466fe8)](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002FLICENSE)\n\n💭 一个可二次开发 Chat Bot 对话 Web 端原型模板, 基于 Vue3、Vite 6、TypeScript、Naive UI、Pinia、UnoCSS 等主流技术构建, 🧤简单集成大模型 API, 采用单轮 AI 问答对话模式, 每次提问独立响应, 无需上下文, 支持打字机效果流式输出, 集成 markdown-it, highlight.js, 数学公式, Mermaid 图表语法高亮预览, 💼 易于定制和快速搭建 Chat 类大语言模型产品\n\n\n__[🌈 Live Demo 在线体验](https:\u002F\u002Fpdsuwwz.github.io\u002Fchatgpt-vue3-light-mvp)__\n\n> [!IMPORTANT]\n> 本项目为最小可行产品 `(MVP)`, 仅支持**单轮对话模式**（每次提问独立响应，不保留上下文）\n> \n> 未来有机会支持多轮对话，目前暂无具体计划。💡 如有需求，可基于此项目自行扩展 ~\n\n## 🎉 特性\n\n* 🛠️ **核心技术栈**：__Vite 6 + Vue 3 + TypeScript + Pinia(v3) + ESLint (v9)__\n* 🎨 **UI 框架**：__Naive UI 2.x__\n* 🪄 **解放双手**：内置 **Unplugin Auto Import**，支持组件按需自动导入，提升开发效率\n* 🌟 **图标支持**：内置 **UnoCSS + Iconify**，实现原子化样式内联和图标按需自动导入\n* 💬 **AI 对话**：支持单轮对话，用户输入即得 AI 独立响应回复，无需上下文\n* 📝 **Markdown 预览**：支持多种编程语言代码高亮，集成 `markdown-it` 和 `highlight.js`\n* 📊 **可视化支持**：内置 `Mermaid` 解析，轻松绘制流程图和时序图等；支持 KaTex\u002FLaTeX 数学公式渲染，助力技术文档编写\n* 🧪 **模拟开发模式**：提供本地模拟开发模式，无需真实 API 即可开始开发\n* 🔑 **环境变量管理**：通过 `.env` 文件管理 API 密钥，支持不同大模型的配置\n* 🌍 **大语言模型 API**：兼容 Deepseek V3\u002FR1, Spark 星火认知大模型、Kimi Moonshot 月之暗面大模型、SiliconFlow、Ollama 等，允许自由扩展\n* 🚀 **灵活扩展**：轻量级模块化 MVP 设计，纯前端开发，项目结构清晰，快速搭建 AI 对话原型\n\n### 🧠 已支持的模型\n\n详见 [这里](#-大模型响应处理)\n\n| 模型名称 | 模型标识符 | 需要 API Key | 可否本地运行 | 备注 |\n|----------|----------|----------|----------|----------|\n| （默认类型）模拟数据模型 | `standard` | × | ✅ | 开发环境默认使用 |\n| Ollama (Llama 3) 大模型 | `ollama3` | × | ✅ | 需本地安装运行 Ollama 服务 |\n| DeepSeek-V3 | `deepseek-v3` | ✅ | × | 需配置 `VITE_DEEPSEEK_KEY` |\n| DeepSeek-R1 (推理模型) | `deepseek-deep` | ✅ | × | 需配置 `VITE_DEEPSEEK_KEY` |\n| Spark 星火大模型 | `spark` | ✅ | × | 需配置 `VITE_SPARK_KEY` |\n| SiliconFlow 硅基流动大模型 | `siliconflow` | ✅ | × | 需配置 `VITE_SILICONFLOW_KEY` |\n| Kimi Moonshot 月之暗面大模型 | `moonshot` | ✅ | × | 需配置 `VITE_MOONSHOT_KEY` |\n\n\n## 前置条件\n\n* Vue 3.x\n* Node >= 22.12.x\n* Pnpm 10.x\n* **VS Code 插件 `dbaeumer.vscode-eslint` >= v3.0.5 (pre-release)**\n\n## 运行效果\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_e94feb76230a.png)\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_7a14a1b6c8f6.png)\n\n* Deepseek 深度思考响应结果\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_ebe4c766ff3e.png)\n\n\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F01063217-13ae-4ecd-b451-5b2e4e954afc\n\n\n\n\n## 安装和运行\n\n* 安装依赖\n\n```bash\npnpm i\n```\n\n* 本地开发\n\n```bash\npnpm dev\n```\n\n本地运行后，可以通过访问 `http:\u002F\u002Flocalhost:2048` 来查看应用。\n\n\n## 🔑 配置 API 密钥\n\n在运行项目之前，需要设置大语言模型的 API 密钥：\n\n1. 执行以下命令，自动创建环境变量模板文件 `.env` 文件：\n    ```sh\n    cp .env.template .env\n    ```\n\n2. 编辑 `.env` 文件，填入你的 API 密钥\n\n  ```sh\n  VITE_SPARK_KEY=你的_星火_API_Key # 需要用冒号拼接key和secret，格式如 `key123456:secret123456`\n  VITE_SILICONFLOW_KEY=你的_SiliconFlow_API_Key # 通常以 `sk-` 开头，如 `sk-xxxxxx`\n  VITE_MOONSHOT_KEY=你的_Moonshot_API_Key # 通常以 `sk-` 开头，如 `sk-xxxxxx`\n  VITE_DEEPSEEK_KEY=你的_DeepSeek_API_Key # 通常以 `sk-` 开头，如 `sk-xxxxxx`\n  ```\n\n\n## 🛠️ API 代理配置说明\n\n本项目采用纯前端架构，所有后端服务均由外部或本地其他服务提供。为解决开发环境中的跨域问题，项目使用了 `Vite` 的代理功能 `server.proxy`（详见[官方文档](https:\u002F\u002Fvite.dev\u002Fconfig\u002Fserver-options.html#server-proxy)）\n\n以下是当前仓库的[代理配置](.\u002Fvite.config.ts#L23)\n\n```ts\nserver: {\n  \u002F\u002F ...\n  proxy: {\n    '\u002Fspark': {\n      target: 'https:\u002F\u002Fspark-api-open.xf-yun.com',\n      changeOrigin: true,\n      ws: true,\n      rewrite: (path) => path.replace(\u002F^\\\u002Fspark\u002F, '')\n    },\n    '\u002Fsiliconflow': {\n      target: 'https:\u002F\u002Fapi.siliconflow.cn',\n      changeOrigin: true,\n      ws: true,\n      rewrite: (path) => path.replace(\u002F^\\\u002Fsiliconflow\u002F, '')\n    },\n    '\u002Fmoonshot': {\n      target: 'https:\u002F\u002Fapi.moonshot.cn',\n      changeOrigin: true,\n      ws: true,\n      rewrite: (path) => path.replace(\u002F^\\\u002Fmoonshot\u002F, '')\n    },\n    '\u002Fdeepseek': {\n      target: 'https:\u002F\u002Fapi.deepseek.com',\n      changeOrigin: true,\n      ws: true,\n      rewrite: (path) => path.replace(\u002F^\\\u002Fdeepseek\u002F, '')\n    }\n  }\n},\n\u002F\u002F ...\n```\n\n### 注意事项\n\n1. **环境限制**: 该代理配置仅在开发环境（`development`）中生效。若生产环境部署时请根据实际情况调整服务器配置\n\n2. **路径匹配**: 请求路径需要与配置的代理路径前缀匹配，例如本地访问 `\u002Fspark\u002Fv1\u002Fchat\u002Fcompletions` 会被直接代理到 `https:\u002F\u002Fspark-api-open.xf-yun.com\u002Fv1\u002Fchat\u002Fcompletions`\n\n### 生产环境部署\n\n生产环境建议使用以下方案之一：\n\n- 配置正确的 `CORS` 响应头\n- 使用 `Nginx` 反向代理\n- 统一域名和端口，避免跨域问题\n\n\n## 🌍 模拟\u002F真实 API 模式切换\n\n本项目提供了一个模拟开发模式，用于在本地开发环境或 Github 等部署环境中模拟调用大模型相关策略，无需调用真实 API 接口。该模式在 [src\u002Fconfig\u002Fenv.ts](src\u002Fconfig\u002Fenv.ts) 文件中定义，由以下代码控制：\n\n```ts\n\u002F\u002F src\u002Fconfig\u002Fenv.ts\n\n\u002F**\n * TODO: 若是 Github 演示部署环境，则仅模拟大模型相关策略，不调接口\n *\u002F\nexport const isGithubDeployed = process.env.VITE_ROUTER_MODE === 'hash'\n\n```\n### 默认配置\n\n默认情况下，在开发环境，`isGithubDeployed` 会被设置为 `false`, 这意味着应用将默认使用模拟数据，但也可按照需求自行切换其他大模型 API 接口。\n\n当部署在演示环境时，也就是本项目在线预览地址中，则使用 `hash` 路由模式, `isGithubDeployed` 会被设置为 `true`, 这意味着真实的大模型 API 接口将被禁用。\n\n### 切换至真实 API\n\n如果想在所有环境中使用真实的 API，你有两个选择：\n\n1. **取消注释**：将最后一行的代码注释取消，设置 `isGithubDeployed = false`\n\n2. **修改逻辑**：全局搜索 `isGithubDeployed`, 并修改相应的 if 判断逻辑，使其默认使用真实接口\n\n**请注意，无论选择哪种方式，都需要确保项目已经正确配置了 `.env` API 密钥**\n\n### 接口函数修改\n\n请求的函数已经针对目前项目内置的所有模型的响应结果做了统一处理，在（[src\u002Fstore\u002Fbusiness\u002Findex.ts](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002Fsrc\u002Fstore\u002Fbusiness\u002Findex.ts#L30)）的 [`createAssistantWriterStylized`](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002Fsrc\u002Fstore\u002Fbusiness\u002Findex.ts#L30) 函数，一般情况下，不需要修改此函数，除非遇到极个别模型比较特殊的响应结果格式，需要再额外处理下。\n\n\n---\n\n## 🦙 接入大语言模型 API\n\n\u003Cdetails>\n\u003Csummary>国内在线大模型配置\u003C\u002Fsummary>\u003Cbr>\n\n\n**1. DeepSeek 深度求索大模型**：\n- **官方开放平台**：访问 [DeepSeek 官方文档](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn) 查看使用手册\n- **注册**：访问 [DeepSeek 开放平台控制台](https:\u002F\u002Fplatform.deepseek.com\u002Fusage) 进行注册登录\n- **模型 & 价格**：访问 [模型 & 价格](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn\u002Fquick_start\u002Fpricing) 查看模型价格\n- **Token 购买**：访问 [账户信息 - Top up 管理](https:\u002F\u002Fplatform.deepseek.com\u002Ftop_up) 请按需购买 API 所需 Token（一般 10 块就够了，能用好久）\n- **创建 API 密钥**：访问 [账户信息 - API Key 管理](https:\u002F\u002Fplatform.deepseek.com\u002Fapi_keys) 新建 API 密钥\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_acc14b63a69b.png)\n\n- **接口说明**：[首次调用 API](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn)\n- **在线调试**：[官方 Chat Completions 在线调试](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn\u002Fapi\u002Fcreate-chat-completion)\n- **配置到本仓库**：将创建的 API 密钥填入 `.env` 文件中的 `VITE_DEEPSEEK_KEY` 环境变量\n- **DeepSeek 现已支持的大模型**：[模型 & 价格](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn\u002Fquick_start\u002Fpricing)\n- **DeepSeek 现已支持的大模型-接口调用查看**：[通过接口查看](https:\u002F\u002Fapi-docs.deepseek.com\u002Fzh-cn\u002Fapi\u002Flist-models)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_fe5e55769156.png)\n\n\n**2. Spark 星火认知大模型**：\n\n- **注册**：访问 [星火大模型 API](https:\u002F\u002Fxinghuo.xfyun.cn\u002Fsparkapi) 进行注册并登录\n- **获取 API 密钥**：访问 [控制台](https:\u002F\u002Fconsole.xfyun.cn\u002Fservices\u002Fbm4) 获取 `APIKey` 和 `APISecret`\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_4300dca1153b.png)\n\n- **接口说明**：[spark HTTP 调用文档](https:\u002F\u002Fwww.xfyun.cn\u002Fdoc\u002Fspark\u002FHTTP%E8%B0%83%E7%94%A8%E6%96%87%E6%A1%A3.html#_1-%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_064dada987ff.png)\n\n- **配置到本仓库**：将创建的 `APIKey` 和 `APISecret` 密钥用冒号 `:` 拼接填入到 `.env` 文件中的 `VITE_SPARK_KEY` 环境变量\n\n\n**3. SiliconFlow 大模型**：\n- **注册**：访问 [SiliconFlow 官网](https:\u002F\u002Fsiliconflow.cn\u002Fzh-cn\u002Fsiliconcloud) 进行注册登录并创建 API 密钥\n- **创建 API 密钥**：访问 [账户管理 - API 密钥](https:\u002F\u002Fcloud.siliconflow.cn\u002Faccount\u002Fak) 创建新 API 密钥\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_475a319b336e.png)\n\n- **接口说明**：[官方 Chat Completions 在线调试](https:\u002F\u002Fdocs.siliconflow.cn\u002Freference\u002Fchat-completions-3)\n- **配置到本仓库**：将创建的 API 密钥填入 `.env` 文件中的 `VITE_SILICONFLOW_KEY` 环境变量\n- **SiliconFlow现已支持的大模型**：[模型列表](https:\u002F\u002Fsiliconflow.cn\u002Fzh-cn\u002Fmodels)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_fcaac19200de.png)\n\n\n**4. Kimi Moonshot 月之暗面大模型**：\n- **官方开放平台**：访问 [Moonshot 开放平台](https:\u002F\u002Fplatform.moonshot.cn\u002Fdocs\u002Fintro) 查看使用手册\n- **注册**：访问 [Moonshot 开放平台控制台](https:\u002F\u002Fplatform.moonshot.cn\u002Fconsole) 进行注册登录\n- **创建 API 密钥**：访问 [账户信息 - API Key 管理](https:\u002F\u002Fplatform.moonshot.cn\u002Fconsole\u002Fapi-keys) 新建 API 密钥\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_ee92f7d17632.png)\n\n\n- **接口说明**：[官方示例代码 Chat Completion](https:\u002F\u002Fplatform.moonshot.cn\u002Fdocs\u002Fapi\u002Fchat#chat-completion)\n- **配置到本仓库**：将创建的 API 密钥填入 `.env` 文件中的 `VITE_MOONSHOT_KEY` 环境变量\n- **Moonshot现已支持的大模型**：[模型列表](https:\u002F\u002Fplatform.moonshot.cn\u002Fdocs\u002Fapi\u002Fchat#list-models)\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_95e81ed4339e.png)\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>使用本地 Ollama 大模型\u003C\u002Fsummary>\u003Cbr>\n\n**Ollama 大模型**：\n- **安装**：Ollama3 不需要 API 密钥，只需要在本地安装并运行 Ollama 即可。请参考 Ollama 官方文档进行安装：[Ollama GitHub](https:\u002F\u002Fgithub.com\u002Follama\u002Follama)\n- **Ollama现已支持的大模型**：[模型列表](https:\u002F\u002Follama.com\u002Fsearch)\n- **运行**：运行 Ollama3 服务，直接执行 `ollama run \u003C模型名称>`, 如： `ollama run llama3`, 运行后确保其在 `http:\u002F\u002Flocalhost:11434` 运行\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_9f48c5f01941.png)\n\n- **查看运行状态**：执行 `ollama list`命令可查看当前正在运行的 Ollama 模型\n\n![image](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_readme_c773d0c8953b.png)\n\n\n\u003C\u002Fdetails>\n\n---\n\n## 🔌 大模型响应处理\n\n由于不同大模型的 API 响应数据结构存在差异，本项目通过**统一的模型映射机制**和**响应转换函数**实现了多模型的无缝集成。核心逻辑封装在 [详见代码](src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts#L85) 中，支持灵活扩展和定制\n\n### 核心设计\n\n\u003Cdetails>\n\u003Csummary>1、模型映射机制\u003C\u002Fsummary>\u003Cbr>\n\n通过 `modelMappingList` 定义支持的模型列表，每个模型包含以下关键属性：\n\n| 属性名称 | 类型 | 说明\n|----------|----------|----------|\n| label | string | 模型展示名称（仅用于 UI 显示） |\n| modelName | string | 模型唯一标识符（用于逻辑判断）|\n| transformStreamValue | TransformFunction | 流式响应数据的转换函数，用于解析不同模型的响应结构 |\n| chatFetch | (text: string) => Promise\u003CResponse> | 模型 API 请求函数，封装了请求参数和调用逻辑 |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>2、响应转换函数\u003C\u002Fsummary>\u003Cbr>\n\n每个模型通过 `transformStreamValue` 函数处理流式响应数据，核心逻辑包括：\n\n* 解析原始响应数据（`Uint8Array` 或 `string`）\n* 提取有效内容字段（如 `content`）\n* 处理特殊终止信号（如 `[DONE]`）\n\n\u003C\u002Fdetails>\n\n\n\u003Cdetails>\n\u003Csummary>3、统一接口\u003C\u002Fsummary>\u003Cbr>\n\n通过 `createAssistantWriterStylized` 方法封装模型调用逻辑，不用太关心底层实现细节，只需通过 `modelName` 切换模型。\n\n* 解析原始响应数据（`Uint8Array` 或 `string`）\n* 提取有效内容字段（如 `content`）\n* 处理特殊终止信号（如 `[DONE]`）\n\n\u003C\u002Fdetails>\n\n👉 可在 [src\u002Fstore\u002Fbusiness\u002Findex.ts](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002Fsrc\u002Fstore\u002Fbusiness\u002Findex.ts) 中查看更多实现细节\n\n### 🧠 已支持的模型\n\n| 模型名称 | 模型标识符 | 需要 API Key | 可否本地运行 | 备注 |\n|----------|----------|----------|----------|----------|\n| （默认类型）模拟数据模型 | `standard` | × | ✅ | 开发环境默认使用 |\n| Ollama (Llama 3) 大模型 | `ollama3` | × | ✅ | 需本地安装运行 Ollama 服务 |\n| DeepSeek-V3 | `deepseek-v3` | ✅ | × | 需配置 `VITE_DEEPSEEK_KEY` |\n| DeepSeek-R1 (推理模型) | `deepseek-deep` | ✅ | × | 需配置 `VITE_DEEPSEEK_KEY` |\n| Spark 星火大模型 | `spark` | ✅ | × | 需配置 `VITE_SPARK_KEY` |\n| SiliconFlow 硅基流动大模型 | `siliconflow` | ✅ | × | 需配置 `VITE_SILICONFLOW_KEY` |\n| Kimi Moonshot 月之暗面大模型 | `moonshot` | ✅ | × | 需配置 `VITE_MOONSHOT_KEY` |\n\n\n### 🔬 主要实现\n\n- **modelMappingList**: 定义了支持的每个大模型的 modelName, 响应结果的处理以及请求 API 函数，[详见代码](src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts#L199)\n  - **transformStreamValue**: 包含了针对各种模型的响应结果转换函数，[详见代码](src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts#L199)\n- **MarkdownPreview 组件**: 接收 `model` 和 `transformStreamFn` props 属性，根据不同模型类型处理流式响应，[详见代码](src\u002Fcomponents\u002FMarkdownPreview\u002Findex.vue#L9)\n\n> 本项目的 `MarkdownPreview` 组件接收 `model` props 属性是为了回显不同的 `Placeholder`，如果你不需要可直接删掉该 props 参数及对应的回显逻辑\n\n### 📚 使用示例\n\n在使用 [`MarkdownPreview`](src\u002Fcomponents\u002FMarkdownPreview\u002Findex.vue) 组件时，通过设置 `model` 和 `transformStreamFn` 属性来指定当前使用的大模型类型：\n\n```html\n\u003CMarkdownPreview\n  ref=\"refReaderMarkdownPreview\"\n  v-model:reader=\"outputTextReader\"\n  :model=\"businessStore.currentModelItem?.modelName\"\n  :transform-stream-fn=\"businessStore.currentModelItem?.transformStreamValue\"\n  @failed=\"onFailedReader\"\n  @completed=\"onCompletedReader\"\n\u002F>\n```\n\n其中 `model` 和 `transformStreamFn` 的值会根据用户选择的下拉框选项自动映射到对应的模型，并实时由全局 pinia [src\u002Fstore\u002Fbusiness\u002Findex.ts](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fblob\u002Fmain\u002Fsrc\u002Fstore\u002Fbusiness\u002Findex.ts#L22) 状态管理来管控：\n\n```ts\nexport const useBusinessStore = defineStore('business-store', {\n  state: (): BusinessState => {\n    return {\n      systemModelName: defaultModelName\n    }\n  },\n  getters: {\n    currentModelItem (state) {\n      return modelMappingList.find(v => v.modelName === state.systemModelName)\n    }\n  },\n  actions: {\n    \u002F\u002F ...\n  }\n})\n```\n\n在模拟开发环境下，默认使用 `standard` 模型，同时也可以自定义修改为指定模型（尝试基于本项目二次开发的话，可以重点看下这个文件 [models\u002Findex.ts](src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts#L190)），具体的模型类型可以根据需求进行自己二次配置:\n\n```ts\n\u002F**\n * Mock 模拟模型的 name\n *\u002F\nexport const defaultMockModelName = 'standard'\n\n\u002F**\n * 项目默认使用模型，按需修改此字段即可\n *\u002F\n\n\u002F\u002F export const defaultModelName = 'spark'\nexport const defaultModelName = defaultMockModelName\n```\n\n\n#### 💡 提示\n\n> `currentModelItem` 计算属性会根据模型映射自动选择对应的模型，也可以手动指定模型\n> \n> 如果后端返回的是可直接渲染的纯字符串（而非 JSON），`standard` 模型将适用于所有这种情况\n\n## 🌹 支持\n\n如果你喜欢这个项目或发现有用，可以点右上角 [`Star`](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp) 支持一下，你的支持是我们不断改进的动力，感谢！ ^_^ \n\n\n## 🌟 相关项目\n\n以下是一些开发者和团队正在使用、参考或受本项目启发的项目：\n\n| 项目名                                                | 简介                                                                                          |\n| ----------------------------------------------------- | --------------------------------------------------------------------------------------------- |\n| [大模型数据助手](https:\u002F\u002Fgithub.com\u002Fapconw\u002Fsanic-web) | 一个轻量级的开源大模型应用项目，支持多模型适配、数据问答和 RAG 检索，旨在简化大模型应用开发。 |\n\n### 📢 社区贡献\n\n💡 如果您的项目也在使用或借鉴了本项目，我们诚挚欢迎您：\n\n- 通过提交 [Issue](https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues) 分享您的项目链接\n- 提交 Pull Request (PR) 将您的项目添加到列表中\n\n\n## 🚨 免责声明\n\n本模板作为 AI 对话原型技术参考方案，使用者需知悉以下风险及义务：\n\n- **技术风险**：依赖框架（Vue3\u002FVite\u002FNaive UI等）存在版本迭代风险，第三方组件（MarkdownIt\u002FMermaid\u002FKaTex等）以原始仓库规范为准，API 服务商条款变更可能导致功能异常  \n- **技术局限性**：当前实现方案存在功能边界（如对话模式限制），技术选型需根据实际场景评估\n- **使用限制**：禁止用于违反大模型服务条款或数据隐私法规的场景，使用者需自行完成 API 密钥安全管理\n- **责任免除**：不承诺大模型输出准确性及业务场景适配性，因使用\u002F二次开发导致的后果由使用者自行承担\n\n使用本 AI 模板即视为已阅读并同意上述条款，且自愿承担所有技术及法律风险\n\n## License\n\n[MIT](.\u002FLICENSE) License | Copyright © 2020-PRESENT [Wisdom](https:\u002F\u002Fgithub.com\u002Fpdsuwwz)","# chatgpt-vue3-light-mvp 快速上手指南\n\n`chatgpt-vue3-light-mvp` 是一个基于 Vue3、Vite 6、TypeScript 和 Naive UI 构建的轻量级 AI 对话 Web 端原型模板。它支持单轮问答、流式输出（打字机效果），并内置了 Markdown、代码高亮、数学公式及 Mermaid 图表渲染能力，适合快速搭建大语言模型应用原型。\n\n> **注意**：本项目为 MVP（最小可行产品），默认仅支持**单轮对话模式**（每次提问独立响应，不保留上下文）。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **Node.js**: >= 22.12.x\n*   **包管理器**: pnpm 10.x (推荐)\n*   **编辑器**: VS Code (建议安装 `dbaeumer.vscode-eslint` 插件，版本 >= v3.0.5 pre-release)\n*   **操作系统**: Windows \u002F macOS \u002F Linux\n\n> 💡 **国内加速建议**：如果 npm\u002Fpnpm 下载依赖较慢，可配置国内镜像源：\n> ```bash\n> pnpm config set registry https:\u002F\u002Fregistry.npmmirror.com\n> ```\n\n## 2. 安装步骤\n\n### 克隆项目\n首先将代码克隆到本地：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp.git\ncd chatgpt-vue3-light-mvp\n```\n\n### 安装依赖\n使用 pnpm 安装项目所需依赖：\n```bash\npnpm i\n```\n\n### 配置环境变量\n项目需要配置 API 密钥才能连接真实的大模型服务（如 DeepSeek、Kimi、Spark 等）。\n\n1.  复制环境变量模板文件：\n    ```bash\n    cp .env.template .env\n    ```\n\n2.  编辑 `.env` 文件，填入您申请的 API Key：\n    ```sh\n    # 示例：填入对应的 API Key\n    VITE_SPARK_KEY=你的_星火_API_Key # 格式：key:secret\n    VITE_SILICONFLOW_KEY=你的_SiliconFlow_API_Key # 格式：sk-xxxxxx\n    VITE_MOONSHOT_KEY=你的_Moonshot_API_Key # 格式：sk-xxxxxx\n    VITE_DEEPSEEK_KEY=你的_DeepSeek_API_Key # 格式：sk-xxxxxx\n    ```\n    *如果不填写 Key，项目默认会使用“模拟数据模式”运行，无需后端即可体验界面交互。*\n\n## 3. 基本使用\n\n### 启动开发服务器\n运行以下命令启动本地开发环境：\n```bash\npnpm dev\n```\n\n启动成功后，终端会显示访问地址，通常为：\n`http:\u002F\u002Flocalhost:2048`\n\n在浏览器中打开该地址，即可看到聊天界面。\n\n### 切换大模型\n在界面右上角或设置区域（视具体 UI 布局而定），您可以选择不同的模型提供商：\n*   **Standard (模拟)**: 默认选项，返回预设的模拟回复，用于调试 UI。\n*   **Ollama**: 需在本地运行 Ollama 服务 (`ollama run llama3`)，无需 API Key。\n*   **DeepSeek \u002F Moonshot \u002F Spark 等**: 选择对应模型后，输入内容即可调用真实 API 获得回复。\n\n### 功能体验\n*   **发送消息**：在输入框输入问题并发送，观察流式打字机效果。\n*   **代码与公式**：尝试让 AI 生成代码块或 LaTeX 数学公式，查看高亮和渲染效果。\n*   **图表绘制**：输入“画一个流程图”，测试 Mermaid 图表渲染功能。\n\n### 生产环境构建\n完成开发和测试后，可构建静态资源进行部署：\n```bash\npnpm build\n```\n构建产物将生成在 `dist` 目录，可直接部署至 Nginx、Netlify 或 Vercel 等平台。\n\n> **提示**：生产环境部署时，请注意跨域问题。建议在服务器端配置 Nginx 反向代理或正确设置 CORS 响应头，而非直接使用开发环境的 Vite Proxy 配置。","某初创教育科技公司的前端团队需要在 3 天内向投资人演示一款\"AI 数学解题助手”的原型，要求支持复杂的 LaTeX 公式渲染和流程图展示。\n\n### 没有 chatgpt-vue3-light-mvp 时\n- **重复造轮子耗时**：团队需从零搭建 Vue3+TypeScript 项目，手动配置 Vite、Naive UI 和 UnoCSS，仅环境初始化就耗费了整整一天。\n- **核心功能开发难**：实现大模型 API 的 SSE 流式输出（打字机效果）和 Markdown 解析逻辑复杂，尤其是 Mermaid 图表与 KaTex 数学公式的兼容调试极易出错。\n- **多模型适配成本高**：为了对比不同大模型（如 DeepSeek R1 推理版与星火）的解题效果，需要为每个模型单独编写接口适配层，代码冗余严重。\n- **缺乏模拟数据**：在后端 API 尚未调通时，前端无法进行真实交互测试，导致联调进度受阻，演示风险极高。\n\n### 使用 chatgpt-vue3-light-mvp 后\n- **极速启动项目**：直接基于模板运行 `pnpm dev`，内置的 Vite 6、Naive UI 及原子化 CSS 配置开箱即用，半天内即可完成界面定制。\n- **原生支持富文本**：工具已集成 markdown-it、Mermaid 和 KaTex，自动处理流式输出与公式高亮，团队无需关注底层解析逻辑，专注业务逻辑即可。\n- **灵活切换模型**：仅需在 `.env` 文件中配置不同模型的 API Key（如 DeepSeek、Moonshot），即可通过下拉菜单无缝切换后端大脑，快速验证解题准确率。\n- **模拟模式兜底**：利用内置的本地模拟开发模式，即使 API 暂未就绪，也能生成逼真的假数据流进行全流程演示，确保路演顺利进行。\n\nchatgpt-vue3-light-mvp 将原本需要一周的 AI 对话应用原型开发周期压缩至两天，让团队能专注于核心业务逻辑而非底层基建。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fpdsuwwz_chatgpt-vue3-light-mvp_e94feb76.png","pdsuwwz","Wisdom Zane","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fpdsuwwz_acc22de6.png","Frontend Developer","Thank you follow me","Beijing, China","pdsu.wwz@foxmail.com","likemashang.com","https:\u002F\u002Fgithub.com\u002Fpdsuwwz",[83,87,91,95,99],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",44.9,{"name":88,"color":89,"percentage":90},"Vue","#41b883",38.8,{"name":92,"color":93,"percentage":94},"JavaScript","#f1e05a",11.9,{"name":96,"color":97,"percentage":98},"SCSS","#c6538c",4.2,{"name":100,"color":101,"percentage":102},"HTML","#e34c26",0.3,542,90,"2026-04-06T11:19:35","MIT","未说明","不需要 GPU（纯前端项目，若使用本地 Ollama 模型则取决于所选模型的需求）",{"notes":110,"python":111,"dependencies":112},"这是一个纯前端 MVP 项目，无需 Python 环境。默认开发模式使用模拟数据；若需连接真实大模型，需在 .env 文件中配置 API Key。若选择本地运行 Ollama 模型，需自行安装并启动 Ollama 服务（默认端口 11434）。生产环境部署需自行配置 CORS 或使用 Nginx 反向代理解决跨域问题。","不需要",[113,114,115,116,84,117,118,119,120],"Node.js >= 22.12.x","Pnpm 10.x","Vue 3.x","Vite 6","Naive UI 2.x","Pinia v3","UnoCSS","ESLint v9",[15,35,122,14,13],"音频",[124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143],"ai","chat","chatbot","deepseek","glm","gpt","llm","ollama","openai","qwen","spark","siliconflow","ts","event","source","stream","siliconcloud","kimi","moonshot","reasoner",null,"2026-03-27T02:49:30.150509","2026-04-07T22:59:53.627804",[148,153,158,163,168,173,178,183],{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},22826,"配置 Kimi apiKey 后接口仍返回 500 错误怎么办？","首先检查环境变量配置是否正确。如果确认配置无误但仍报错，建议尝试使用 `pnpm create vite` 重新创建一个新项目，配置好代理后访问 `http:\u002F\u002Flocalhost:2048\u002Fmoonshot\u002Fv1\u002Fchat\u002Fcompletions` 测试。如果新项目中依旧无法显示，则可能不是项目本身的问题，需检查网络环境（如尝试手机热点）或 API 服务状态。","https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues\u002F48",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},22827,"如何在页面中支持渲染自定义的 ECharts 图表？","目前可以通过以下两种方式实现：\n1. 实现一个 markdown-it 插件，参考项目中 Mermaid 的实现方式（可参考 nzoth-toolkit 项目中的 mermaid 插件代码）。\n2. 训练大模型输出特定的 `echarts` 标识符，前端识别该标识符后映射到专门的组件（如 `GenerateEcharts.vue`）进行渲染。这需要额外处理标识符的提取和识别逻辑（参考 `TransformUtils`）。\n注意：直接在 Markdown 中嵌入 `\u003Cscript>` 标签通常不被支持，使用 `\u003Ciframe>` 嵌入部分未限制 CSP 的网页是可行的替代方案。","https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues\u002F57",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},22828,"项目是否支持 Mermaid 流程图的实时渲染？","是的，项目已初步支持 `Mermaid` 的实时渲染功能。用户在对话中发送 Mermaid 代码即可看到渲染后的流程图效果。","https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues\u002F41",{"id":164,"question_zh":165,"answer_zh":166,"source_url":167},22829,"如何接入私有化部署的 API（兼容 OpenAI 格式，无 API Key）？","无需 API Key 也可以使用。需要在 `modelMappingList`（路径：`src\u002Fcomponents\u002FMarkdownPreview\u002Fmodels\u002Findex.ts`）中增加一个对应的 Model 对象。该对象需包含以下字段：\n- `label`: 模型昵称\n- `modelName`: 模型标识符\n- `transformStreamValue`: Stream 结果转换器函数\n- `chatFetch`: 调用 API 的请求函数\n请参照项目中其他模型的写法编写对应的转换函数和 fetch 函数即可实现接入。","https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues\u002F63",{"id":169,"question_zh":170,"answer_zh":171,"source_url":172},22830,"能否兼容 Dify 作为后端 LLM 服务？特别是代码高亮风格。","可以兼容。如果 Dify 的输出是通用的 JSON 格式，可以通过添加 transform 函数来适配。具体代码位于 `src\u002Fcomponents\u002FMarkdownPreview\u002Ftransform\u002Findex.ts` 中的转换逻辑，以及对应的 Vue 组件 `src\u002Fcomponents\u002FMarkdownPreview\u002Findex.vue`。建议参考基于本项目二次开发的开源项目 `sanic-web` (GitHub: apconw\u002Fsanic-web)，其中有完整的实现示例。其他配置步骤可参考项目的 README 文档。","https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues\u002F14",{"id":174,"question_zh":175,"answer_zh":176,"source_url":177},22831,"项目是否支持多轮上下文对话？","本仓库目前定位为最小可行产品 (MVP)，仅支持单轮对话，暂不支持多轮上下文记忆。如果需要此功能，需要在此项目基础上进行二次开发。","https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues\u002F36",{"id":179,"question_zh":180,"answer_zh":181,"source_url":182},22832,"数学公式目前是以源码显示，如何集成公式渲染？","项目已初步集成了公式的 Markdown 高亮渲染功能。更新项目后即可正常显示如高斯公式等数学表达式，不再以源码形式展示。","https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues\u002F26",{"id":184,"question_zh":185,"answer_zh":186,"source_url":187},22833,"Mermaid 图表渲染后如何复制代码或下载图片？","目前支持复制 Mermaid 源代码。对于图片下载功能，项目优先级较低暂未内置，但用户可以将复制的代码粘贴到 https:\u002F\u002Fmermaid.live 在线进行预览和下载 SVG\u002FPNG 图片。如果内容较多导致 SVG 看不清，建议使用在线工具放大或下载查看。","https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fissues\u002F51",[189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269,274,279,284],{"id":190,"version":191,"summary_zh":192,"released_at":193},136541,"v2.8.0","## 变更内容\n* 👋 杂项：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F71 中升级 Vite 至 v7.3 及其依赖项\n* ✨ 杂项：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F73 中设置代理技能\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.7.0...v2.8.0","2026-03-01T14:37:16",{"id":195,"version":196,"summary_zh":197,"released_at":198},136542,"v2.7.0","## 变更内容\n* 🎊 杂项：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F70 中升级依赖项\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.6.1...v2.7.0","2025-11-21T02:19:58",{"id":200,"version":201,"summary_zh":202,"released_at":203},136543,"v2.6.1","## 变更内容\n* 由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F69 中完成的依赖项整理和升级\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.6.0...v2.6.1","2025-10-16T04:57:31",{"id":205,"version":206,"summary_zh":207,"released_at":208},136544,"v2.6.0","## 变更内容\n* ⚡ 杂项：升级依赖、Naive UI 和 Vite，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F67 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.5.0...v2.6.0","2025-09-19T08:35:04",{"id":210,"version":211,"summary_zh":212,"released_at":213},136545,"v2.5.0","## 变更内容\n* ❇️ 杂项：升级 Vite 至 v7.1 及相关依赖，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F66 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.4.2...v2.5.0","2025-08-25T05:45:43",{"id":215,"version":216,"summary_zh":217,"released_at":218},136546,"v2.4.2","## 变更内容\n* 🌱 杂项：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F62 中升级依赖库 naive 和 eslint\n* 🎓 杂项：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F64 中升级 Vite 至 7.0.4 版本及其它依赖\n* ☔ 杂项：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F65 中升级依赖和 Vite\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.4.1...v2.4.2","2025-07-28T07:14:46",{"id":220,"version":221,"summary_zh":222,"released_at":223},136547,"v2.4.1","## 变更内容\n* 🚨 功能：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F58 中更新免责声明\n* 🍕 修复：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F59 中修复 Vite 的环境变量问题\n* 🌈 功能：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F60 中更新依赖（Vite、Vue、UnoCSS 等）\n* 🦄 功能：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F61 中添加文档横幅图片\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.4.0...v2.4.1","2025-05-20T06:54:46",{"id":225,"version":226,"summary_zh":227,"released_at":228},136548,"v2.4.0","## 变更内容\n* ☑️  功能：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F52 中实现 Mermaid 图表的复制代码功能\n* ⚡功能：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F54 中更新 Mermaid 插件\n* ⚒️  功能：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F55 中添加 Mermaid 工具包\n* 💅 功能：由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F56 中优化工具包样式\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.3.0...v2.4.0","2025-04-10T06:05:09",{"id":230,"version":231,"summary_zh":232,"released_at":233},136549,"v2.3.0","## 变更内容\n* ⚡ 修复：通过 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F45 中的提交，防止 Mermaid 图表闪烁。\n* 💎 新增功能：移除 Mermaid 验证，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F46 中完成。\n* 🧨 新增功能：实现 Mermaid 渲染的渐进式加载，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F47 中完成。\n* 🦋 新增功能：在 Mermaid 渲染完成后执行操作，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F49 中完成。\n* 🔧 新增功能：移除 Mermaid 渲染的待处理队列，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F50 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.2.0...v2.3.0","2025-04-02T09:28:40",{"id":235,"version":236,"summary_zh":237,"released_at":238},136550,"v2.2.0","## 变更内容\n* 🐋 功能：支持 DeepSeek 理性推理引擎，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F34 中实现\n* 💖 文档：更新相关项目部分，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F35 中完成\n* 🌱 文档：更新并澄清多轮对话相关内容，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F37 中完成\n* 💍 功能：更新徽章样式，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F38 中实现\n* 💠 修复：操作系统用户代理解析器问题，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F40 中修复\n* 📊 功能：支持 Mermaid 图表渲染，由 @pdsuwwz 在 https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F43 中实现\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.1.0...v2.2.0","2025-03-27T02:36:25",{"id":240,"version":241,"summary_zh":242,"released_at":243},136551,"v2.1.0","## What's Changed\r\n* 💅 feat: update kbd styles by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F28\r\n* 📝 feat: update table styles by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F29\r\n* 💭 feat: add deepseek think screen by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F30\r\n* ✨ feat: transform deepseek think by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F31\r\n* 🎬 feat: update demo video by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F32\r\n* ⚡feat: update siliconflow model by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F33\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv2.0.0...v2.1.0","2025-02-27T06:31:05",{"id":245,"version":246,"summary_zh":247,"released_at":248},136552,"v2.0.0","## What's Changed\r\n* 🦄 chore: upgrade deps & major pinia v3 by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F22\r\n* 🔗 docs: add proxy configuration setup by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F23\r\n* 🎽 refactor: abstract optimize transform models by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F24\r\n* 💍 docs: update screenshot by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F25\r\n* 🎲 feat: support math katex highlighting by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F27\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.6.0...v2.0.0","2025-02-26T06:41:48",{"id":250,"version":251,"summary_zh":252,"released_at":253},136553,"v1.6.0","## What's Changed\r\n* 👾 chore: upgrade vite v6 & core deps by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F20\r\n* 💍 chore: upgrade deps & naiveui 2.41 by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F21\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.5.0...v1.6.0","2025-01-14T03:30:14",{"id":255,"version":256,"summary_zh":257,"released_at":258},136554,"v1.5.0","## What's Changed\r\n* 🌓 feat: support kimi moonshot by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F17\r\n* ⛅ docs: intro for kimi moonshot by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F18\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.4.0...v1.5.0","2024-12-05T03:24:44",{"id":260,"version":261,"summary_zh":262,"released_at":263},136555,"v1.4.0","## What's Changed\r\n* 💠 docs: update call api actions by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F13\r\n* 🐹 fix: error of eslint & stylistic by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F15\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.3.0...v1.4.0","2024-11-19T09:20:05",{"id":265,"version":266,"summary_zh":267,"released_at":268},136556,"v1.3.0","## What's Changed\r\n* 🛠️  chore: update vue3.5 & deps by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F11\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.2.3...v1.3.0","2024-09-19T02:16:15",{"id":270,"version":271,"summary_zh":272,"released_at":273},136557,"v1.2.3","## What's Changed\r\n* 🚦 fix: support ios viewport height by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F9\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.2.2...v1.2.3","2024-07-31T07:50:50",{"id":275,"version":276,"summary_zh":277,"released_at":278},136558,"v1.2.2","## What's Changed\r\n* 🎽 docs: add response processing by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F8\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.2.1...v1.2.2","2024-07-31T03:52:47",{"id":280,"version":281,"summary_zh":282,"released_at":283},136559,"v1.2.1","## What's Changed\r\n* 🦄 docs: clarify API mode configuration guide by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F6\r\n* 🍻 docs: add features by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F7\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.2.0...v1.2.1","2024-07-30T07:16:18",{"id":285,"version":286,"summary_zh":287,"released_at":288},136560,"v1.2.0","## What's Changed\r\n* 💠 docs: update LLM readme by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F3\r\n* 💅 style: update navbar top by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F4\r\n* 💖 chore ignore vite timestamp by @pdsuwwz in https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fpull\u002F5\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fpdsuwwz\u002Fchatgpt-vue3-light-mvp\u002Fcompare\u002Fv1.1.0...v1.2.0","2024-07-30T02:24:18"]